Nên học ngôn ngữ lập trình nào?

Bài viết được dịch từ blog DevCodeHack.com

Tôi thường nghe thấy mọi người hay hỏi rằng, ngôn ngữ lập trình nào họ nên học trước tiên. Nhưng tôi nghĩ câu hỏi đó nên đổi lại thành: tại sao bạn lại muốn lập trình?, câu hỏi này nên đặt ra đầu tiên thì thích hợp hơn. Nếu bạn cảm thấy thích thú công việc lập trình bởi vì dường như nó tạo ra nhiều niềm vui, thì bất kỳ một ngôn ngữ lập trình nào cũng có thể làm được điều đó.
Nhưng tôi biết rằng các bạn cũng như tôi đều có rất nhiều hóa đơn cần phải thanh toán mỗi ngày, và bạn đang nghĩ rằng sẽ không đến nỗi tệ nếu công việc lập trình có thể giúp ta thanh toán những hóa đơn đó.

Bây giờ câu hỏi trở nên cụ thể hơn là: ngôn ngữ lập trình nào tôi nên học để kiếm tiền? Câu hỏi này rất thiết thực, nhưng tôi phải nói trước rằng, mỗi người sẽ có một câu trả lời khác nhau.

Một tin tốt lành là tất cả các ngôn ngữ lập trình đều có mức lương nhận được khá tốt. Hiện nay mức lương trung bình của một lập trình viên tại Mỹ, người có khoảng 3 đến 5 năm kinh nghiệm thì dao động từ $60,000 đến $80,000 đô-la/năm, nhưng mức lương có thể khác nhau rất lớn, và có thể cao hơn rất nhiều, đặc biệt cho những người làm việc ở vùng bờ biển phía đông và tây nước Mỹ, hoặc các công việc liên quan đến tư vấn và YMMV.

Những ngôn ngữ lập trình được sử dụng phổ biến hiện nay là: Ruby, Python, PHP, Objective-C, HTML, CSS, JavaScript, Java, .NET, C/C++. Bạn có thể tìm kiếm thêm thông tin trên Google về các ngôn ngữ này.
Mỗi ngôn ngữ đều có một mức độ phổ biến của nó, và được sử dụng trong những lĩnh vực khác nhau:

Ngôn ngữ lập trình Môi trường sử dụng
Python/Ruby/PHP Dùng để lập trình phía Server-side các ứng dụng cho mobile và website.
Objective-C Dùng lập trình ứng dụng cho iPhone
HTML Dùng để xây dựng website phía Client-side.
CSS Ngôn ngữ định dạng cho HTML phía Client-side
JavaScript Dùng để lập trình phía Client-side của website, sử dụng để thao tác với HTML/CSS. Bạn nên học thêm về jQuery.
Java/.Net Lập trình cho Android. Server-side cho các website, và để xây dựng các phần mềm có logic nghiệp vụ phức tạp khác.
C/C++ Do ưu điểm về tốc độ xử lý nhanh nên phù hợp viết phần mềm cho Thị trường Chứng khoán, hoặc các game đồ họa.

Vậy thì ngôn ngữ lập trình nào bạn nên học để kiếm tiền? Một tin xấu là có thể bạn phải học nhiều hơn một ngôn ngữ lập trình. Nhưng tin tốt đó là bạn không cần phải học tất cả mọi thứ về mọi ngôn ngữ lập trình, chỉ cần đủ để hoàn thành mục đích của bạn.
Nhưng câu hỏi đặt ra là, ngôn ngữ lập trình nào bạn nên học đầu tiên? Như bạn cũng đã biết, điều đó thực ra còn tùy thuộc vào bạn muốn kiếm tiền như thế nào?
Nếu bạn không quan tâm về việc mình sẽ kiếm tiền như thế nào, thì theo quan điểm của tôi, bạn nên học theo thứ tự như sau: Python, Objective-C, JavaScript, HTML, CSS. Bạn cũng sẽ cần một số kiến thức về database (MySQL, MongoDB), và học cách làm thế nào để lập trình cùng với chúng, mặc dù việc này cũng không khó lắm.
Nếu bạn muốn lập trình các game đồ họa hoặc các ứng dụng trong lĩnh vực chứng khoán, thì C++ là ngôn ngữ dành cho bạn. Nếu bạn muốn làm website thì Python, Ruby và PHP là thích hợp nhất, đi kèm với một số kiến thức HTML/CSS/JavaScript. Còn nếu bạn muốn lập trình các ứng dụng trên iPhone thì Objective-C là ngôn ngữ của bạn.

