Lộ Trình Học Lập Trình Nhúng Cho Người Mới Bắt Đầu

Lập trình nhúng (embedded programing) là công việc của một embedded developer (lập trình viên nhúng) có nhiệm vụ viết các phần mềm để nạp vào vi điều
Lộ Trình Học Lập Trình Nhúng Cho Người Mới Bắt Đầu
Please wait 0 seconds...
Scroll Down and click on Go to Link for destination
Congrats! Link is Generated


Lập trình nhúng là một ngành có cơ hội nhưng cũng đòi hỏi nhiều kiến thức và kĩ năng. Trong bài này mình sẽ giải thích một cách chi tiết nhất về nghành này, sau khi đọc các bạn có thể đưa ra quyết định là có nên theo đuổi nghành này hay không nhé.

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

Lập trình nhúng (embedded programing) là công việc của một embedded developer (lập trình viên nhúng) có nhiệm vụ viết các phần mềm để nạp vào vi điều khiển hoặc vi xử lý, để chúng điều khiển các phần tử trong mạch điện hoạt động theo đúng yêu cầu.

Các mạch điện có thể lập trình được thường được gọi là mạch nhúng.

Các hệ thống bị chi phối hoạt động bởi vi điều khiển hoặc vi xử lý gọi là hệ thống nhúng.

Tại sao lại gọi là hệ thống nhúng?

Lấy một ví dụ cho đơn giản. Bạn có 1 cái ly, nước và 1 gói trà. Cái ly là cố định không thể thay đổi, nhưng nước và gói trà có thể thay đổi. Khi chúng ta thay đổi gói trà, thì ly nước đó sẽ có vị khác nhau. Người ta gọi nôm na là “nhúng”.

Vì vậy một hệ thống có sự góp mặt của phần cứng (cái ly) và phần mềm (nước trà) là hệ thống nhúng.

  • Phần cứng sẽ là phần không thể thay đổi: mạch điện, vi xử lý
  • Phần mềm chính là phần có thể lập trình và thay đổi theo yêu cầu của khách hàng.

Tuy nhiên phần cứng và phần mềm sẽ có sự liên kết chặt chẽ với nhau, người viết phần mềm nhúng cũng phải tuân theo những thiết kế về phần cứng.

Vì vậy nếu nói học lập trình nhúng chúng ta sẽ chia thành 2 phần:

  • Embedded hardware: Thiết kế phần cứng
  • Embedded software (hoặc firmware): Thiết kế chương trình cho phần cứng đó

Học lập trình nhúng ra làm cái gì?

Dạo trên các trang tuyển dụng như viettnamwork, itviec,… chúng ta sẽ thấy có nhiều công ty tuyển các kĩ sư lập trình nhúng. Công việc chủ yếu cũng sẽ xoay quanh 2 thành phần đó là:

  • Thiết kế phần cứng
  • Lập trình phần mềm
  • Làm cả 2, còn gọi là full stack embedded

Lập trình nhúng cũng chia thành nhiều cấp độ khác nhau, tuy không phải công ty nào cũng sử dụng các cấp chia này, nhưng các bạn có thể lấy để tham khảo.

  • Fresher: Mới ra trường, ít kinh nghiệm, chủ yếu vừa học vừa làm
  • Junior: Đã có kiến thức, có thể join vào dự án, code hoặc làm các thành phần trong dự án
  • Senior: Có kinh nghiệm và cái nhìn tổng thể về dự án, có thể tự làm hoặc giao việc cho các thành phần khác trong team
  • Poject Manager: Thêm kĩ năng quản lý dự án, quản lý thành viên để hoàn thiện dự án đúng thời hạn
  • Ngoài ra còn có Product Owner (PO), Bussiness Analytics (BA): Làm việc với khách hàng, phân tích yêu cầu, thiết kế sản phẩm và đưa cho team dev thực hiện
  • Tester, QC: Test và quản lý chất lượng cho sản phẩm

Ngoài ra các bạn có thể phát triển theo hướng IOT (Internet of Things), làm mảng devide IOT (thiết bị IOT) hoặc cả hệ thống thì sẽ có thêm những mức khác nữa.

Về lương thì sao?

Đây là một trong những nghành có tiềm năng phát triển vậy nên mức lương cũng tương đối cao so với các nghành khác. Mức độ cạnh tranh cũng thấp hơn, do yêu cầu trình độ cao hơn.

