Lập trình - Điện tử

Blog Logo

🌱 Sinh viên muốn theo mảng Nhúng cần chuẩn bị những gì?

🌱 Sinh viên muốn theo mảng Nhúng cần chuẩn bị những gì?

    Thời gian từ 2022 - 2024, với sự nổi lên của xe điện thì ngành Automotive-AUTOSAR đã nổi lên mạnh mẽ, với rất nhiều job và bản tin tuyển dụng tràn ngập khắp các trang tuyển dụng và mạng xã hội (bất chấp việc kinh tế suy thoái và các mảng IT khác hầu như ngừng hoặc rất ít tuyển dụng). Song song với đó, các mảng Embedded - Network, IOT cũng khá mạnh và tuyển dụng rất nhiều.

    Chính vì vậy, rất nhiều bạn sinh viên, người đã đi làm đổ xô vào mảng nhúng, tìm kiếm các định hướng, tài liệu, khóa học, công việc, ... để chuẩn bị cho các công việc tuyển dụng mảng này. Bài viết này mình muốn đặc biệt gửi đến các bạn sinh viên đang đính hướng theo mảng lập trình Nhúng, các bạn làm việc trái ngành muốn "nhảy việc" sang nhúng cũng có thể đọc để biết mình còn thiếu gì, cần học gì, hoặc có phù hợp với mảng này không!

    👉 Những câu hỏi của sinh viên về mảng nhúng

    🔻 Em là sinh viên ngành điện tử, em cần học gì để theo mảng Nhúng?

    Có lẽ đây là câu hỏi mà mình nhận được nhiều nhất từ các bạn sinh viên (các ngành liên quan đến các hệ nhúng: điện/ điện tử/ cơ điện tử/ tự động hóa/ công nghệ thông tin), và cũng đã có rất nhiều kiểu câu trả lời trên mạng. Mình tóm tắt lại câu trả lời phổ biến và cũng là ổn nhất từ các câu trả lời của nhiều người có kinh nghiệm:

"Các bạn nên bắt đầu học nhúng từ ngôn ngữ lập trình C, học tốt ngôn ngữ lập trình C thì có thể bắt đầu học về Vi điều khiển. Các bạn nên bắt đầu học từ những Vi điều khiển đơn giản như 8051, AVR, Arduino, học về kiến trúc và làm các project đơn giản.

Sau đó, các bạn có thể tiếp cận với các dòng vi điều khiển 32-bits lõi ARM như STM32, ... học RTOS, Makefile, Linux."

    Theo mình, câu trả lời trên là tốt, nhưng nó dành cho câu hỏi "Lập trình Vi điều khiển nên bắt đầu như thế nào?" thì sẽ tốt hơn ➔ Vậy lập trình nhúng không phải làm trên Vi điều khiển à?

    ➤ Câu trả lời là đúng, nhưng đó không phải là tất cả. Vi điều khiển chỉ là "công cụ" và là trung tâm của các sản phẩm Nhúng, nhưng các bạn cần phải đặt lại câu hỏi, nhúng ở đây là nhúng cho sản phẩm gì, vi điều khiển / firmware / software đó phục vụ cho cái gì?

"Vậy, học nhúng là học về các hệ thống, các sản phẩm có base hệ thống nhúng - Ví dụ các sản phẩm điện tử, các dây chuyền công nghiệp sử dụng các vi điều khiển, PLC làm bộ phận điều khiển, chương trình trong vi điều khiển dùng để giao tiếp với các thiết bị khác như cảm biến, cơ cấu chấp hành để phục vụ cho các mục đích của từng thiết bị.

Chính vì vậy, việc học nhúng là chúng ta học về các hệ thống, sản phẩm nhúng, để biết các về cách hoạt động, kiến trúc của các sản phẩm này, chúng cần những yếu tố gì!

Vi điều khiển chỉ là một yếu tố trong đó. Những kiến thức như lập trình C, lập trình Vi điều khiển, ... thực chất chỉ là những công cụ hỗ trợ mà chúng ta sẽ học để có thể triển khai được hệ nhúng!"

    ➤ Vậy nên các bạn sinh viên, đặc biệt là những bạn học các ngành liên quan như cơ khí, điện tử, thì các bạn cần học tốt các môn học về hệ thống sản phẩm ở trên trường đại học. Việc môn học nào sẽ giúp ích trực tiếp cho định hướng của các bạn thì tùy vào ngành học và chương trình đào tạo của các trường sẽ khác nhau.

    Ví dụ hồi trước mình học ngành Tự động hóa, các môn học như Hệ thống điều khiển số, kỹ thuật đo lường, Truyền động điện, Thiết bị đo Y sinh và môi trường, ... Các môn này giúp mình có hiểu biết về hệ điều khiển với các thiết bị cảm biến, nguyên lý của cảm biến, ứng dụng của hệ nhúng trong từng mảng công nghiệp, thiết bị y tế như thế nào? Từ đó sau này khi làm việc với vi điều khiển, mình mới hiểu sâu sắc hơn về bộ ADC, bộ Timer xuất xung PWM để làm gì, hoạt động như thế nào! Lúc này chúng ta học các công cụ như là vi điều khiển và thực hành trên đó thì mức độ hiệu quả mới là cao nhất.

    Nhìn chung theo cảm nhận của cá nhân mình thì các môn học ở trường đại học rất sâu sắc, đủ mức độ tổng quát để mọi người có thể hiểu về các hệ thống công nghiệp nói chung. Còn việc đi sâu được đến đâu thì còn phụ thuộc vào mức độ tự tìm hiểu, thực hành, cũng như các công việc sau này các bạn làm.

    *** Note lại là các đồng chí hay kêu học các môn trên trường đại học không có tác dụng thì nên xem xét lại nhé, cho dù đó chỉ là các môn liên quan, thì nó cũng sẽ mở rộng góc nhìn của các bạn rất nhiều, rất hữu ích cho con đường sau này các bạn đi!

    🔻 Em là sinh viên trái ngành, em cần học gì để theo mảng Nhúng?

    Các bạn sinh viên trái ngành, hoặc đã tốt nghiệp trái ngành tức là khác các ngành kể trên, và chỉ học các môn đại cương chứ không học các môn chuyên ngành liên quan.

    Này thì khó hơn, nhưng trước khi tìm hiểu là mình cần học gì, thì mình muốn các bạn có câu hỏi này cần tự trả lời một câu hỏi khác trước:

