Hỏi về định hướng Lập trình nhúng

Chào mọi người, em hiện là sinh viên năm ba ngành Kỹ thuật máy tính. Em định hướng mình sẽ theo mảng Lập trình nhúng - IoT và có những thắc mắc sau ạ:

  • Roadmap để trở thành một kỹ sư Lập trình nhúng IoT là gì? (Em đang trong giai đoạn tích luỹ kỹ năng cứng thôi nên những chia sẻ về thực trạng ngành nghề là rất quý ạ)
  • Ở khoá của em, phân ngành có sự thay đổi trong chương trình học: không còn những môn Vi xử lý, Lý thuyết thông tin,… Các môn về điện tử, tín hiệu, truyền thông như Điện tử cho CNTT, Nhập môn kỹ thuật truyền thông thì mới đưa vào giảng dạy và chất lượng không thực sự tốt, môn Xử lý tín hiệu (số) thì đã giảm tải nhiều. Em sợ mình không có kiến thức nền về phần cứng, điện tử; vậy em có thể tự tìm hiểu như thế nào ạ?
  • Những công ty, doanh nghiệp lớn nào ở Việt Nam làm về lập trình nhúng IoT?
  • Em có kỹ năng đọc, nghe tiếng anh ổn. Em nên học thêm ngôn ngữ nào nếu có nguyện vọng làm việc ở nước ngoài?

Em xin cảm ơn mọi người.

1 Like

kỹ thuật máy tính UIT hả bạn

1 Like

IoT là lập trình nhúng đó, đừng có chạy theo buzzword.

5 Likes

Không bạn ơi, là Kỹ thuật máy tính HUST

Với wifi công suất thấp :smiley: pub-sub, msg queue, MQTT protocol :smiley:
Edge computing.

4 Likes

Nhúng thì tư vấn được, IOT thì chịu không biết gì để chia sẻ :smile:

1 Like

Vâng anh tư vấn về nhúng giúp em được không ạ, như anh trên nói, em còn bị buzzword che mắt :worried::worried::worried:

Viettel R&D, Vinfast, Fsoft , Bosch ( riêng cty này ở sài gòn)

Recommend tiếng nhật. Giờ đi nhật dễ lắm, tốt nghiệp BK + chứng chỉ N3 là đi được rồi, fresher cũng được tầm 2k5.

Kiến thức ở trường dạy cho là background nền tảng, họ dạy môn nào cứ học môn đó đi. Đặc biệt là các môn : hệ điều hành, mạng máy tính, kiến trúc máy tính, cấu trúc dữ liệu và giải thuật, kỹ thuật lập trình. Kiến thức về vi xử lý chắc trong trường cũng sẽ có môn này
Còn tự học là cái bổ sung,bạn có thể tham khảo (mảng embedded nó cũng chia thành nhiều mảng con nữa, cái em nói ở đây là phần mềm( các hệ thống nhúng ko dùng OS), không phải dạng thiết kế phần cứng)
Tự học bằng đọc sách + tutorial:

  1. Học lập trình C, vì phần lớn công việc là code bằng C. K&R C là quyển kinh điển, học xong nó là coi như chắc C cơ bản.Muốn đi sâu hơn thì đọc thêm vài quyển(mức độ khó tăng dần) : Practice C, The practice of programming, Expert C- deep secret.
  2. Học lập trình embedded : nên đọc Programming embedded system (Michael Bar) để có cái nhìn tổng thể về 1 embedded system. 1 quyển khác cung rất hay là making embedded systems( ko cần phải chạy code example )
  3. Học assembly. Assembly chỉ cần học để có thể đọc hiểu code
  4. Thực hành : cái này tùy, có nhiều kits để vọc lắm. Ví dụ kiếm kít Renesas rồi down datasheet của nó học code các module như LED, AD, PWM, UART…
    Nếu chưa có điều kiện thực hành thì cũng chả cần lo lắng, chỉ cần học để hiểu tổng quan, say này đi làm mình sẽ dần dần tích lũy và tự học thêm. Vì những thứ như CAN, SPI, UART, AD… ko có thiết bị kiểu như Olliscope hay tool như Canalyzer thì cơ bản cũng chả làm ăn được gì.

