Nhập môn lập trình thì đừng vội học môn này trước, tẩu hỏa nhập ma đó.
Nếu theo Java Backend thì có thể học theo thứ tự sau:
Fundamentals:
- Java cơ bản: học để biết cách hoạt động của một ngôn ngữ lập trình, loop, if-else, switch-case, array, data type, variable/property vs method/function...
- OOP cơ bản: tối thiểu phải nắm được các tính chất cơ bản của OOP, cách hoạt động của static vs non-static, cách tối ưu packages/classes để code được gọn gàng.
- SQL và ORM: hiểu được vai trò của SQL trong Backend truyền thống là gì, sau đó biết cách Java tương tác với DB như nào.
"Advance": gọi là advance vậy thôi chứ nó chỉ là cơ bản, nhưng bắt buộc phải hiểu những cái fundamentals trên thì mới học được tới đây:
- Restful API: học để biết được cách gửi/nhận data giữa client và server như nào, tổ chức API header/body ra sao...
- Servlet: đây gần như là cái nền móng cho hầu hết các Java web application framework hiện tại, không cần master nhưng cần phải biết Java servlet là cái gì.
- Spring: basic nhất thì học thẳng Spring Boot để vào thẳng dự án, sau này quen rồi thì đào sâu hơn. Nói thật chứ Java mà master được Spring Framework thì không sợ thiếu việc làm. Quan trọng là master được nó hay không thôi.
Đây chỉ là những thứ cực kì basic của một
Junior Java BE thôi, nhưng từng này tạm đủ để có project bỏ vào CV mà phỏng vấn rồi. Ngoài ra còn cần nhiều thứ khác nữa:
- Frontend stack để có thể làm việc được với team FE.
- CMS framework nếu hệ thống có nhiều content.
- Maven/Gradle để làm đủ thứ: package management, build tool, unit test...
- Configuration, OS, Network... để xử lý mấy công việc khác ở server.
- Task management (Jira, Confluence), VCS (git, SVN, github, gitlab...) để nắm được workflow của project.
- Automation (từ mấy cái script bash trên Linux đến CI/CD) để tối ưu hóa workflow
- Monitoring, Debugging, Troubleshooting... để tối ưu hóa project, fix bug...
- Cloud: thời đại này cloud đi muôn nơi nên biết cách làm việc với cloud thì không sợ chết đói, mà nói chứ bản chất cloud cũng chỉ là "máy tính nhà người ta" cộng thêm mấy service để quản lý thôi, biết cách re-learn thì học cũng nhanh lắm.
P/s: làm gì thì làm, tiếng anh phải xài được cái đã thì mới nói chuyện tiếp, thời buổi phổ cập IELTS band 6-7 thì Tiếng Anh yếu đừng mơ vượt qua vòng gửi xe.
Mình không phải cổ xúy việc chỉ học tool/framework để đi làm, mà đó là kinh nghiệm mình đúc kết được từ hồi chưa biết gì về code đến khi trở thành một "Senior" giả cầy. Việc nắm vững CTDL> là một trong những yếu tố quan trọng để phân biệt giữa một lập trình viên bình thường và lập trình viên xuất sắc, nhưng để trở thành một ông xuất sắc thì trước hết mình phải là một "lập trình viên" cái đã.
Nói thiệt mình vẫn chưa hình dung được việc học + thực hành mấy cái CTDL> như nào nếu một dòng code bẻ đôi còn không biết nữa. Tối thiểu phải biết xài một ngôn ngữ lập trình rồi thì mới có thể bắt đầu học môn này được.