"Tại sao các bạn lại theo ngành này? Các bạn có biết hệ thống nhúng là gì và mình sẽ làm gì nếu là một kỹ sư nhúng không? Các bạn có thực sự thích và muốn làm việc với nó không?"

    Mình muốn đưa câu hỏi này vào trước vì rất nhiều bạn trái ngành đã nhảy sang mảng Nhúng học với mong muốn chuyển ngành để có cơ hội việc làm với thu nhập tốt hơn, thậm chí là "bắt trend" công việc chứ không hề tìm hiểu về ngành này trước.

    Mình từng gặp và training cho rất nhiều bạn trái ngành chuyển hướng sang nhúng! Nhưng thậm chí các bạn còn chưa biết / hoặc không nhớ về các khái niệm cơ bản như dòng điện, điện áp, hay các linh kiện điện tử cơ bản, các bạn cũng không hề có kiến thức về các hệ thống, thiết bị nhúng phổ thông! ➔ "Rất khó"!

    Tuy nhiên cơ hội vẫn là có cho các bạn, tuy nhiên nỗ lực cần phải hơn rất nhiều so với các bạn đã có kiến thức cơ sở từ trước.

    Các bạn cần gấp rút học mới / bổ sung các kiến thức cơ sở về điện-điện tửlập trình cơ bản. Sau đó bạn có thể rút ngắn thời gian học bằng cách tiếp cận song song kiến thức chung về hệ thống cũng như các công cụ sử dụng trong hệ nhúng như lập trình C, lập trình vi điều khiển. Về phần hệ thống thì mình đề xuất các bạn có thể tìm hiểu trực tiếp về hệ thống nhúng mà các bạn muốn làm việc - Ví dụ muốn làm về Automotive thì tìm hiểu chung về hệ thống này trong Ô tô, tìm hiểu về chuẩn Autosar, làm về IOT thì học về kiến trúc IOT, các kiến trúc mạng không dây, ... 

    🔻 Em cần làm gì để làm đẹp CV trước khi ứng tuyển công việc?

    Để trả lời câu hỏi này chúng ta cần biết, như thế nào là đẹp CV? Ở đây mình đề cập đến level Fresher với mảng nhúng. Từ góc nhìn từ một người phỏng vấn Fresher cho FPT Software, mình có một vài điểm lưu ý khi các bạn sinh viên chuẩn bị profile (CV) trước khi apply mảng này:

  • Tiếng anh: Level Fresher thì chưa yêu cầu cao về mặt Technical, vì vậy tiếng anh là điểm sẽ được đánh giá đầu tiên. Hiện này, hầu hết các job Embedded ở các công ty lớn đều yêu cầu trình độ tiếng anh ít nhất là B1 (cả việc đọc tài liệu và giao tiếp).
  • Lập trình C/C++: Như mình nói ở trên thì ngôn ngữ lập trình cũng là một công cụ, nhưng nó cần thiết. Nhà tuyển dụng sẽ đánh giá một chút về kỹ năng coding, xử lý vấn đề khi code, đôi khi là các cấu trúc dữ liệu - thuật toán. Thường thì một số công ty sẽ có cả bài test coding, nên gần như kỹ năng lập trình C/C++ là bắt buộc các bạn phải nắm vững.
  • Lập trình vi điều khiển: Vi điều khiển cũng là một công cụ quan trọng trong lập trình nhúng, và rõ ràng level Fresher yêu cầu cần nắm cơ bản về vi điều khiển, đã từng lập trình một dòng vi điều khiển nào đó. Có những job còn yêu cầu cao hơn với vi điều khiển lõi ARM và làm việc nhiều hơn với các ngoại vi, ngắt, ...
  • Các kiến thức cơ sở (về điện tử, hoặc thuật toán): Job làm nhiều về phần cứng và low-layer sẽ yêu cầu kiến thức điện tử cơ bản, trong khi đó các job làm ở mid hoặc high layer sẽ yêu cầu cấu trúc dữ liệu - giải thuật.

    🔻 Anh nghĩ là em nên apply vào công ty nào?

    Đây là câu hỏi khá khó trả lời, vì có rất - rất nhiều công ty về mảng Nhúng, và mình không muốn bạn bỏ lỡ cơ hội chỉ vì biết đến có một vài công ty. Theo góc nhìn cá nhân của mình, thì các bạn mới ra trường, nên tham gia vào các công tý lớn - vì process công việc rõ ràng, nhiều người kinh nghiệm dẫn dắt, công việc không quá nhiều nên sẽ có nhiều thời gian để học hỏi hơn, thu nhập cũng ổn.

    *** Ở đây mình không có ý gì với những công ty quy mô nhỏ, các công ty khởi nghiệp, ... Chỉ là dựa trên trải nghiệm của mình đã làm khá nhiều công ty (cả nhỏ và lớn, khởi nghiệp hoặc có tập đoàn vững mạnh) thì mình có thấy các công ty lớn sẽ dễ để các bạn mới tiếp cận hơn. Tất nhiên các bạn sinh viên nên thoải mái trải nghiệm nhiều môi trường ngay từ còn trên ghế nhà trường, để biết môi trường nào sẽ phù hợp với bản thân!

    Ngoài việc môi trường làm việc thì các bạn cần để ý thêm là công ty mình apply vào đang làm gì:

  • Công ty đang làm sản phẩm của riêng họ (ví dụ như Vin làm ô tô, Viettel làm các thiết bị quân sự)
  • Công ty làm sản phẩm cho nước ngoài (LG làm đồ gia dụng cho Hàn Quốc, Samsung làm đồ gia dụng, điện thoại máy tính cho Hàn Quốc)
  • Công ty làm Outsource (nhận việc từ nơi khác về làm: Fsoft, CMC, Rikkeisoft, ...)
  • Một số công ty thì kết hợp nhiều mảng kinh doanh trên.
    Cái này thì xem hướng phát triển và mong muốn công việc của bạn, chứ mình cũng không có đánh giá là hướng nào sẽ giúp ích cho bạn nhiều hơn. Tổng quan thì làm outsource thì dự án sẽ thay đổi nhiều, sẽ rèn cho bạn khả năng thích ứng, học một kiến thức mới khá nhanh, trong khi làm sản phẩm thì sẽ cho bạn cơ hội nhìn một hệ thống sản phẩm một cách tổng quát hơn.

    🔻 Em học kém toán / lý thì có học được Nhúng không?

    Câu hỏi này cũng có khá nhiều bạn có gửi đến mình, từ góc nhìn đào tạo, câu trả lời của mình là "có thể, nhưng rất khó". Embedded là mảng có sự kết hợp giữa lập trình (tư duy logic, không phải nhiều toán nhưng nó liên quan) và điện tử (xuất phát từ chính kiến thức vật lý). Vì vậy, nếu bạn không giỏi cái "gốc" (Toán/lý) thì bạn có thể học cái "ngọn" (lập trình/điện tử), nhưng việc học sẽ diễn ra khá khó khăn và không đi được xa.

    Ví dụ như bạn học lập trình C, ghi vào thanh ghi để cho vi điều khiển chạy, biết đọc ADC từ tín hiệu cảm biến, nhưng bạn không biết cái giá trị đọc về đó tương ứng với cái gì, làm sao chuyển đổi ngược lại !!

    Từ một góc nhìn khác, nếu bạn không giỏi về toán / lý thì làm sao và tại sao bạn lại chọn thi đại học khối A? và các công việc liên quan đến kỹ thuật liệu có hợp với bạn hay không?

    ➔ Nếu bạn trả lời là mình hợp với các công việc kỹ thuật, thì cứ tiếp tục học và triển khai học thôi. Nhưng việc cố gắng sẽ phải gấp nhiều lần người khác, vừa học phần "ngọn" vừa trau dồi phần "gốc", để cho kiến thức vững vàng hơn!

    👉 Vậy tóm lại tôi cần học gì để theo mảng Nhúng?

    Tổng kết lại từ những câu hỏi ở trên, các bạn sinh viên rõ ràng cần chuẩn bị kỹ nếu muốn theo lập trình Nhúng, ngay từ trên ghế nhà trường.

  • Đó là tiếng anh - giao tiếp cơ bản, khả năng đọc hiểu tài liệu kỹ thuật.
  • Đó là kiến thức "gốc rễ" - Kiến thức về vật lý, điện tử, các hệ thống nhúng, kiến trúc của Vi điều khiển, kiến thức về thuật toán, hệ điều hành, ...
  • Đó là các công cụ để thực hành cải thiện kỹ năng - Kỹ thuật lập trình C/C++, lập trình Vi điều khiển, ...
    Tùy thuộc vào mảng các bạn muốn đi sâu thì sau đó có thể học thêm các kiến thức nâng cao khác!

>>>= Follow ngay =<<<

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

Chúc các bạn học tập tốt 😊

                 

Đăng nhận xét

0 Nhận xét