Với nghành này khi ra trường các bạn có thể sẽ thường có mức lương 7 – 12tr (thời điểm mình viết bài này nhé ^^), sau đó có kinh nghiệm sẽ lên 12 – trên 20tr. Ngoài ra với nhu cầu nhân lực của nước ngoài cũng lớn, nếu các bạn có thể làm cho công ty nước ngoài có thể có lượng >2k$ /tháng là điều rất bình thường.

So sánh với các nghành IT khác như lập trình web, lập trình mobile, thì ban đầu nghành nhúng sẽ có mức lương thấp hơn một chút. Tuy nhiên nếu bạn thực sự giỏi thì mức lương khủng là một điều hoàn toàn có thể đạt được.

Bạn có nên chọn học lập trình nhúng?

Để đưa ra quyết định cho bất cứ điều gì, chúng ta sẽ chia ra thành 2 phần khó khăn và cơ hội, sau đó đặt lên bàn cân của chính mình. Nếu cảm thấy phù hợp thì mới chọn.

Khó khăn

  • Khó học: Không phải ai cũng có thể học được lập trình nhúng bởi ngoài kiến thức về lập trình các bạn còn phải có kiến thức về phần cứng, phần cứng khác nhau lập trình cũng sẽ hơi khác 1 chút.
  • Thời gian đào tạo lâu: Để học được tất cả các kiến thức đó cần 1 khoảng thời gian nhất định thường là 1, 2 năm nếu chăm chỉ. Khi học nghành này các bạn quên ngay cái câu chuyện học vài ba tháng là có thể đi làm nhé
  • Tốn tiền cho phần cứng: Học cái này các bạn phải mua sắm phần cứng, phải mua cái ly thì mới có nước đổ vào được chứ. Ngoài ra các loại cảm biến và thiết bị khác cũng sẽ khá tốn tiền. Vậy nên nếu bạn quá khó khăn về kinh tế cũng đừng nên học ngành này

Cơ hội

  • Lương khá cao: Lương mình cũng đã nói rồi đó, nếu bạn làm việc tốt thì lương không phải là vấn đề bạn cần suy nghĩ
  • Khả năng khởi nghiệp cao: Không như các nghề khác chỉ là một mắt xích trong công ty, với nghề này các bạn có thể chế tạo sản phẩm phục vụ nhu cầu cần thiết và bán chúng, tạo ra nhiều giá trị cho xã hội
  • Xu thế phát triển của xã hội: Các máy móc thông minh đang dần dần khẳng định vị thế của mình, thế giới luôn luôn cần sự đổi mới, và bạn là một trong những người đi đầu trong việc đổi mới đó. Nghề của bạn sẽ không bao giờ bị outdate do thị trường không cần sử dụng nữa

Lời khuyên

Nếu các bạn thực sự có đam mê thì mới học lập trình nhúng, vì thời gian bỏ ra là khá nhiều. Mình đã chứng kiến rất nhiều người bỏ ngang khi đang học, thâm chí sau khi đi làm, để kiếm một công việc lương cao hơn.

Nhưng bạn nên hiểu, thành bại do con người, do chính bản thân bạn. Vậy nên nếu bạn cảm thấy phù hợp và có thể đi đường dài thì mới nên chọn, trên con đường này bạn vẫn phải liên tục học tập không ngừng nghỉ, đừng chọn vì lương, đừng chọn vì xu thế, hãy chọn vì bản thân mình.

Lộ trình để trở thành Embedded Hardware developer (Kĩ sư thiết kế phần cứng)

Roadmap

Lộ Trình Học Lập Trình Nhúng - IoT Cho Người Mới Bắt Đầu

Các kiến thức cần học:

- Kiến thức điện cơ bản

  • Dòng điện là gì
  • Các công thức tính toán cơ bản
  • Các định luật cơ bản

- Linh kiện học

  • Các loại linh kiện và chức năng của chung
  • Cách đọc datasheet của linh kiện
  • Các loại linh kiện thường sử dụng hiện nay

- Mạch điện

  • Các mạch điện đơn giản
  • Mạch nguồn
  • Các mạch Opamp
  • Cách mạch công xuất, cách ly

- Sử dụng các công cụ

  • Công cụ đo đạc.: đồng hồ, oscillocope
  • Công cụ hàn mạch: mỏ hàn, máy khò, thiếc,…
  • Công cụ mô phỏng: proteus…

