Networks Business Online Việt Nam & International VH2

Lộ trình học lập trình nhúng từ A tới Z

Đăng ngày 06 November, 2022 bởi admin
Lập trình nhúng là một ngành có thời cơ nhưng cũng yên cầu nhiều kiến thức và kỹ năng và kĩ năng. Trong bài này mình sẽ lý giải một cách chi tiết cụ thể nhất về ngành này, sau khi đọc những bạn hoàn toàn có thể đưa ra quyết định hành động là có nên theo đuổi ngành này hay không nhé .

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

Lập trình nhúng ( embedded programing ) là việc làm của một embedded developer ( lập trình viên nhúng ) có trách nhiệm viết những ứng dụng để nạp vào vi điều khiển và tinh chỉnh hoặc vi giải quyết và xử lý, để chúng điều khiển và tinh chỉnh những thành phần trong mạch điện hoạt động giải trí theo đúng nhu yếu .
Các mạch điện hoàn toà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.

học lập trình nhúng

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

Lấy một ví dụ cho đơn thuần. Bạn có 1 cái ly, nước và 1 gói trà. Cái ly là cố định và thắt chặt không hề biến hóa, nhưng nước và gói trà hoàn toàn có thể đổi khác. Khi tất cả chúng ta biến hóa 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 mạng lưới hệ thống có sự góp mặt của phần cứng ( cái ly ) và ứng dụng ( nước trà ) là mạng lưới 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à ứng dụng sẽ có sự link ngặt nghèo với nhau, người viết ứng dụng nhúng cũng phải tuân theo những phong cách thiết kế về phần cứng .

tea cup

Vì vậy nếu nói học lập trình nhúng tất cả 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 những trang tuyển dụng như viettnamwork, itviec, … tất cả chúng ta sẽ thấy có nhiều công ty tuyển những kĩ sư lập trình nhúng. Công việc hầu hết 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 Lever khác nhau, tuy không phải công ty nào cũng sử dụng những cấp chia này, nhưng những bạn hoàn toàn có thể lấy để tìm hiểu thêm .

  • 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 những bạn hoàn toàn có thể tăng trưởng theo hướng IOT ( Internet of Things ), làm mảng devide IOT ( thiết bị IOT ) hoặc cả mạng lưới hệ thống thì sẽ có thêm những mức khác nữa. Mình sẽ nói chi tiết cụ thể trong bài : Lộ trình học lập trình IOT từ A tới Z

Về lương thì sao?

Đây là một trong những ngành có tiềm năng tăng trưởng vậy nên mức lương cũng tương đối cao so với những ngành khác. Mức độ cạnh tranh đối đầu cũng thấp hơn, do nhu yếu trình độ cao hơn .
Với ngành này khi ra trường những bạn hoàn toàn có thể sẽ thường có mức lương 7 – 12 tr ( thời gian mình viết bài này nhé ^ ^ ), sau đó có kinh nghiệm tay nghề sẽ lên 12 – trên 20 tr. Ngoài ra với nhu yếu nhân lực của quốc tế cũng lớn, nếu những bạn hoàn toàn có thể làm cho công ty quốc tế hoàn toàn có thể có lượng > 2 k USD / tháng là điều rất thông thường .
So sánh với những ngành IT khác như lập trình web, lập trình mobile, thì khởi đầu ngành nhúng sẽ có mức lương thấp hơn một chút í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 trọn vẹn 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 hành động cho bất kể điều gì, tất cả chúng ta sẽ chia ra thành 2 phần khó khăn vất vả và thời cơ, sau đó đặt lên bàn cân của chính mình. Nếu cảm thấy tương thích 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 của mình

Nếu những bạn thực sự có đam mê thì mới học lập trình nhúng, vì thời hạn bỏ ra là khá nhiều. Mình đã tận mắt 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 việc làm 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 tương thích và hoàn toàn 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ư phong cách thiết kế phần cứng )

Roadmap

Lộ trình trở thành Embedded hardware developer

Các kiến thức và kỹ năng 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ư tăng trưởng ứng dụng )

Road map

Lộ trình trở thành Embedded software develope (1)

Các kỹ năng và 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 những bạn học lập trình nhúng

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

Để mở màn học về bất kỳ điều gì những bạn hãy tạo cho mình 1 lộ trình và nỗ lực đạt được những target trong lộ trình đó. Việc này là rất thiết yếu vì những bạn sẽ xác định được bản thân đang ở đâu, cần đi đâu, cần học những gì để đạt được tiềm năng lớn của bản thân .
Đó cũng là một kĩ năng quan trọng trong bất kỳ 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 nỗ lực 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 khi nào 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 ngành này. Thế nhưng không phải ai cũng thực sự thành công xuất sắc. Vậy tuyệt kỹ để thành công xuất sắc 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 xuất sắc. 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 tiêu 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

Đã khi nào bạn nghĩ mình học để làm gì không ? Đơn giản bạn chưa biết được kỹ năng và kiến thức mình ứng dụng vào thực tiễn 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ì những kỹ năng và kiến thức như đạo hàm, tích phân, vi phân đâu có vận dụng gì trong đời sống .
Tương tự như vậy, nếu những 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à vận dụng nó vào một bài toán đơn cử .
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 mạng lưới hệ thống tưới hẹn giờ cho mẹ. Khi làm dự án Bất Động Sản trong thực tiễn, bạn sẽ vấp phải những khó khăn vất vả mà bạn không khi nào được học trên trường, bạn xử lý được những yếu tố đó chính là kiến thức và kỹ năng, kinh nghiệm tay nghề của bạn mà không ai hoàn toàn có thể truyền đạt được, đó cũng là cách thao tác sau này của bạn tại những công ty .

Nên nhớ : Học song song 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 về trong, ngại bộc lộ. Thế nhưng nếu bạn giỏi mà cả quốc tế đều không biết bạn giỏi thì làm thế nào những thời cơ 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 bộc lộ bản thân, từ đó thời cơ sẽ đến thuận tiện hơn .
Nếu là được mẫu 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 san 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 giải trí KHKT. Từ đó nhiều người biết đến bạn, thời cơ sẽ tìm đến bạn .

Kết

Học lập trình nhúng hoàn toàn có thể rất nguy hiểm, 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 xuất sắc đơn cử. Mình viết bài này mong ước san sẻ cho bạn cái nhìn tổng quan về ngành và nghề, nếu cảm thấy có ích, hãy chia sẽ nó với những người xung quanh .
Đừng quên gia nhập Hội Anh Em Nghiện Lập trình để giao lưu và học hỏi nhé ! ! !

5/5 – ( 8 bầu chọn )

Source: https://vh2.com.vn
Category : Tin Học