You are on page 1of 4

Bạn nên trang bị những kiến thức sau

1. Hardware:
• - Hiểu và sử dụng ngắt, timer,biết được về các mức ưu tiên của ngắt.
• - Sử dụng được tốt các communication protocol như I2C, SPI, UART.
• - Nắm được tổ chức bộ nhớ trong chương trình. Các kiểu biến global, local,
static, volatile…lưu ở đâu, sử dụng như thế nào.
2. C:
• - Nắm được và sử dụng thành thạo con trỏ. (kích thước, cách sử dụng)
• - Thành thạo các thao tác với bit (And OR Xor Not), sử dụng thanh ghi trong các
dòng chip.
• - Tham biến tham trị.
• - Giải thích quá trình build 1 project (pre-process, compile, linking).
• - Macro-like function là gì, viết 1 ví dụ sử dụng macro-like function. - Nắm được
quá trình debug/sử dụng debug của một số compiler.
3. Tiếng Anh:
Đọc UM bằng tiếng Anh thành thạo, nắm được keyword và có thể giao tiếp bằng
Tiếng Anh để họp với khách hàng.
+ Hello bạn. Đầu tiên bạn cần phân biệt rõ. Ở Fsoft có hai chương trình là Fresher
Embedded/C và Fresher C/C++. Ở chương trình Embedded/ C thì bạn sẽ được đào
tạo về C, Vi điều khiển. Đầu ra công việc sẽ làm việc với firmware. Còn Fresher
C/C++ sẽ được tào sâu về C++, OOP, Qt framework. Đầu ra công việc sẽ là làm
việc với các hệ thống giải trí trong oto. Cả hai chỉ có điểm chung là đều nằm trong
mảng Automative của Fsoft.
+ Về kinh nghiệm phỏng vấn thì mình xin chia sẻ chút kinh nghiệm của bản thân
về việc phỏng vấn Embedded/C. Bạn sẽ được làm bài test tiếng anh thông qua app.
Sau đó đến vòng phỏng vấn và làm test chuyên môn với các senior. Kiến thức
trọng yếu phỏng vấn và bài test sẽ là về ngôn ngữ C.Bạn ôn kĩ về những kiến thức
sau mà mình thẩy rất hay được hỏi.
+ Quá trình compile code trong C. Nắm chắc từng giai đoạn một.
+ Kích thước các kiểu dữ liệu
+ Các vùng nhớ trong C. Biến được khởi tạo sẽ nằm ở vùng nào ( static thì ở đâu,
extern ở đâu, mảng khởi tạo nằm ở đâu......)
+ Cách sử dụng hàm, truyền tham số
+ Phân biệt tham chiếu, tham trị
+ Con trỏ
+ Cấp phát bộ nhớ động
+ So sánh Mảng và linked list, so sánh mảng và Struct
+ Thuật toán sắp xếp nổi bọt
Còn kiến thức hỏi về VĐK thì cũng khá căn bản, nêu lý thuyết một số khái niệm
như Timer, Ngắt, ADC, UART...( Đọc kĩ về Ngắt chút nha).
Đôi khi các anh/ chị cũng sẽ bảo bạn kể về các project đã làm, và bảo bạn trình bày
lại những gì bạn đã làm và kiến thức đã áp dụng.
Cuối cùng có một điều cần nhớ : Cái gì biết thì trả lời, không thì cứ bảo là "Em
chưa biết kiến thức này", đừng cố chém gió.
Chúc bạn phỏng vấn thật tốt.
Bạn nên trang bị những kiến thức sau
1. Hardware:
• - Hiểu và sử dụng ngắt, timer,biết được về các mức ưu tiên của ngắt.
• - Sử dụng được tốt các communication protocol như I2C, SPI, UART.
• - Nắm được tổ chức bộ nhớ trong chương trình. Các kiểu biến global, local,
static, volatile…lưu ở đâu, sử dụng như thế nào.
2. C:
• - Nắm được và sử dụng thành thạo con trỏ. (kích thước, cách sử dụng)
• - Thành thạo các thao tác với bit (And OR Xor Not), sử dụng thanh ghi trong các
dòng chip.
• - Tham biến tham trị.
• - Giải thích quá trình build 1 project (pre-process, compile, linking).
• - Macro-like function là gì, viết 1 ví dụ sử dụng macro-like function. - Nắm được
quá trình debug/sử dụng debug của một số compiler.
3. Tiếng Anh:
Đọc UM bằng tiếng Anh thành thạo, nắm được keyword và có thể giao tiếp bằng
Tiếng Anh để họp với khách hàng.
Mục 1 thì để bạn hiểu được quá trình compiler hoạt động để build source code của
bạn thành file chạy sẽ trải qua những bước nào (cái này sẽ cần thiết cho sau này
bạn viết make, build kết hợp cả c và cpp, …)
Mục 2: thì để bạn hiểu hơn về marco function (bạn phải nắm được khi nào dùng
nó? Nó khác gì với function thường?)
Thêm: bạn có thể tìm hiểu so sánh cả marco function với inline funtion.
Hello bạn, mình cũng theo đuổi lĩnh vực Embedded Software như bạn. Mình thấy
để tự học được thì bạn cần có tiếng anh ổn chút nha, tại các tài liệu và các kênh
youtube hay đa số đều là tiếng anh cả ấy.
+ Linh hồn của embedded Software thì là ngôn ngữ C rồi. Bạn cần học thật chắc C.
Trước mình tự học qua hai nguồn, một kênh youtube và một blog tiếng anh.
- Youtube: https://www.youtube.com/watch?v=4OGMB4Fhh50...
- Blog: https://www.geeksforgeeks.org/c-programming-language/
+ Sau khi đã chắc ngôn ngữ C: bạn có thể mua các Kit Vi Điều khiển ( trước mình
bắt đầu bằng kit stm32f411 discovery) về để làm quen và thực hiện các project
nhỏ. Các project này trên mạng hầu như đều có, bạn cứ xem rồi làm theo để hiểu
trước. Sau đó kết hợp các kiến thức đã biết để làm các projects của riêng mình .Ở
VĐK thì cần nắm vững các kiến thức như Input/Output, Delay, Timer, Interupt,
Clock, UART, SPI, I2C, PWM…sau đó thì học thêm các kiến thức nâng cao hơn
như Multi-Thread, Sleep Mode, OTA, Realtime-OS.
- Vài blog chia sẻ kiến thức về VĐK STM32 mà mình thấy khá hay:
https://tapit.vn/.../vi.../vi-dieu-khien-loi-arm/page/10/
https://deviot.vn/.../huong-dan-tai-va-cai-dat-cubemx...
Nằm được các kiến thức như trên là mình thấy bạn quá dư để đi phỏng vấn làm
embedded dev ở bất cứ chỗ nào rồi. Mình đã từng phỏng vấn ở Fsoft và Bosch. Họ
cũng chỉ yêu cầu thành thạo C và nêu ra một số project đã làm.
Quá trình tự học Embedded mình thấy tương đối vất vả và cần sự kiên trì. Còn một
phương án nữa là nếu có khả năng tài chính, mình nghĩ bạn có thể đăng ký một
khóa học ở các trung tâm. Có các mentor dẫn đường thì đi lúc nào cũng sẽ nhanh
hơn mà.

You might also like