“Tôi muốn học lập trình, học lập trình bắt đầu từ đâu, học ngôn ngữ lập trình nào?” Trên thực tế, không có câu trả lời chính xác cho câu hỏi trên. Mỗi ngôn ngữ lập trình đều có điểm mạnh và điểm yếu riêng, phù hợp với từng mục đích và khả năng của người lập trình.
Trước khi tìm hiểu về kinh nghiệm chọn học ngôn ngữ lập trình, hãy dành một chút thời gian để điểm qua các số liệu của trang TIOBE Index năm 2018. Dựa trên kết quả tìm kiếm của 25 công cụ tìm kiếm nổi tiếng thế giới như Google, Bing, Yahoo…, trang TIOBE Index sẽ thống kê, so sánh nhu cầu tuyển dụng lập trình viên và đưa ra xu hướng phát triển.
Qua kết quả thống kê, có thể thấy những ngôn ngữ lập trình được sử dụng phổ biến hiện nay: Java, C, C++, Python, C#, Visual Basic .NET, PHP, JavaScrip, CSS, Ruby, SQL…Trong đó, C và Java có nhu cầu ở mức cao nhất so với tất cả các ngôn ngữ lập trình khác. C++, C#, PHP, JavaScript cũng được nhiều nhà tuyển dụng chú ý.
⛔ Đặt mục tiêu riêng cho bản thân về vị trí công việc yêu thích trong tương lai
? Vị trí công việc Front End (Client-side): vị trí lập trình, thiết kế phần trang web hay phần mềm sẽ hiển thị, tương tác trực tiếp đến người dùng cuối cùng. Nếu bản thân muốn trở thành lập trình viên Front-end, các “tân binh” nên học HTML, CSS, JavaScript và các kỹ năng về thiết kế.
? Vị trí công việc Back-end: vị trí lập trình các thành phần để xử lý thông tin từ Front End(người dùng cuối cùng không thể tương tác được). Nếu bản thân xác định trở thành lập trình viên Back-end (Server-side), cần học các ngôn ngữ: Python, Ruby, PHP, Java .NET. Ngoài ra, lập trình viên Back-end phải nắm vững kiến thức về cơ sở dữ liệu và quản trị hệ thống.
? Phát triển web: nên học PHP hoặc Ruby on Rails. Nếu thích công nghệ của Microsoft thì hãy học ASP.NET MVC.
? Lập trình viên di động nên nắm vững ngôn ngữ Swift (IOS), Java (Android), Silverlight và XNA (Windows Phone), HTML/CSS để làm các trang web dành cho di động và kiến thức Server-side.
? Lập trình viên Games 3D (3D Game Development) cần học các ngôn ngữ C/C++, OpenGL, Animation. Quan trọng hơn, cần có các kỹ năng sáng tạo, logic và thẩm mỹ tốt.
Các ngôn ngữ C/C++, Java phù hợp cho các lập trình viên phát triển các phần mềm, hệ thống cần tốc độ xử lý, hiệu năng cao. Hơn nữa, lập trình viên lĩnh vực này cần kiến thức toán học và khả năng phân tích định lượng tốt.
Nếu chưa rõ bản thân sẽ làm gì và gắn liền với công việc nào, các “lính mới” nên học lập trình theo thứ tự sau: Python, JavaScript, HTML, CSS, MySQL, MongoDB.
Nếu xét về xu hướng năm 2018 hiện nay, ngôn ngữ lập trình Java khá phù hợp với các tân binh. Khi học ngôn ngữ lập trình Java, các “tân binh” sẽ dễ dàng tiếp thu các ngôn ngữ khác. Cộng đồng lập trình Java khá lớn, các lập trình viên sẽ dễ dàng trao đổi, học hỏi với nhau. Mục đích sử dụng của ngôn ngữ Java rất đa dạng: viết ứng dụng nền web, nền Windows, nền Android,…Ngoài ra, Java với các ngôn ngữ như C++, C#, và PHP cấu trúc tương đối giống nhau.Vì vậy, sau khi học Java, các tân binh có thể dễ dàng học các ngôn ngữ khác.
⛔ Chọn ngôn ngữ học lập trình cơ bản, phù hợp với bản thân
Đừng nên dựa vào các ngôn ngữ lập trình phổ biến trên bảng số liệu hay mức lương của các vị trí công việc để ép bản thân học ngôn ngữ đó. Hãy học bất kỳ ngôn ngữ lập trình nào bạn yêu thích và bắt đầu học từ những kiến thức cơ bản(không quá nhiều quy luật về cú pháp logic).
⛔ Đừng chỉ xem lý thuyết, hãy thực hành nhiều
Sau khi tìm hiểu về lý thuyết và các bài mẫu về lập trình, nên thực hành viết càng nhiều code càng tốt. Khi đã quen dần, bạn cần nghĩ ra ý tưởng về ứng dụng riêng vừa sức bản thân. Trong trường hợp không nghĩ ra ý tưởng, các tân binh có thể sao chép các ứng dụng đơn giản có sẵn để luyện tập viết code nhuần nhuyễn.
⛔ Hạn chế làm các công việc vô bổ, mất thời gian
Bạn nên chấm dứt việc dành thời gian để xem tivi hay chơi game để thực hành viết code, nên tham gia các buổi hội thảo, các câu lạc bộ lập trình trên các trang fanpage, diễn đàn, blog. Những kiến thức bạn có được khi nói chuyện cùng những lập trình viên và đọc các chương trình do họ viết ra qua các trang như: Github, CodePlex, BitBucket,… quan trọng hơn rất nhiều so với những lý thuyết trong sách và các khóa huấn luyện.
Cám ơn các bạn đã quan tâm! Hy vọng bài viết sẽ giúp ích cho bạn.