Giới thiệu
Chào các bạn! Để thành công trong lĩnh vực lập trình và các dự án thực tế, kỹ sư phần mềm cần phải sở hữu một khối lượng kiến thức phong phú và sâu sắc. Tuy nhiên, nhiều sinh viên sau khi tốt nghiệp thường thiếu hụt những kiến thức quan trọng này. Nguyên nhân có thể xuất phát từ:
- Không được học trong chương trình đào tạo.
- Những gì được dạy thì thường không đi vào sâu.
- Sinh viên không nhận thức đầy đủ sự cần thiết của việc tìm hiểu kiến thức.
Dù sao đi nữa, việc không nắm vững tất cả kiến thức khi ra trường cũng không phải là vấn đề lớn, vì bạn vẫn có thể học hỏi và bổ sung sau này. Tuy nhiên, nếu bạn có thể tìm hiểu những vấn đề này sớm, sẽ giúp bạn dễ dàng hơn nhiều trong việc tự học và xây dựng sự nghiệp về sau. Bài viết này sẽ gợi ý cho các bạn những mảng kiến thức quan trọng cần có mà sinh viên lập trình thường dễ bị bỏ sót.
Các kiến thức cơ bản thường học ở trường
Trước tiên, đây là một số kiến thức về lập trình mà sinh viên thường học nhiều ở các trường đại học:
- Cú pháp ngôn ngữ lập trình.
- Thư viện cơ bản của ngôn ngữ lập trình.
- Cấu trúc dữ liệu và giải thuật.
- Lập trình hướng đối tượng.
Một số môn học như "Cơ sở dữ liệu" hay "Mạng máy tính" không thuộc phần lập trình thuần túy nên mình sẽ không đề cập ở đây. Quy trình giảng dạy lập trình thông thường mà sinh viên trải qua thường như sau:
- Giới thiệu các khái niệm tổng quát.
- Hướng dẫn mở phần mềm lập trình trên máy tính.
- Viết mã và chạy chương trình.
Các kiến thức quan trọng thường bị bỏ sót
Dù được dạy khá nhiều về cấu trúc dữ liệu và giải thuật, nhưng có một số kiến thức quan trọng khác mà nhiều sinh viên lại không được đề cập nhiều. Ví dụ:
- Phân biệt giữa
Editor
,IDE
,toolchain
, vàSDK
, và chức năng của chúng. - Kiến thức về quy trình biên dịch mã nguồn.
- Cách biên dịch chéo cho các dự án đa nền tảng.
- Phương pháp debug chương trình.
- Cách tổ chức hệ thống build cho các dự án lớn với hàng trăm file mã nguồn.
- Cách sử dụng mã nguồn mở.
- Quy trình hoạt động của một phần mềm khi chạy.
- Khái niệm về Unittest và cách viết chúng.
- Kiến thức về hệ thống kiểm soát phiên bản (Version Control System).
- Thông tin cơ bản về bảo mật (security).
- Hiểu biết về Design Patterns và ứng dụng của chúng.
- Sự khác biệt giữa Architecture Patterns và Design Patterns.
Ngoài những kiến thức trên, còn rất nhiều vấn đề khác mà sinh viên lập trình cần tìm hiểu. Nếu bạn theo đuổi sự nghiệp trong ngành này, hãy bắt đầu nghiên cứu và tìm hiểu những vấn đề này qua các trang web hữu ích, blog và từ các chuyên gia đi trước.
Các tài nguyên hữu ích
Dưới đây là một số trang web mà mình thường xuyên ghé thăm để học hỏi thêm:
Mỗi trang web đều cung cấp những nội dung với các cấp độ khác nhau, hãy cố gắng nắm vững kiến thức căn bản ở cấp độ thật sự dễ tiếp thu, bởi nó sẽ tạo nền tảng vững chắc cho kỹ năng lập trình của bạn. Trong blog của mình, Coder Tiger (là mình) cũng sẽ chia sẻ những kiến thức về các lĩnh vực này, giúp những ai theo đuổi lập trình có thể dễ dàng tiếp cận.
Tất nhiên, việc tự học không phải lúc nào cũng dễ dàng, đặc biệt là khi không có người hướng dẫn. Theo đó, nếu bạn có bất kỳ câu hỏi nào, hãy thoải mái liên hệ với mình nhé!
Lời khuyên
Cuối cùng, mình muốn nhấn mạnh rằng việc tìm đọc tài liệu chất lượng từ các nguồn chính thống là rất quan trọng. Tuy nhiên, nếu bạn gặp khó khăn trong việc tiếp thu, hãy kết hợp giữa các nguồn tài liệu thực hành và lý thuyết để cân bằng hơn.
Chúc các bạn học tập tốt và luôn duy trì đam mê với lập trình!
Tái bút: Một số tài liệu chính thống mà các bạn có thể tham khảo khi nghiên cứu sâu hơn:
- Git: git-scm.com/book (chính thức)
- Web: developer.mozilla.org, css-tricks.com
- Android: developer.android.com (chính thức)
- C++: learncpp.com, en.cppreference.com
- Các mẫu thiết kế game cơ bản: gameprogrammingpatterns.com
source: viblo