Ở bài viết này chúng ta sẽ tiến hành gỡ rối, khám phá và sửa chữa những ngộ nhận trong nghề lập trình viên, và có thể được xem như là một lời tư vấn đáng tin cậy cho những ai đang cân nhắc xem liệu công việc lập trình có phải là con đường sự nghiệp cho họ hay không.
1. Tôi phải tinh thông toán học để có thể học các ngôn ngữ lập trình.
Mọi người thường bị nhầm lẫn về mối quan hệ giữa toán học và lập trình, bởi vì họ muốn có một câu trả lời dứt khoát là 'Có' hoặc 'Không'. Nhưng thực ra, câu trả lời thì thường là "còn tùy, nhưng hầu như là không". Là một lập trình viên, chúng ta dành hầu hết thời gian của mình để viết code, không phải với các công thức toán học, và kiến thức toán học của bạn thì không tỷ lệ trực tiếp tới kỹ năng lập trình của bạn.
Đừng hiểu sai ý tôi, chúng ta vẫn sẽ cần kiến thức cơ bản về đại số, nhưng chỉ cần ở mức căn bản, và vâng nó chỉ là đại số mà thôi. Bên cạnh đó, có rất nhiều thư viện và plugin để bạn có thể áp dụng trực tiếp vào trong code của mình, nó sẽ giúp bạn giải quyết các vấn đề về toán học và thuật toán.
Tuy nhiên, nếu bạn đang cố tạo ra một sản phẩm nào đó mà yêu cầu các kiến thức toán học hoặc vật lý cao cấp hay về đồ họa máy tính, thì bạn chắc chắn cần phải tinh thông toán học (nhưng đừng lo, có vô số những giải pháp về vật lý và đồ họa đã có sẵn trong ngành này).
Học lập trình không cần phải giỏi toán
2. Tôi phải là một thiên tài (với chỉ số IQ cỡ 160)
Không quan trọng liệu chỉ số thông minh (IQ) của bạn là 160 hay chỉ 90, việc lập trình không liên quan đến các yếu tố về sinh học đó, nhưng nó phụ thuộc rất nhiều vào niềm đam mê của bạn. Nếu bạn đã tham gia một bài kiểm tra để xác định điểm số IQ của mình, thì việc biết được chỉ số đó cũng chẳng giúp bạn được gì nhiều trong việc nhận ra cái mà bạn muốn làm hoặc bạn có thể tiến xa đến mức nào.
Tôi không phải là một thành viên của câu lạc bộ những người có chỉ số IQ cao nhất (MENSA), nhưng tôi có 4 năm kinh nghiệm lập trình, và tôi có thể lập trình một cách khá thoải mái bởi vì tôi không quan tâm đến việc mình bị thất bại bao nhiêu lần, điều quan trọng là biết học từ những sai lầm đó, đó là cách cơ bản nhất để một lập trình viên có thể tiến bộ.
Bất kỳ ai mà biết cách truyền đạt thì đều có thể học lập trình được. Bởi vì trong phần sâu cốt lõi của nó, lập trình cũng là một "ngôn ngữ" cùng với ngữ pháp và từ vựng, và sự tồn tại của nó thì chỉ với mục đích giúp bạn có thể truyền thông với máy tính để hoàn thành một tác vụ hoặc hành động xác định nào đó, cũng giống hệt như cái mà chúng ta đang làm trong thế giới con người. Điều đó thực sự rõ ràng.
3. Tôi phải đỗ vào đại học để học lập trình
Người ta nói rằng trong trật tự để vươn tới "tuyệt đỉnh võ công" về lập trình, bạn phải cần nhờ một bậc thầy để chỉ dẫn con đường cho bạn đi. Và tại đỉnh cao nhất của các thứ bậc là chức danh Giáo sư (đó là danh hiệu cao nhất mà bạn có thể vươn tới trong con đường học thuật). Nhưng ngày nay, chúng ta phải cảm ơn đến Internet, bạn có thể học cách làm thế nào để lập trình từ những lập trình viên đầy nhiệt huyết, mà không phải từ những giảng viên tại các trường đại học.
Bạn hãy đăng ký một khóa học cho người mới bắt đầu tại các trang web dạy lập trình tương tác trực tuyến như Codecademy, hoặc đọc các bài hướng dẫn thực hành trên các trang như Nettuts+, những tài liệu này được giải thích rõ ràng bằng cả hai loại định dạng là văn bản và video. Nếu bạn gặp phải một vấn đề hóc búa và muốn có được một câu trả lời trực tiếp? thì Stack Overflow và Stackexchange là những người bạn tốt nhất của bạn. Việc tìm kiếm trên Google cũng có thể giúp bạn tìm đến những kết quả tốt (và sẽ dẫn bạn tới vô số nguồn tài nguyên về phát triển phần mềm).
Xin nhắc lại, tôi không nói rằng các trường đại học không thể dạy bạn bất cứ điều gì. Một giáo sư hoặc giảng viên đại học chắc chắn có thể giúp bạn hiểu nhanh hơn về các lý thuyết và khái niệm như là lập trình hướng đối tượng (Object Oriented Programming), và tạo ra một chút thuận lợi mà bạn cần khi bắt đầu tham gia vào lĩnh vực này.
Nhưng bất kể con đường nào mà bạn chọn, thì bạn cũng phải thành thạo khả năng tự học, bởi vì không giống như những ngành nghề thuộc lĩnh vực khác, ngành lập trình luôn luôn phát triển với tốc độ như vũ bão, và chỉ bạn mới có thể quyết định xem liệu mình có thể luôn bắt kịp nó hay không mà thôi.
Học lập trình trực tuyến
4. Tôi phải trở thành người lớn mới có thể học các ngôn ngữ lập trình
Các bậc phụ huynh làm ơn đừng sử dụng độ tuổi của con bạn để ngăn cản chúng học các ngôn ngữ lập trình, và đó không chỉ là quan điểm của cá nhân tôi. Tại Code.org, có một yêu cầu kiến nghị rằng nên đưa lập trình trở thành một môn học bắt buộc tại các trường học, để giúp cho bọn trẻ có thể học cách suy nghĩ một cách có logic hơn.
Tuy nhiên, có một sự khác nhau trong mô hình học lập trình giữa trẻ em và người lớn. Cách tốt nhất để bọn trẻ học là theo cách trực quan, từ đó những nhận thức trực quan của chúng sẽ ngày càng phát triển. Theo phương pháp này thì Scratch và Alice là các công cụ hoàn hảo dành cho trẻ em có thể học lập trình (cách này thì tốt hơn rất nhiều so với các cuốn sách dạy lập trình truyền thống).
Và nếu chúng thích một môi trường học tập tương tác hơn (bởi vì ai mà chả muốn điều đó cơ chứ?), thì cộng đồng lập trình như Khan Academy là nơi tốt nhất để học. Các bậc phụ huynh cũng có thể trợ giúp trong quá trình bọn trẻ của bạn học, và chỉ dẫn chúng cùng với sự giải thích cặn kẽ, cung cấp các bí quyết và tài nguyên, nếu có thêm sự giúp đỡ của bố mẹ thì sẽ làm gia tăng hiệu quả của việc học này lên rất nhiều.
5. Tôi chỉ nên học ngôn ngữ lập trình tốt nhất mà thôi
Ngôn ngữ lập trình 'tốt nhất' ư? Đó là một suy nghĩ sai lầm, bởi vì ngôn ngữ lập trình tốt nhất là ngôn ngữ phù hợp với mục đích hiện tại của bạn, hoặc cho công việc hoặc trong học hành. Hay nói cách khác, không có ngôn ngữ lập trình nào gọi là tốt nhất cả, vì còn tùy thuộc vào cái mà bạn muốn làm cùng với nó.
Tuy nhiên, có những ngôn ngữ tuyệt vời dành cho người mới bắt đầu. Python là một trong số đó vì nó đơn giản, dễ đọc và linh hoạt. Java cũng là một ngôn ngữ dễ học và tốt cho tất cả mọi người, nó có một thư viện tài liệu phong phú và một cộng động hoạt động năng nổ, hoặc bạn cũng có thể nhảy vào học C# giống như tôi đã làm. Trên tất cả, bạn nên quyết định lựa chọn công cụ của mình dựa trên tốc độ thực thi của ngôn ngữ, các đặc trưng riêng, khả năng tương thích, và khả năng bảo trì, v.v...
Không có ngôn ngữ lập trình tốt nhất.
6. Chỉ cần vài tuần để học và tinh thông một ngôn ngữ lập trình
Bạn đừng tin vào câu khẩu hiệu này. Thật đáng buồn khi nhìn thấy nhiều bạn trẻ khao khát cố gắng học một ngôn ngữ lập trình trong một khoảng thời gian ngắn rồi nhận ra rằng họ không có khả năng tạo ra một trò game MMORPG hoành tráng (game nhập vai trực tuyến nhiều người chơi) trong vòng vài tuần lễ. Và sau đó, họ sẽ nản chí, và tự nhận mình là một kẻ 'bất tài' và sau đó từ bỏ giấc mơ trở thành một lập trình viên game.
Thực ra, bạn có thể dành vài tuần để học lập trình, nhưng bạn sẽ mất nhiều năm để trở nên tinh thông việc lập trình đó. Cũng giống như các họa sĩ vẽ tranh, lập trình yêu cầu bạn phải có đam mê và kiên trì, và hầu hết những sản phẩm mà bạn tạo ra vào lúc đầu có thể sẽ chẳng được người ta sử dụng. Tuy nhiên, nếu bạn luôn cố gắng hoàn thiện mình, bạn sẽ phải tiến từng bước một. Để trở thành một lập trình viên giỏi, bạn nên cảm thấy thoải mái mỗi lần gặp thất bại, bởi vì đó là cách duy nhất để giúp bạn tiến lên.
7. Tôi nên nhớ tất cả các cú pháp và tránh việc nhờ giúp đỡ
Về mặt tâm lý mà nói, nếu bạn lập trình mà không cần sự chỉ dẫn từ bên ngoài, thì bạn sẽ phải nhớ mọi thứ và trở thành một "siêu nhân" có thể xây dựng bất cứ thứ gì từ con số 0. Nhưng sự thật là, bạn không phải lo lắng về việc nhớ các cú pháp, và bạn sẽ phải viết cùng đoạn code đó hàng ngàn lần trước khi có thể tạo ra một framework của riêng mình.
Google, IDE và các Framework không phải được tạo ra chỉ để cho vui - chúng được thiết kế đặc biệt nhằm giúp bạn lập trình được nhanh hơn. Bài tập tốt nhất là sử dụng IDE cùng với cú pháp được đề xuất và tra cứu "sư phụ" Google bất cứ khi nào mà bạn gặp phải một vấn đề hóc búa.
Việc sử dụng các framework sẽ giúp bạn hiểu được điều mà ngôn ngữ lập trình đó làm, và những giới hạn nào nó có thể đẩy tới. Sau đó, khi mà bạn đã có một kiến thức tạm đủ, thì hãy tự trải nghiệm bằng những tác vụ lập trình xác định. Hãy khám phá, vọc vậy một thứ gì đó và phấn khích trong việc làm rối tung mọi thứ lên.
8. Tôi hoàn toàn không thể viết được nhiều code như vậy.
Tôi là một trong nhiều người đã cảm thấy kinh hãi khi lần đầu tiên nhìn thấy mã nguồn của một trang web, bởi vì bạn có thể chắc chắn rằng 4000 dòng code có thể là quá nhiều. Tuy nhiên, trong khi HTML không phải là một ngôn ngữ lập trình, thì nội dung của nó có rất nhiều trong mọi file code nói chung. Nếu bạn để ý quan sát một chút, thì bạn sẽ nhận ra rằng chúng chỉ có một mớ code bao gồm các câu lệnh lặp lại, các phương thức và vòng lặp mà thôi.
Tất cả chỉ có vậy; các lập trình viên hầu như đều sử dụng cùng những thứ mà bạn đã học trong các khóa học sơ cấp và trung cấp để thực hiện tất cả các giải pháp từ đơn giản đến phức tạp. Và một khi bạn đã quen với nó, bạn sẽ cảm thấy rằng 10,000 dòng code cũng chỉ là trò trẻ con. Bạn có thể tạo ra chúng một cách rất nhanh chóng!
9. Tôi là phái yếu. Tôi không thể lập trình.
Tôi xin nói thẳng là tôi là một fan hâm mộ của các lập trình viên nữ. Những bạn nữ trong lớp học của tôi trước đây thường rất giỏi trong cả hai môn toán và khoa học; và nghề nghiệp lập trình của tôi đã chứng minh niềm tin đó là đúng đắn. Phụ nữ đã và luôn ở top trên trong danh sách những lập trình viên có ảnh hưởng nhất, đây là một trong những danh sách đó dành cho bạn, chỉ để chứng minh điều tôi vừa nói:
- Ada Lovelace có thể được xem là lập trình viên đầu tiên trên thế giới.
- Grace Murray Hopper đã phát triển trình biên dịch đầu tiên cho ngôn ngữ lập trình.
- Adele Goldstine đã góp phần tạo nên máy tính điện tử đầu tiên trên thế giới.
- Jean E. Sammet là người đã phát triển ngôn ngữ lập trình FORMAC, một biến thể của ngôn ngữ FORTRAN.
- Marissa Mayer là một trong những lập trình viên đầu tiên của Google.
Sức ảnh hưởng của phụ nữ trong lĩnh vực lập trình là một điều hiển nhiên, nhưng giống như hầu hết đàn ông không thể gây được sự thu hút trong ngành công nghiệp nước hoa, chỉ có một tỉ lệ rất nhỏ phụ nữ so với nam giới trong nghề lập trình viên có thể là do các yếu tố như áp lực xã hội và kinh tế cũng như sự đam mê và viễn cảnh khác nhau trong cuộc sống v.v…
Có khá ít phụ nữ theo đuổi ngành lập trình có thể chỉ là do các yếu tố khác nhau trong cuộc sống.
10. Tôi chỉ có thể bắt đầu kiếm tiền một khi tôi đã tinh thông công việc lập trình
Nếu chỉ nhìn thoáng qua tại hầu hết các vị trí tuyển dụng lập trình viên, và bạn có thể nhìn thấy họ sẽ yêu cầu vài năm kinh nghiệm và phải thành thạo hàng tá những ngôn ngữ lập trình cho vị trí đó. Nhưng thực ra nó không đến nỗi khắc nghiệt như vậy. Bạn luôn có thể nhận lấy một công việc lập trình tương xứng với kinh nghiệm coding của mình, nhưng bạn không thể chỉ ngồi đó và đợi được.
Nếu ứng tuyển trực tiếp không được, thì xin thực tập (hoặc thử việc) là cách rất tốt để thu được kinh nghiệm làm việc và có cơ hội để trở thành một nhân viên chính thức, nhưng trên tất cả, là bản hồ sơ công việc portfolio của bạn phải đưa ra những khả năng ấn tượng nhất để những nhà tuyển dụng muốn xem. Nếu muốn có được danh tiếng trong cộng đồng thì bạn hãy bắt đầu một dự án mã nguồn mở ngay hôm nay.
Freelancer cũng là một nơi tuyệt vời để bắt đầu, bởi vì hầu hết khách hàng ở đó thường rất khó tính. Dù theo cách nào đi nữa thì cũng là điều tốt, vì bất kỳ ai cũng phải bắt đầu từ một nơi nào đó, nhưng bạn phải luôn luôn chủ động trong công việc.
Chào mừng bạn đến với thế giới lập trình!
Với tất cả những điều kể trên, lập trình thì cũng chỉ giống như bất kỳ lĩnh vực nào khác, nơi mà bạn phải làm việc chăm chỉ là yếu tố quyết định để thành công. Vì thế còn chần chừ gì nữa, bạn hãy thực hiện ngay bước đi đầu tiên của mình và bắt đầu bài học lập trình đầu tiên ngay hôm nay!
Theo Vinacode