- Thiết kế mạch in

  • Thiết kế mạch nguyên lý
  • Vẽ mạch in
  • Làm chủ 1 phần mềm: Altium, kicad…
  • Các công cụ cho việc sản xuất mạch in

- Sản xuất mạch in

  • Các phương pháp chế tạo mạch in: cảm quang, in nhiệt, cắt khắc cnc…
  • Phương pháp sx mạch: SMT, Nhúng,….

Mục tiêu

  • Thiết kế được mạch nguyên lý theo yêu cầu
  • Vẽ được mạch in đúng chất lượng
  • Đo đạc, phân tích mạch điện
  • Sản xuất mạch điên thực tế

Lộ trình để trở thành Embedded Software (firmware) developer (Kĩ sư phát triển phần mềm)

Road map

Lộ Trình Học Lập Trình Nhúng - IoT Cho Người Mới Bắt Đầu

Các kiến thức cần học:

- Ngôn ngữ lập trình

  • Ngôn ngữ máy là gì
  • Ngôn ngữ ASM
  • Ngôn ngữ C
  • Giải các bài toán lập trình đơn giản

- Cấu trúc dữ liệu và giải thuật

  • Các kiểu dữ liệu
  • Các giải thuật
  • Xử lý bài toán lập trình

- Kiến trúc vi điều khiển

  • Kiến trúc của vi xử lý và vi điều khiển
  • Bộ nhớ
  • Ngoại vi

- Kiến trúc một chương trình nhúng

  • Các lớp trong lập trình nhúng
  • Cách biên dịch chương trình nhúng
  • Kiến thức về IDE và cách sử dụng

- Lập trình điều khiển thanh ghi

  • Thực chất lập trình thanh ghi là gì?
  • Cách đọc reference manual
  • Cách tạo các file định nghĩa cho vđk
  • Cách thay đổi giá trị của thanh ghi
  • Lập trình với các ngoại vi: ADC, I2C, SPI, UART, ….
  • Làm 1 số bài toán cụ thể

- Lập trình driver

  • Cách đọc datasheet linh kiện
  • Viết thư viện cho linh kiện

- Lập trình vi điều khiển với thư viện

  • Tại sao chúng ta nên sử dụng thư viện
  • Chọn công cụ và thư viện
  • Lập trình các ứng dụng cụ thể
  • VD: Lập trình STM32 từ A tới Z với thư viện HAL

- Hệ điều hành thời gian thực RTOS

- Hệ điều hành linux

Mục tiêu

  • Lập trình nhúng cho bất kì dòng vi điều khiển nào
  • Lập trình được driver cho bất kì loại cảm biến nào
  • Hiểu về các lớp trong lập trình
  • Sử dụng thành thạo các thư viện của hãng
  • Làm được các dự án thực tế

Lời khuyên cho các bạn học lập trình nhúng

Nhìn rõ lộ trình, chia nhỏ mục tiêu

Để bắt đầu học về bất cứ điều gì các bạn hãy tạo cho mình 1 lộ trình và cố gắng đạt được những target trong lộ trình đó. Việc này là rất cần thiết vì các bạn sẽ định vị được bản thân đang ở đâu, cần đi đâu, cần học những gì để đạt được mục tiêu lớn của bản thân.

Đó cũng là một kĩ năng quan trọng trong bất cứ việc nào sau này, giống như việc mình viết bài này vậy. Mình đã tạo ra 1 lộ trình để cho bạn đọc biết mình đang ở đâu và làm gì. Hãy cố gắng tạo cho bản thân mình 1 lộ trình như vậy nhé.

>>> Nên nhớ: Thành công lớn là tập hợp của rất nhiều thành công nhỏ

Đam mê dẫn lối, kỉ luật đồng hành

Đam mê chưa bao giờ là đủ, hầu hết những người mình gặp khi hỏi đều nói mình có đam mê với nghành này. Thế nhưng không phải ai cũng thực sự thành công. Vậy bí quyết để thành công là gì?

Đó chính là sự kỉ luật, kỉ luật trong cách học tập, kỉ luật trong cách sống, kỉ luậ với bản thân mình, kỉ luật chính là sức mạnh tạo nên sự thành công. Không phải ngẫu  nhiên mà quân đội lại quan trọng kỉ luật đến vậy.

Để đạt được mục đích thì kỉ luật chính là chìa khóa, còn đam mê chỉ là ngọn hải đăng, chỉ ra nơi bạn muốn đến. Chỉ nhìn và mơ mộng mà không đi thì rốt cuộc bạn cũng sẽ chỉ dậm chân tại chỗ mà thôi.

