• 1
    Học về ngôn ngữ lập trình
  • 2
    Học lập trình 8051, trang bị kiến thức cơ bản về điện tử
  • 3
    Lập trình chuyên sâu VDK

LỘ TRÌNH TRỞ THÀNH KỸ SƯ LẬP TRÌNH NHÚNG

Lập trình nhúng là gì ?

Nói đến lập trình chúng ta nghĩ ngay đến CNTT (IT). Chuyên nghành mà chúng ta có thể có thể tạo ra những tựa game hay, những phần mềm đỉnh cao, các trang web lớn, công nghệ AI, Blockchain ... đủ mọi thứ trong tưởng tượng. Còn với lập trình nhúng, các bạn sẽ đi lập trình các chương trình chạy cho những con chip, các dòng Vi điều khiển, Vi xử lý. Đối với CNTT chúng ta có vô vàn các loại ngôn ngữ bậc cao để lập trình. Còn đối với lập trình nhúng, ngôn ngữ được sử dụng nhiều nhất lại là ngôn ngữ C. Vậy thì lập trình nhúng để làm gì ?


Khi làm lập trình nhúng các bạn có thể:

  • - Tạo ra các loại robot phục vụ cuộc sống.
  • - Tạo ra máy móc công nghiệp.
  • - Tạo ra các thiết bị điện tử. Hầu như tất cả các loại máy móc, thiết bị điện trong gia đình, … đều chứa trong nó một bo mạch điện tử có những con IC con chip trên đó.
  • - Tạo ra các hệ thống hoạt động độc lập với con người để đo lường, quản lý, giám sát…
  • - Tạo ra các loại robot phục vụ cuộc sống.

So sánh lập trình nhúng và IT ?

  • - Một cách công bằng mà nói, mặt bằng thu nhập của lập trình nhúng sẽ không thể nào bằng với bên IT được. Thường sẽ chênh nhau cỡ 1.5 lần. Kể cả về số lượng Jobs và Outsource thì IT vẫn chiếm ưu thế. Vì vậy chắc chắn bạn sẽ bắt đầu phân vân khi đọc đến đây.
  • - Việc bắt đầu với lập trình nhúng khó hơn nhiều so với IT. Bạn sẽ phải có kiến thức về cả phần cứng, đọc được mạch, thiết kế sơ đồ nguyên lý rồi lập trình cho con chip trên mạch. Chưa kể việc lập trình cho chip khó hơn nhiều so với viết một phần mềm đã có rất nhiều tutorial trên mạng. Kể cả việc tìm tài liệu tiếng việt ngành này gần như cực ít.

Vậy thì lợi thế nào cho lập trình nhúng ?

  • - Đầu tiên là dễ làm sản phẩm. Các sản phẩm của lập trình nhúng thường không quá phức tạp. Đương nhiên sẽ có sản phẩm phức tạp có sản phẩm không, nhưng chung quy chúng ta đều có thể làm ra được các sản phẩm phù hợp với nhiều mức độ năng lực. Mình từng biết rất nhiều bạn bằng tuổi kém tuổi mình có thể làm và thương mại được các sản phẩm tương đối đơn giản nhưng hiệu quả cao. Có thể kể như các sản phẩm về led trang trí, led pháo hoa, máy rửa tay khử khuẩn, máy rót rượu, làm 1 cái ăn cả đời 🙂
  • - Dễ dàng chuyển nghành. Bởi vì đặc thù công việc phải lập trình nên các bạn theo lập trình nhúng cũng có thể dễ dàng chuyển nghành sang IT nếu thích. Thời gian để chuyển nghành có thể rơi vào từ 6 tháng đến 1 năm. Việc có sẵn tư duy lập trình nhúng sẽ giúp các bạn hiểu sâu hơn về ngôn ngữ lập trình.
  • - Sản xuất trong lập trình nhúng là một mảng mồi khá béo bở. Cái này mình nhìn ra xung quanh những người mà mình quen biết. Họ khi nắm được công nghệ sản xuất thường sẽ có tư duy ra làm chủ.
  • - Công nghệ ít thay đổi. Theo thời gian kinh nghiệm của bạn tăng lên và bạn sẽ được đánh giá cao trong nghành của mình. Thường thì khi kinh nghiệm của bạn từ 3-5 năm thì mức thu nhập cũng chả kém bên IT là mấy, đặc biệt nhận Job nước ngoài thì họ trả cho mình sẽ rất hậu hĩnh. Và khi bạn đã là key member trong team thì việc thay thế bạn là rất khó, vì nhân lực chất lượng cao trong ngành này khá ít.
  • - Được làm thứ mà bạn yêu thích. Mình từng hỏi 1 người em của mình là liệu rằng nó có chuyển sang nghành IT hay không. Và câu trả lời là không. Bởi vì đơn giản là thích làm lập trình nhúng. Thích được làm mạch và làm ra sản phẩm của riêng mình. Nói chung làm nhúng rồi thì sẽ có một thứ sức hút vô cùng lớn vì bạn sẽ được cầm thứ máy móc mà bạn làm được ở trên tay.