Về thực tế : fresher ban đầu làm test, ko cần kiến thức gì nhiều, vì căn bản đọc hiểu tài liệu , làm việc với các tool , dân không phải IT ( mấy con đàn bà học tiếng Đức ra cũng làm ngon :smile: )
Cứng cứng hơn thì viết code, chủ yếu là đọc datasheet để code C. Việc này cũng ko khó, căn bản làm đúng theo hướng dẫn của datasheet là nó sẽ chạy.Quanh quẩn hệ thống nhúng cũng chỉ có vài module lặp đi lặp lại : SPI, IIC, PMW, AD, LED,CAN … Cái khó là viết code sao cho nó tối ưu.

Một road khác là học theo chương trình Automotive của FUNIX. Họ dạy C++ và QT, tức là hướng này sẽ làm phần giao diện cho phần mềm nhúng( tức phần “nổi” nhất) vì QT là cái để làm UI bằng C++. Hướng này dễ hơn nhiều, chỉ cần học C++ và làm phần mềm desktop với QT là đủ . UI cơ bản là kéo thả trên QT creator rồi viết code C++ điều khiển cho nó, nếu đã biết cách làm desktop app với QT thì chuyển sang embedded chắc cũng không khó khăn lắm

10 Likes

Chi tiết quá, em cảm ơn anh rất nhiều ạ :hugs:

Chi tiết thật sự, cảm ơn tiền bối!

Ông khóa bn t dtvt hust cx định theo nhúng

tôi khoá k62 ông ơi, ông khoá bao nhiêu?

Thế là tiền bối r em k64 mà e thấy khá nhiều ý kiến trái chiều giữa định hướng ktmt bên dtvt vs bên it2 a nghĩ s???

Từ khoá anh nhà trường bắt đầu có nhiều thay đổi trong chương trình học, anh cũng chẳng có sức theo dõi thay đổi ở cả k64 nữa. Vừa nãy nhìn qua chương trình thì đtvt cũng được học cấu trúc dữ liệu, giải thuật và kỹ thuật lập trình, những môn quan trọng của bên công nghệ thông tin. Mạng máy tính và Hệ điều hành em cũng sẽ đuợc học nếu theo module điện tử - kỹ thuật máy tính. Điểm khác biệt là em không được học Lập trình hướng đối tượng và Cơ sở dữ liệu. Nhưng em yên tâm nếu nhà trường đã có tư vấn là chuyên ngành của em có thể theo lập trình nhúng thì ok đừng lo nghĩ nhiều. Lập trình nhúng cũng nhiều mảng, bên KTMT bọn anh thiên về lập trình - phần mềm, thì bên điện tử lại mạnh về phần cứng.
Đại học dạy mình kỹ năng quan trọng nhất là tự học. Nếu em có thể học tốt ở Bách Khoa thì chắc chắn em có thể tự học thứ mình muốn. Lương thấp cao là do thị trường quyết định, đừng bận tâm đến thứ mình không thể quyết định, hãy chú tâm vào kỹ năng của bản thân mình, nó mới là thứ mình thay đổi được. Với kinh nghiệm của người đã bỏ bê 2 năm đầu đại học và giờ đang hối hận, anh khuyên em là tất cả các môn (trừ các môn chính trị em thấy quá khô khan) là không thừa chút nào. Do đại học là nơi build kỹ năng theo kiểu bottom up nên khó khăn ban đầu là đương nhiên, em càng không được nản.

3 Likes

Ok ạ e cảm ơn a ạ cx may mấy môn tính toán e học cx ổn @@

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?