Xuất phát từ những thắc mắc về việc cần học gì để tham và vào những lĩnh vực như Automotive, IoT… trong lập trình embedded. Bài đọc sau đây được viết nhằm mục giải thích rõ hơn và đi sâu vào từng khía cạnh.
Đầu tiên là các xu hướng chính trong lập trình embedded tại Việt Nam. Có thể tạm chia ra làm 4 loại chính:
- Automotive: Chủ yếu lập trình cho các thiết bị chạy trên ô tô.
Ngoài các kĩ năng lập trình cơ bản như C/C++, MCU, Linux thì sẽ cần thêm kiến thức về các loại OS hoặc chuẩn trên ô tô như Autosar, MCAL, QNX, Android…
- IoT: Lập trình cho các thiết bị IoT, smarthome.
Bên cạnh các kĩ năng lập trình cơ bản giống với Automotive ở trên thì sẽ cần thêm các kiến thức đặc thù bên IoT như Bluetooth protocol, Zigbee, Android…
- Networking và 5G: Chủ yếu lập trình cho các thiết bị mạng như wifi, router, switch…
Sẽ yêu cầu các kĩ năng lập trình cơ bản kèm theo đó là kiến thức về Networking, 5G,…
- Mobile: Lập trình cho các thiết bị chạy hệ điều hành Android như điện thoại, tivi,…
Samsung là công ty tuyển nhiều nhất về lĩnh vực này. Sẽ yêu cầu skill lập trình cơ bản và skill đặc thù là kiến thức về hệ điều hành Android.
- Còn rất nhiều dự án không thuộc 4 loại đã liệt kê trên.
Như vậy, đối với tất cả các nhánh trong embedded thì đều yêu cầu 2 phần – kiến thức lập trình cơ bản trong embedded và kiến thức chuyên ngành.
Yêu cầu về mặt tỷ lệ của 2 loại kiến thức này sẽ phụ thuộc vào từng level của người kỹ sư. Có thể tạm ước tính như sau:
- Đối với fresher và sinh viên mới ra trường < 1 năm kinh nghiệm: Tỷ lệ này sẽ là 100 – 0.
Có nghĩa là hoàn toàn không yêu cầu biết về kiến thức chuyên ngành đối với bất kỳ lĩnh vực nào. Tại buổi phỏng vấn nhà tuyển dụng chỉ tập trung hỏi những kiến thức cơ bản như lập trình C/C++, MCU, Linux. Thậm chí, trong thời gian sinh viên còn đi học, các bạn có làm những đồ án liên quan đến IoT thì họ cũng không quan tâm quá nhiều đến tính ứng dụng. Cái mà người phỏng vấn đặc biệt chú trọng là kỹ thuật lập trình của bạn đang ở mức độ nào.
- Junior 1 – 3 năm kinh nghiệm: Tỷ lệ này sẽ tạm chia 80 – 20.
Thực ra trong giai đoạn này các bạn hoàn toàn có thể chuyển đổi giữa các nhánh mà không gặp vấn đề gì. Các câu hỏi khi phỏng vấn thường chỉ tập trung vào những kiến thức thuộc khối cơ bản. Tất nhiên, nhà tuyển dụng sẽ yêu cầu các bạn phải nắm sâu được hơn so với level trước.
- Senior: Từ 5 – 7 năm kinh nghiệm. Tỷ lệ lúc này sẽ phân chia khoảng 60 – 40.
Lúc này kiến thức chuyên ngành cho từng lĩnh vực đã trở nên quan trọng. Các bạn không nên nhảy việc qua lại giữa các nhánh nữa mà nên xác định rõ mình sẽ theo đuổi và trở thành chuyên gia trong nhánh nào. Đặc điểm của nghề lập trình embedded là hiểu sâu thường được đánh giá cao hơn biết rộng.
Có thể thấy trong suốt giai đoạn sinh viên và những năm đầu đi làm, các bạn chỉ cần tập trung đào sâu vào những kiến thức cơ bản của nghề lập trình embedded. Chúng bao gồm C/C++, MCU, Linux. Ngoài ra, sẽ tốt hơn nếu các bạn biết thêm về OOP, giải thuật, git, shell script. Việc lựa chọn chuyên ngành mình sẽ theo chỉ đơn giản là các bạn apply CV vào những công ty đang làm về lĩnh vực đó mà thôi. Khi phỏng vấn, bộ câu hỏi sẽ mang tính chất chung chung giữa các công ty.
Do Việt Nam là một nước đang phát triển, Việt Nam đồng yếu hơn đô la, những công ty trả lương cao thường sẽ là các tập đoàn lớn hoặc các công tư nước ngoài đặt trụ sở tại Việt Nam. Do vậy, nếu các bạn muốn có lương cao và ít phải OT thì tiếng anh là thứ bắt buộc các bạn phải có.
Ngoài ra, các bạn có thể tham khảo 1 bài viết hướng dẫn về lộ trình học trong giai đoạn còn là sinh viên ở đây: