🌱 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.
30 Nhận xét
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óaTheo 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óaEm 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óaEmbedded 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óaAnh cũng học tự động hoá ra và đang làm embedded software
XóaA đang làm về gì vậy ạ
XóaA đang làm mảng automotive ở fsoft
XóaLàm việc cho bên đấy cần những kiến thức gì vậy anh
XóaEm xem chi tiết trong bài viết này nhé. Mục 1 luôn đó.
Xóahttps://laptrinhcnhung.blogspot.com/2021/08/Dinhhuongnganhnghe.html?m=1
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óaCó 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óaGiờ 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óaTrong 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óacho 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óaa 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óaem 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óaLậ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óaDạ 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óaChà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óaDạ 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óaNế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óaDạ 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óaChà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óaCá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óaChà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óaEm 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óahi em, em có thể xem các bài viết khác trên trang nhé
XóaEm 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óaHi 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óaAnh ơ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