10 hiểu lầm tai hại về lập trình
Bạn biết đấy, có khá nhiều quan niệm sai lệch cũng như hiểu nhầm về lập trình. Cho rằng đó là nghề chỉ dành cho những thiên tài, với quá trình phức tạp, phương pháp cao siêu cũng như là đầy ánh hào quang. Tệ hơn, Nghề lập trình bị đánh giá là chỉ dành cho những “mọt sách”, hoặc là các thánh toán học bởi nó không cho phép ta được mắc sai lầm nào.
Trong bài viết này, tôi sẽ giải thích, phân tích và xóa bỏ đi những hiểu lầm về nghề lập trình, cũng như giúp các bạn đang muốn trở thành một lập trình viên thêm tự tin.
Phải là thánh về toán học thì mới có thể học lập trình được
Phần lớn mọi người hiểu nhầm mối quan hệ giữa toán học và lập trình bởi họ chỉ muốn câu trả lời đơn giản là “Có” hoặc “Không”. Thực tế thì câu trả lời là “Tùy, nhưng đa phần là không”. Bởi phần lớn thời gian lập trình đều dành cho việc viết code, chứ không phải các công thức toán học, và kiến thức toán của bạn cũng chỉ chiếm một phần nhỏ trong lập trình.
Đừng hiểu nhầm, đúng là ta vẫn sẽ phải cần đến những kiến thức cơ bản về đại số. Nhưng chỉ có vậy thôi. Ngoài ra còn có libraries và plugin, mà bạn có thể áp dụng vào code để giải quyết những vấn đề liên quan tới thuật toán.
Thế nhưng, nếu bạn muốn tạo ra các ứng dụng cao cấp thì đúng là bạn cũng sẽ cần am tường chút về toán cao cấp cũng như physic và đồ họa máy tính. (Đừng lo, có nguồn sẵn hết rồi nên bạn cũng không phải chịu cực khổ lắm đâu.)
Chỉ có thiên tài với IQ trên 160 thì mới học được
Cho dù bạn có IQ 160 hay 90, lập trình hoàn toàn trả liên quan gì đến việc bạn thông mình cỡ nào mà liệu bạn có thích nó hay không. Bài test IQ hoàn toàn không phản ánh được gì về sở thích cũng như bạn có thể tiến được bao xa trong cuộc sống.
Tôi thì dù không phải là một thành viên của MENSA nhưng ít ra thì đã có đến 4 năm kinh nghiệm lập trình, và tôi có thể làm nó một cách dễ dàng bởi vì tôi không ngại khó và học hỏi từ những sai lầm của mình. Vốn cũng chính là điều quan trọng nhất để học lập trình.
Giờ thì nâng lên một ngưỡng nữa, bất cứ ai có thể giao tiếp thì đều học được lập trình. Bởi lập trình cũng chỉ là một loại “ngôn ngữ” với ngữ pháp và từ vựng của chính nó. Và sự tồn tại của nó là giúp bạn giao tiếp được với máy móc nhằm thực hiện một hành động nhất định nào đó. Như vậy thì nó cũng chả khác gì mấy cách ta giao tiếp hàng ngày đúng không.
Muốn biết về lập trình thì phải đi học đại học
Nhiều ý kiến cho rằng bạn chỉ có thể max trình code của mình do có thầy giỏi. Cũng như đỉnh cao của học vấn chính là bằng đại học, chức vị tiến sĩ, giáo sư. Thế nhưng, nhờ vào internet, giờ đây bạn đã có thể học lập trình cùng với những dev trong nghề mà không cần phải dính dáng tới bất kì trường đại học nào cả.
Hãy thử học một khóa dành cho beginner tại các trang web như Codeacademy, hoặc đọc những bài hướng dẫn từ site như Nettuts+ với nội dung vô cùng hữu ích cùng tính năng video rất tiện lợi. Còn nếu bạn đang gặp vấn đề và muốn câu trả lời rõ ràng hơn? Stack Overflow và Stackexchange sẽ là 2 nơi cứu giúp cho bạn. Ngoài ra Google sẽ giúp bạn kiếm được thứ mà bạn cần (Có hàng ngàn nguồn tư liệu quí giá hoàn toàn miễn phí đang chờ đợi bạn trên internet).
Xin đừng hiểu nhầm là tôi chê việc học đại học không giúp ích gì cho bạn. Một giáo viên hoặc giáo sư sẽ chắc chắn giúp quá trình học của bạn nhanh hơn hẳn cũng như hiểu rõ hơn về lí thuyết của các định nghĩa trong IT như Object Oriented Programming, ngoài ra còn một số lợi ích khác nữa.
Dù bạn chọn theo cách nào đi nữa, bạn sẽ phải bỏ công tự học bởi khác với những ngành khác, lập trình luôn thay đổi và phát triển với tốc độ rất nhanh, mà chỉ có bản thân bạn mới biết được rằng mình có trụ được ở trong cuộc chơi được hay không.
Ngôn ngữ lập trình chỉ dành cho người lớn
Các vị phụ huynh, xin đừng lấy độ tuổi con mình làm thước đo để quyết định khi nào chúng được học về ngôn ngữ lập trình. Tại Code.org, hiện đang có kiến nghị muốn thêm môn lập trình vào chương trình dạy học nhằm giúp trẻ em có khả năng phân tích.
Dù sao đi nữa, cách học giữa trẻ con và người lớn là rất khác nhau. Cách tốt nhất để giúp trẻ con tiếp thu nhanh là thông qua hình ảnh. Vì thế, Scratch và Alice là hai trang web học lập trình rất phù hợp với trẻ.
Và nếu chúng muốn một môi trường tương tác hơn thì những cộng đồng code như Khan Academy là lựa chọn khá tuyệt vời. Ngoài ra, các bậc phụ huynh cũng nên giúp con mình trong việc học, hướng dẫn, đưa ra các tip và mánh khóe cũng như là khuyến khích và hỗ trợ cho con mình.
Đã học lập trình thì chỉ cần giỏi ngôn ngữ tốt nhất là đủ
Ngôn ngữ lập trình “tốt nhất” ? Sẽ rất nhiều hiểu nhầm câu hỏi đó bởi ngôn ngữ chỉ tốt nhất khi nó phù hợp với mục đích hiện tại của bạn. Nói cách khác, không có ngôn ngữ lập trình nào là tốt nhất cả, bởi nó hoàn toàn tùy vào việc bạn muốn làm gì.
Có rất nhiều ngôn ngữ lập trình khá hay dành cho beginner như: Python với sự đơn giản, dễ đọc mà rất linh hoạt; Java cũng khá dễ hiểu và nổi tiếng nhờ vào lượng tài liệu phong phú cũng như một cộng đồng đúng chất die-hard; hoặc là giống như tôi, bạn chọn C#. Dù thế nào đi nữa, nó hoàn toàn tùy vào bạn trong việc lựa chọn dựa trên những lợi ích như tốc độ xử lý, tính năng đặc biệt, khả năng tương thích, tính quản lí và bảo trì, etc.
Chỉ mất có vài tuần là bạn sẽ giỏi một ngôn ngữ lập trình
Đừng tin vào dòng trên. Sẽ là một điều đáng buồn nếu các bạn trẻ đầy nhiệt huyết đâm đầu vào học ngày đêm một ngôn ngữ lập trình trong thời gian ngắn rồi nhận ra việc làm ra một game MMORPG trong vài tuần là chuyện bất khả thi. Như vậy, những bạn đó sẽ bị shock và tự cho rằng bản thân mình thật bất tài và vứt bỏ giấc mơ lập trình game.
Thật ra, bạn có thể chỉ cần vài tuần để học được một ngôn ngữ lập trình nhưng sẽ mất vài năm để thành thạo nó. Cũng như vẽ tranh, lập trình đòi hỏi sự đam mê và kiên nhẫn, bởi ban đầu những thứ bạn tạo ra thật sự không có giá trị gì mấy. Tuy nhiên, nếu bạn vẫn quyết tâm, thì hãy tiến từng bước một. Để một nhà lập trình giỏi, bạn đừng ngại thất bại, bởi chỉ có học từ những sai lầm mà ta mới có thể phát triển được.
Phải thuộc hết tất cả cú pháp và nên tự lực gánh sinh tránh nhờ vả
Tâm lý nhiều người cho rằng nếu bạn tự học mà không cần nhờ vào bất cứ sự giúp đỡ bên ngoài, thì bạn sẽ nhớ được hết mọi thứ và trở thành một pro có thể lập trình ra mọi thứ. Nhưng thực tế lại rất khác, Bạn không cần phải nhớ cú pháp, bởi ta sẽ phải viết đi viết lại những dòng code giống nhau hàng ngàn lần trước khi có thể tự tạo một framework cho riêng mình.
Google, IDE và Frameworks không phải được tạo ra cho vui – mục đích của chúng là để giúp bạn học lập trình nhanh hơn. Cách sử dụng chúng tốt nhất là dùng IDE với cú pháp thích hợp và hỏi thánh Google khi bạn gặp phải vấn đề không thể giải quyết được.
Làm quen với những framework khác nhau giúp bạn hiểu rõ thêm ngôn ngữ lập trình cũng như giới hạn của chúng đến đâu. Và khi bạn đã có đủ vốn liếng kinh nghiệm thì hãy tự khám phá, thử nghiệm và làm điều mà mình thích.
Làm sao mà viết được cả đống code dày đặc đó
Khi mới vào học lập trình, tôi đã sợ khiếp khi nhìn vào source của một trang web với hơn 4000 dòng code. Phải nói là choáng luôn. Tuy nhiên, mặc dù HTML không phải là một ngôn ngữ lập trình, nội dung của nó lại phản ánh tất cả các thông tin chứa trong code file. Và nếu bạn chú ý thì sẽ thấy những dòng code trên trang web đó thực chất lại bao gồm các báo cáo lặp, method và loop.
Chỉ có vậy thôi. Phần lớn những gì các lập trình viên dùng đều là những thứ mà bạn học trong các khóa dành cho beginner và trung cấp để giải quyết vấn đề bất kể nhỏ hay lớn. Và sau khi đã quen rồi thì bạn sẽ thấy rằng có 10,000 dòng code đi nữa cũng chỉ là trò trẻ con. Mà viết code còn dễ gây nghiện nữa.
Code không dành cho nữ
Trước khi các bạn nữ nổi giận tôi xin nói ngay rằng bản thân tôi là một fan cuồng của các nữ coder. Không chỉ thế, những bạn nữ trong lớp tôi luôn đứng đầu về môn toán, vật lý và hóa. Thật ra, có rất nhiều nữ lập trình viên được góp mặt trong những list vinh danh sự đóng góp và ảnh hưởng của họ. Sau đây là một trong những nữ lập trình viên tài năng mà bạn hẳn đã từng nghe qua:
Ada Lovelace – Lập trình viên đầu tiên của thế giới
Grace Murray Hopper – Phát triển nên compiler đầu tiên cho ngôn ngữ lập trình.
Adele Goldstine – Đóng góp cho việc tạo ra máy tính điện tử đầu tiên trên thế giới
Jean E. Sammet – tạo ra ngôn ngữ lập trình FORMAC, một phiên bản khác của FORTRAN.
Marissa Mayer – là một trong những lập trình viên nòng cốt của Google từ lúc nó mới khai sinh ra.
Sự ảnh hưởng của các nữ lập trình viên đối với ngành IT là rất rõ ràng. Thế nhưng cũng như ngành dầu thơm, tỉ lệ giữa nam và nữ lập trình viên có sự chênh lệch rất lớn do những lí do đến từ sức ép xã hội và kinh tế cũng như sự khác biệt về cách nhìn nhận và quan điểm của mỗi người.
Khi nào giỏi lập trình thì hãy nghĩ tới việc kiếm tiền
Bạn hãy thử vào các site tuyển dụng cho ngành IT đi, các công ty luôn có nhu cầu tuyển các lập trình viên với nhiều năm kinh nghiệm. Nhưng thực tế thì không phũ đến vậy. Bạn luôn tìm được công việc phù hợp với lượng kinh nghiệm mà bạn có.
Nếu như xin việc không được thì bạn có thể xin làm thực tập viên để kiếm thêm kinh nghiệm, và có cơ hội được vào làm chính thức. Ngoài ra, CV của bạn sẽ nên ấn tượng hơn. Danh tiếng rất là quan trọng, hãy thử tham gia vào một open source project ngay từ hôm nay.
Freelance cũng là một nơi rất tốt cho những bạn nào muốn bắt đầu kiếm tiền bằng nghề lập trình bởi những vị khách hàng cũng dễ tính hơn (nhưng hãy cẩn thận với những kẻ này). Dù là thế nào đi nữa thì luôn có thứ để nói tới, và mọi người đều có vạch xuất phát khác nhau nhưng điều quan trọng là bạn phải làm một điều gì đó.
Dù thế nào đi nữa, lập trình cũng như những ngành khác, sự chăm chỉ và quyết tâm luôn sẽ được đền đáp. Vì thế sau khi bạn đã hiểu rõ nhưng hiểu lầm về lập trình, hãy bắt đầu bài học đầu tiên về lập trình ngay trong ngày hôm nay.
Nguồn: topdev via hongkiat
- 7 7 vị trí CNTT không cần code giỏi mà vẫn thành công
- B BA làm gì trong một dự án phần mềm? (P1)
- B BA làm gì trong một dự án phần mềm? (P2)
- B Bức tranh toàn cảnh hệ sinh thái khởi nghiệp công nghệ Việt Nam 2024
- G Giải thuật Shell Sort và cách triển khai bằng ngôn ngữ lập trình Python
- J Jest là gì? Hướng dẫn thực hiện kiểm thử JavaScript với Jest
- S Strict Mode trong JavaScript – Sử dụng Strict Mode như thế nào cho tốt?
- M Mảng 2 chiều trong C++: Ví dụ và các bài toán liên quan
- C Copilot là gì? Trợ lí ảo AI từ Microsoft (Bing AI)
- 6 6 vùng kiến thức mà Business Analyst nào cũng phải biết!