Lộ trình học lập trình nhúng từ Zero

  • - Lan man vậy để cho bạn hiểu vì sao chúng ta lại bắt tay vào học lập trình nhúng. GIờ là lúc chúng ta đi sâu về lộ trình. Chú ý rằng đây là lộ trình tự bản thân mình đúc rút ra chứ không theo bất kì một tài liệu nào. Nó hoàn toàn được đúc rút từ kinh nghiệm.

Giai đoạn 1: Học về ngôn ngữ lập trình

Chắc chắn rồi, bạn phải học C và C++. Hai ngôn ngữ quan trọng nhất trong nghành Embedded. Hãy học chắc C trước rồi sau đó quay ra học C++ sẽ nhanh hơn rất nhiều. Đừng làm điều ngược lại nhé. Đối với C các bạn cần nắm chắc được các kiến thức liên quan tới mảng, chuỗi, con trỏ, struct … Còn đối với C++ hãy nắm thật chắc phần hướng đối tượng bao gồm 4 tính chất trong hướng đối tượng. Cụ thể tất cả đã có trong 3 khóa học sau, hãy đọc thật kĩ lộ trình của nó.


Giai đoạn 2: Học lập trình 8051, trang bị kiến thức cơ bản về điện tử

Giai đoạn này thì mình khuyên các bạn chắc chắn phải học và thực hành theo chuỗi series học 8051 của anh Nguyễn Thanh Dâng, series số 1 trên Youtube, mình cũng đã bắt đầu từ đây. Xuyên suốt cả chuỗi video sẽ trang bị cho bạn tất cả những khái niệm cơ bản nhất về điện tử, biết về cách lắp mạch cơ bản, các khái niệm về ngoại vi như GPIO, Interrupt, ADC, Timer, PWM, UART, SPI, I2C…

Ngoài ra thì các bạn có thể tìm hiểu dần về cách sử dụng phần mềm thiết kế mạch Altium, nếu chuyên về code thì chúng ta không cần tìm hiểu quá sâu nhưng cũng cần biết các vẽ, biết cách lên sơ đồ nguyên lý để sau có thể hành tẩu giang hồ kiếm cơm mà không cần ai.

Mình để 2 khóa học tại đây


Giai đoạn 3: Lập trình chuyên sâu VDK

Ở giai đoạn này các bạn sẽ tìm hiểu tới con chip 32 bit đầu tiên và bắt buộc đó là STM32, nắm được con này rồi thì các bạn có thể học sang các con chip khác rất nhanh chóng thôi nên không cần phải cố mua thật nhiều chip về để lập trình làm gì, code sâu thật sâu 1 con thôi là đủ.

Các bạn cần nắm chắc kiến thức về ngoại vi cơ bản: GPIO, Interrupt, ADC, Timer, PWM, UART, I2C, SPI.

Các kiến thức nâng cao như: Mã hóa thông tin, Bootloader, OTA, Low power, RTOS... Tiếp theo là các loại chuẩn giao tiếp và protocol hay được sử dụng trong công nghiệp: RS232, RS485, CAN, Modbus RTU…

Tập trung làm thật nhiều project nhất có thể, đương nhiên các project cũng cần làm sâu và hiểu cặn kẽ, các bạn có thể tham khảo các đề tài tốt nghiệp của các anh khóa trước để có thêm ý tưởng. Học thêm cả cách viết GUI trên PC để xây dựng hệ thống giám sát hoàn chỉnh nhé.


Các khóa học cần thiết mình sẽ để ở đây nhé: