Title Image

Blog Logo

Embedded Roadmap

🌱 Embedded Roadmap

    Bạn là sinh viên IT hay sinh viên điện tử, bạn yêu thích các dòng code, và đặc biệt, bạn có đam mê với phần cứng, các loại chip, board mạch. Thậm chí bạn muốn tự thiết kế cho mình các sản phẩm nhúng để thoải mãn đam mê. Thì nhúng (embedded) sẽ là từ khóa dành cho bạn. Embedded có nhiều hướng

    👑 Embedded Software

    Bạn sẽ là một developer (lập trình viên) đúng nghĩa, bạn sẽ cùng với đội nhóm của mình, phát triển các sản phẩm phần mềm cho các sản phẩm nhúng, có thể là application (web, desktop hay mobile app), firmware, OS (hệ điều hành), driver, vv.

    Công việc của bạn là viết code, test code, viết requirement, document cho sản phẩm.

    ➤ Xem thêm về cách mình học lập trình VĐK tại đây!

    👾 Embedded hardware

    Bạn sẽ là một người chuyên thiết kế board mạch hay còn gọi là thiết kế PCB, test board mạch. Công việc này đòi hỏi bạn phải rất giỏi về phần cứng và điện tử.

    🌱Kiến thức cần trang bị

  • Lập trình C/C++.
  • Tiếng anh: đọc hiểu datasheet, document.
  • Kiến thức về điện tử: các kiến thức về logic, vi điều khiển, vi xử lý , ADC, TIMER, INTERRUPT, vv.
  • Các loại giao tiếp (protocol): UART, I2C, SPI, RS232, JTAG,… (nâng cao: SATA, PCIE, USB, CAN, MOST).
  • Hệ điều hành: kiến trúc hệ điều hành, kiến trúc máy tính, nhất là hệ điều hành linux.
  • Cấu trúc dữ liệu và giải thuật.
  • Memory: NOR, NAND, SRAM, DRAM, vv.
  • Hệ điều hành thời gian thực (Real time OS).

    🌱 Kiến thức bổ trợ

    👑 Embedded software

  • Lập trình ứng dụng (application): web, app.
  • Lập trình device driver.
  • Script: Perl, Python, đặt biệt là Shell script trên linux.
  • Cấu trúc dữ liệu và giải thuật cực tốt.
  • Xây dựng môi trường (build environments): Makefile, Cmake.

    👾 Embedded hardware

  • Thiết kế PCB: Allegro hay Antium.
  • Design schematic.
  • Test board.
  • Review, đánh giá và lựa chọn linh kiện tối ưu cho dự án.
  • Sử dụng các loại dụng cụ máy đo.
  • Kĩ năng hàn mạch, sửa mạch (nếu bạn là Freelancer).

    🌱 IoT - Internet of Things

    Hiện nay IoT là xu hướng phát triển cực mạnh và nhanh, bạn không thể lạc hậu được!! Một số kiến thức cần cho hướng này:

  • Networking: TCP/IP, Wifi, Bluetooth, Cellurla, Zigbee, RF, v.v.
  • Webserver: Cách thức hoạt động của Webserver và cách “ra lệnh” cho phần cứng là việc từ internet (CGI, Java, Javascript, vv), lập trình web và andoid ở mức cơ bản.
  • Cloud: Rất quan trọng trong trong việc quản lý, điều khiển thiết bị từ xa. Một số giao thức: HTTP, CoAP, Lighweight M2M
  • Bảo mật trên các thiết bị IoT.

    🌱 Embedded Linux

    Giải pháp cho một số hệ thống nhúng lớn - máy tính nhúng, mà sức mạnh của vi điều khiển không đáp ứng được nhu cầu!

    Để theo hướng này, bạn cần học hỏi về hệ điều hành linux:

  • Command line và shell script trên linux, cách boot hệ thống, load firmware, cách debug sửa và vá lỗi.
  • Cách build một hệ thống nhúng, cách tốt nhất là thực hành build hệ điều hành thường xuyên trên một board ví dụ như Raspberry Pi, Beagle Bone.
  • Device driver để giao tiếp với các ngoại vi. Phát triển ứng dụng.

    🌱 Một số hướng khác như FPGA, AI, ... cũng đang khá hot.

