Để trở thành một lập trình viên giỏi, cần có cách học phù hợp. Gần đây, tôi thường nhận được tin nhắn từ sinh viên hỏi và yêu cầu lời khuyên về tương lai của họ, đặc biệt là con đường trở thành một lập trình viên giỏi. Bài viết dưới đây sẽ trả lời câu hỏi đó theo quan điểm cá nhân của tôi. Bạn không cần phải theo đúng con đường mà tôi chỉ ra, hãy xây dựng con đường riêng của bạn, nhưng tôi hy vọng bài viết này sẽ mang đến cho bạn thêm kinh nghiệm và kiến thức để xây dựng và chọn lựa con đường đúng đắn.
Sinh viên nên học những gì?
Kiến thức luôn hữu ích và cần thiết. Điều này có nghĩa là bất kể bạn học gì, nó sẽ có ích cho bạn ở một thời điểm nào đó. Ví dụ, khi tôi là sinh viên, tôi không nghĩ rằng tôi sẽ bao giờ sử dụng kiến thức về kế toán, bán hàng hay thuyết trình. Nhưng giờ đây, khi tôi làm sản phẩm, tôi lại phải sử dụng và phải học lại những kiến thức đó.
Tuy nhiên, nếu học quá nhiều, không cân nhắc, đôi khi bạn sẽ không thể tiếp thu sâu một điều gì đó. Sự cân bằng giữa sự sâu và sự rộng thực sự khó nói, và nó tùy thuộc vào lựa chọn và đánh giá của từng người.
Nếu phải lựa chọn 4 môn bắt buộc để trở thành lập trình viên giỏi, tôi chọn những môn sau (theo thứ tự ưu tiên):
-
Tiếng Anh: Tiếng Anh là quan trọng nhất. Trong lĩnh vực Công nghệ thông tin, đặc biệt là lập trình, bạn sẽ phải đọc và tìm hiểu kiến thức về các công nghệ, nền tảng bằng tiếng Anh. Các tài liệu bằng tiếng Việt thường không đủ mới và không cập nhật nhanh chóng so với sự thay đổi liên tục của thế giới. Ngoài ra, khi đi làm, bạn thường có cơ hội giao tiếp với khách hàng và đồng nghiệp nước ngoài. Do đó, khả năng sử dụng tiếng Anh sẽ ảnh hưởng đến công việc của bạn. Nếu bạn giỏi tiếng Anh, bạn có cơ hội làm việc ở các công ty nước ngoài hoặc làm việc với khách hàng nước ngoài, với mức thu nhập cao hơn khoảng 20%.
-
Ngôn ngữ lập trình hướng đối tượng: Java hoặc C++: Là lập trình viên, bạn cần biết lập trình. Vậy nên, tại sao chúng ta lại chọn Java hoặc C++? Nếu bạn làm việc về giao diện người dùng, bạn không cần dùng Java hoặc C++. Nếu bạn làm việc về lập trình Web, bạn có thể học PHP. Tuy nhiên, việc chọn ngôn ngữ lập trình cũng phụ thuộc vào con đường phát triển cá nhân của bạn. Theo quan điểm cá nhân của tôi, Java và C++ là hai ngôn ngữ lập trình tốt, thể hiện đầy đủ và chính xác bản chất của một ngôn ngữ lập trình bậc cao. Việc rèn luyện thành thạo hai ngôn ngữ này sẽ giúp bạn dễ dàng học và chuyển sang ngôn ngữ khác. Hơn nữa, Java và C++ là hai trong số những ngôn ngữ lập trình phổ biến và có khả năng ứng dụng rộng rãi nhất.
-
Cấu trúc dữ liệu và giải thuật: Môn này thường được bỏ qua và không được coi trọng bởi đa số lập trình viên. Tuy nhiên, tôi cho rằng nếu bạn học tốt về giải thuật, có tư duy giải thuật, bạn sẽ làm phần mềm tốt hơn và chính xác hơn. Khi đi phỏng vấn tại các công ty lớn như Google, AWA hay Grab, bạn sẽ phải giải quyết những bài tập có tính giải thuật cao. Bạn có thể không nhớ cách triển khai một giải thuật, nhưng hãy biết về nó và ứng dụng linh hoạt khi phần mềm của bạn cần sử dụng nó.
-
Cơ sở dữ liệu: Cơ sở dữ liệu là một phần không thể thiếu trong sản phẩm phần mềm hiện nay. Dù là game điện thoại hay trang web bán hàng, bạn đều cần lưu trữ thông tin người dùng. Đặc biệt, trong các hệ thống lớn, cơ sở dữ liệu là một phần quan trọng và không thể thiếu. Hiểu rõ về cơ sở dữ liệu, câu lệnh truy vấn, và cách áp dụng chúng sẽ giúp bạn trở thành một lập trình viên giỏi và tham gia xây dựng các sản phẩm có số lượng người dùng lớn.
Còn rất nhiều môn học khác mà bạn có thể nên học như Mạng máy tính, Kiến trúc máy tính, Nguyên lý hệ điều hành, ... Tôi không khuyến nghị bỏ qua những môn này, nhưng với giới hạn thời gian và khung học, tôi nghĩ 4 môn trên là những môn cần thiết nhất để trở thành một lập trình viên giỏi.
Cách học như thế nào?
Điều quan trọng đầu tiên trong việc học lập trình là thực hành chăm chỉ. Nếu bạn chỉ giỏi lý thuyết mà không thực hành đều đặn, thì sẽ vô ích. Lập trình giống như võ thuật, bạn không thể chiến thắng chỉ bằng lý thuyết. Lập trình là sự rèn luyện khổ luyện. Trong nửa năm đầu, hãy làm quen và hiểu rõ ngôn ngữ lập trình một cách sâu sắc. Nắm vững các câu lệnh, từ khóa của ngôn ngữ đó. Đồng thời, hãy học về thuật toán. Thực hiện các thuật toán cơ bản, giải quyết bài tập bằng ngôn ngữ lập trình bạn đã học. Việc luyện tập và làm bài tập thường xuyên sẽ giúp bạn nâng cao kiến thức về thuật toán và cú pháp của ngôn ngữ lập trình.