Làm dự án, cách nhanh nhất để học

Đã bao giờ bạn nghĩ mình học để làm gì không? Đơn giản bạn chưa biết được kiến thức mình ứng dụng vào thực tế như thế nào. Cũng như việc người ta nói rằng Toán chỉ nên học hết cấp 2, vì các kiến thức như đạo hàm, tích phân, vi phân đâu có áp dụng gì trong cuộc sống.

Tương tự như vậy, nếu các bạn học lạp trình nhúng một cách hàn lâm và thiếu tính thực tiễn, bạn sẽ đi rất chậm. Tốt nhất đó là áp dụng nó vào một bài toán cụ thể.

Mình lấy ví dụ: Mẹ bạn làm nông, suốt ngày phải thức khuya dậy sớm để đi tưới nước,  bạn làm 1 hệ thống tưới hẹn giờ cho mẹ. Khi làm dự án thực tế, bạn sẽ vấp phải những khó khăn mà bạn không bao giờ được học trên trường, bạn giải quyết được những vấn đề đó chính là kiến thức, kinh nghiệm của bạn mà không ai có thể truyền đạt được, đó cũng là cách làm việc sau này của bạn tại các công ty.

>>> Nên nhớ: Học đi đôi với hành

Thể hiện bản thân mình

Mình biết những bạn học lập trình thường hướng nội, ngại thể hiện. Thế nhưng nếu bạn giỏi mà cả thế giới đều không biết bạn giỏi thì làm sao những cơ hội tốt đến với bạn được.

Cũng như việc mình viết Blog này, nó chả đem lại thu nhập gì cho bản thân, còn mất thêm tiền. Thế nhưng nó là nơi mình thể hiện bản thân, từ đó cơ hội sẽ đến dễ dàng hơn.

Nếu là được sản phẩm tốt hãy không ngừng nói về nó, nếu bạn học được điều hay, hãy chia sẻ nó tới nhiều người, hãy đi thi những cuộc thi về khoa học kĩ thuật, những hoạt động KHKT. Từ đó nhiều người biết đến bạn, cơ hội sẽ tìm đến bạn.

Kết luận

Học lập trình nhúng có thể rất gian nan, thế nhưng nếu bạn có trong mình niềm đam mê và không từ bỏ. Sớm muộn gì bạn cũng sẽ gặt hái được những thành công cụ thể. Mình viết bài này mong muốn chia sẻ cho bạn cái nhìn tổng quan về nghành và nghề, nếu cảm thấy có ích, hãy chia sẽ nó với những người xung quanh.

Tham gia Kho khóa học online Cơ điện tử - Tự động hóa

  • Truy cập vĩnh viễn vào kho khóa học gần 200 khóa về Vi điều khiển, PLC/SCADA,...
  • Các khóa học là video, sẽ kèm bài tập, tài liệu và source code cho người học.
  • Luôn được update và up các khóa học khác lên thường xuyên

>>> Xem ngay: Tại đây

Tham gia Cộng đồng Cơ điện tử Việt Nam

Copyright Disclaimer:

This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.

Tuyên bố miễn trừ bản quyền:

Trang web này không lưu trữ bất kỳ tệp nào trên máy chủ của nó. Chúng tôi chỉ lập chỉ mục và liên kết đến nội dung được cung cấp bởi các trang web khác. Vui lòng liên hệ với các nhà cung cấp nội dung để xóa nội dung bản quyền nếu có và gửi email cho chúng tôi, chúng tôi sẽ xóa các liên kết hoặc nội dung có liên quan ngay lập tức.

0/5
0 ratings
5
4
3
2
1

1 Nhận xét

  • Chèn ảnh bằng cách dán trực tiếp link ảnh | Tool upload ảnh
  • Chèn video Youtube bằng cách dán trực tiếp link video
  • Chèn code theo mẫu [pre]code[/pre]. Lưu ý: mã hóa code trước khi bình luận

    1. Quản Trị Viên
      15.4.24

      Test nè

      Trả lời Xóa
    Mới hơn Cũ hơn

    Có thể bạn sẽ thích

    Kinh Nghiệm, Trải Nghiệm, Kiến Thức
    Follow

    AdBlock Detected!

    Website này hoạt động nhờ vào sự hiển thị quảng cáo, chúng tôi đã hạn chế để tránh phiền bạn. Mong bạn TẮT tiện ích chặn quảng cáo đối với website này.