>>>= Follow ngay =<<<

💚 Kênh Youtube Lập trình - Điện tử 💚

Để nhận được những bài học miễn phí mới nhất nhé 😊

    👉 Xem thêm

Đăng nhận xét

30 Nhận xét

  1. anh cho em hỏi theo mảng hardware thì có cần trang bị kiến thức về lập trình vi điều khiển không ạ

    Trả lờiXóa
    Trả lời
    1. Theo anh thấy thì những người theo mảng hardware vẫn nên biết về lập trình vi điều khiển, bạn a làm hardware nhưng cũng lập trình vđk rất giỏi, vì nó sẽ giúp ích nhiều cho việc thiết kế phần cứng đó

      Xóa
  2. Em không giỏi về thiết kế phần cứng. Mảng software thì có công việc nào lập trình với phần cứng không anh? Em học tự động hóa nên kiến thức về lập trình web, app không có ạ

    Trả lờiXóa
    Trả lời
    1. Embedded software cũng k yêu cầu về web app đâu em. Tùy vào môi trường mà em làm việc. Có nơi sẽ được tiếp xúc với phần cứng khá nhiều, có chỗ thì k.

      Xóa
    2. Anh cũng học tự động hoá ra và đang làm embedded software

      Xóa
    3. A đang làm mảng automotive ở fsoft

      Xóa
    4. Làm việc cho bên đấy cần những kiến thức gì vậy anh

      Xóa
    5. Em xem chi tiết trong bài viết này nhé. Mục 1 luôn đó.
      https://laptrinhcnhung.blogspot.com/2021/08/Dinhhuongnganhnghe.html?m=1

      Xóa
    6. A có biết chỗ nào nhận thực tập sinh hay học việc gì không ạ? Em đang học mấy cái này nhưng không có điều kiện làm project để hiểu sâu hơn ạ.

      Xóa
    7. Có fsoft thường xuyên tuyển fresher đó e. Em tìm vào trang tuyển dụng của họ sẽ thấy.

      Xóa
    8. Giờ e muốn học sâu hơn về C và kỹ năng lập trình, có trang nào dạy cái này ổn ổn không anh?

      Xóa
    9. Trong trang này của anh có đó em. Phíabeen phải là các label đó. Kiến thức về C/vi điều khiển,...

      Xóa
    10. cho em hỏi anh học lên kỹ sư hay cử nhân ạ, nếu như theo hướng này thì có cần học lên kỹ sư không anh? Hiện tại em đang học năm 3, mặc dù điểm thi các môn vẫn tạm ổn nhưng em thấy tư tưởng là vẫn học để thi nên hơi chán ạ.

      Xóa
    11. a học hệ kỹ sư, theo anh thì có cơ hội học tập thì cứ học thôi em, với học để biết chứ k nên học để thi

      Xóa
    12. em học chuyên ngành điện , điện tử , em có học về 8051 và kỳ tới sẽ học pic , em muốn hỏi nếu theo mảng lập trình nhúng thì cơ hội việc làm có cao không ạ

      Xóa
    13. Lập trình nhúng thì cơ hội việc làm hiện nay là rất nhiều em nhé, làm software thì 5 10 năm tới vẫn nhiều việc lắm

      Xóa
  3. Dạ em chào anh ạ, trước hết cho em xin gửi lời cảm ơn anh vì đã chia sẻ những kinh nghiệm và khóa học bổ ích ạ. Em có một câu hỏi là em muốn học theo hướng Embedded Software, em thấy trong lĩnh vực này có nhiều thứ để học như là, cấu trúc dữ liệu, lập trình vi điều khiển, RTOS... anh có thể cho em hỏi là mình nên học theo thứ tư như thế nào ạ? em hiện đang học lâp trình STM32 và cấu trúc dữ liệu ạ. Em cảm ơn anh ạ!

    Trả lờiXóa
    Trả lời
    1. Chào em, theo anh thì mình cứ học STM32, cụ thể học để hiểu về Core Cortex-M được dùng rất nhiều hiện nay, cùng với đó là các kiến thức về ngoại vi của nó (ADC, TIMER, USART, INTERRUPT, CAN, ...). Rồi em có thể học thêm một số kiến thức như RTOS, Bootloader, đây là những kiến thức base nhất. Còn sau đó thì anh nghĩ nên vào làm dự án cụ thể để biết mình cần học thêm gì (tùy vào dự án sẽ có những yêu cầu khác nhau)

      Xóa
    2. Dạ vâng em cảm ơn anh ạ, còn về phía OOP và thuật toán mình có cần phải thực sự thuần thục nó không anh ạ?

      Xóa
    3. Nếu học nhúng Vi điều khiển thì k cần em nhé, còn nếu học C++ làm QT các thứ thì cần

      Xóa
    4. Dạ vâng em cảm ơn anh, em hiện là sinh viên năm 2 ngành nhúng ở một trường đại học ở Phần Lan, hè này em có dự định về Việt Nam, em muốn tìm một công việc thực tập không lương để có thể học hỏi thêm kiến thức và kinh nghiệm anh có thể chia sẻ cho em cách tìm được không ạ?

      Xóa
    5. Chào em, về VN thì khá nhiều công ty thực tập có lương nhé. Có rất nhiều trang tuyển dụng như topcv, vietnamwork, ...

      Xóa
  4. Cám ơn anh vì những chia sẻ bổ ích ạ. Em đọc và đã suy nghĩ rất nhiều mà mọi thứ vẫn mông lung. Hiện tại em đang theo học ngành Cơ điện tử và đã có ý định theo hướng lập trình Nhúng và IOT. Nhưng 1 số anh chị đi trước lại khuyên em rẽ hướng sang Web/Moblie , vì nó nhiều việc hơn và dễ kiếm cơm. Nếu em rẽ sang Web thì đồng nghĩa thì e không tận dụng được kiến thức học trên trường và thiệt thòi hơn các bạn theo CNTT. Hiện tại e đã sắp hết năm 2 rồi, mà chỉ biết 1 chút về C và Vi điều khiển PIC. Trên trường thì e thấy học chủ yếu là để thi, vì thế em muốn đi thực tập để có những kiến thức thực tế hơn và xem thực sự mình có hợp vơi nhúng không. Không biết có chỗ nào tuyển 1 newbie như e không ạ. Mong anh recomend ạ

    Trả lờiXóa
    Trả lời
    1. Chào em, anh cũng nhìn thấy xu hướng nhảy sang web app, nhưng theo suy nghĩ của anh, thì làm nhúng cũng rất nhiều cơ hội việc làm. Em nên tìm hiểu cái em thích, thay vì chạy theo xu thế. Vì nếu ai cũng bỏ nhúng làm web app, thì thị trường đó cũng sẽ sớm bão hoà thôi. Còn việc thực tập a thấy năm 2 và kiến thức của em như vậy thì còn khá sớm. Em có thể theo lab hoặc tự mình làm các project để luyện tập thêm. Cụ thể em có thể inbox cho anh qua fb hoặc zalo để trao đổi thêm nhé.

      Xóa
  5. Em là sinh viên năm 2, ngành điện tử viễn thông của ĐHBK HCM, em thích code (đặc biệt là C++) và hứng thú với linux. Em thấy mảng embedded linux phụ hợp vs sở thích của mình. Anh có thể cho em về roadmap của định hướng đó không ạ. Em cảm ơn ạ.

    Trả lờiXóa
  6. Em chào anh ạ. Em là sinh viên tự động hóa và muốn làm mảng Embedded software . Anh cho em hỏi là làm embed software bên fsoft có phải làm nhiều về phần cứng k ạ? Em cảm ơn anh!

    Trả lờiXóa
    Trả lời
    1. Hi e, làm software thì cũng k yêu cầu nhiều phần cứng, chủ yếu đọc hiểu schematic là được

      Xóa
  7. Anh ơi em đang theo mảng lập trình nhúng, em ms bắt đầu học về stm32, anh cho em hỏi em nên học stm32 theo thư viện rồi xem sơ qua về thanh ghi của nó hay chỉ tập trung vào lập trình thanh ghi thôi vậy anh? Em cảm ơn anh

    Trả lờiXóa