JavaScript, HTML và CSS thì thường được sử dụng kết hợp với nhau và làm cho website chạy mượt hơn trên trình duyệt của bạn. Chúng thì luôn phải sử dụng kết hợp với một ngôn ngữ kịch bản Server-side như là Python, Ruby hoặc PHP.
Trong thị trường tuyển dụng, bạn sẽ không phải sử dụng tất cả các ngôn ngữ như tôi đã gợi ý, mà công việc thường yêu cầu một tập các kỹ năng khác nhau:

Vị trí công việc Bộ kỹ năng cần thiết
Lập trình viên Back-end (Server-side) Thường sử dụng một trong số các ngôn ngữ sau đây: Python, Ruby, PHP, Java hoặc .NET. Có kiến thức về database. Có thể cần thêm một số kiến thức về quản trị hệ thống.
Lập trình viên Front-end (Client-side) Yêu cầu kiến thức về HTML, CSS, JavaScript và có thể cần thêm một số kỹ năng về thiết kế.
Lập trình viên mobile Objective-C hoặc Java (cho Android). HTML/CSS cho các website mobile. Có thể cần thêm một số kiến thức về Server-side.
Lập trình viên về Games/3D C/C++, OpenGL, Animation. Có thể cần thêm năng khiếu về mỹ thuật.
Lập trình viên phát triển các phần mềm cần tốc độ xử lý cao High-Performance (phần mềm trong Thị trường Chứng khoán…) C/C++, Java. Có thể cần thêm nền tảng về kiến thức toán học và khả năng phân tích định lượng tốt.

Thường thì, có một số người chuyên làm công việc back-end và một số người khác chuyên làm công việc front-end. Gần đây thì có thêm nhóm người chuyên làm ứng dụng trên mobile. Và thỉnh thoảng bạn cũng bắt gặp một vài người làm tất cả các công việc nói trên, nhưng nói chung khi bạn đi kiếm việc làm thì bạn chỉ ứng với một trong các vị trí đó mà thôi.

Khi học những ngôn ngữ này, thì bạn nên bắt đầu nhỏ thôi. Đừng bắt đầu bằng một tham vọng xây dựng một Facebook thứ hai, điều đó có thể sẽ chẳng bao giờ xảy ra. Hãy bắt đầu với những dự án nhỏ và tìm kiếm những bài hướng dẫn thực hành. Bạn hãy tìm kiếm trên Google cụm từ như “hello world python” hay “hello world javascript” để tìm những bài hướng dẫn đơn giản để bắt đầu. Khi bạn đã có thể lập trình những dự án nhỏ cho mình hoặc bè bạn, thì lúc đó bạn đã có thể gom các dự án này lại vào một portfolio (hồ sơ) để xin một công việc, hoặc bắt đầu bằng một vài công việc freelancer để bổ sung cho portfolio của mình. Bạn hoàn toàn có thể làm được điều đó.

Chúc bạn may mắn và thành công. Nếu bạn có ý kiến khác thì hãy chia sẻ với mọi người ở phần bình luận nhé!

Nếu có nhu cầu học Thiết kế và Lập trình Web bằng ngôn ngữ mã nguồn mở PHP, các bạn có thể tham khảo thông tin các khoá học sau đây:

- Kỹ thuật lập trình PHP

- Lập trình Web với PHP và MySQL

Đăng nhận xét - bình luận

Đào tạo tin học KEY

CN: Lê Trọng Tấn

Địa chỉ: 203 - 205 Lê Trọng Tấn, P. Sơn Kỳ, Q. Tân Phú, TP. HCM.
Điện thoại: (028) 22 152 521
Website: key.com.vn - Email: [email protected]

CN: Nguyễn Ảnh Thủ

Địa chỉ: 765-767A (Số mới: 558-560A) Nguyễn Ảnh Thủ, P. Tân Chánh Hiệp, Q. 12, TP. HCM.
Điện thoại: (028) 2242 2244
Website: key.com.vn - Email: [email protected]

Trở lên đầu trang