作者 | strongerHuang
不知道什么時候開始,我有一種莫名的感覺,突然有大批人跑來學(xué)單片機(jī)。為啥會有這種感覺,因為最近被問的問題,很多都是些基礎(chǔ)的問題,比如今天的這個:單片機(jī)學(xué)到什么程度可以找工作?你說這是問題嗎?它確實是一個問題,但不知道怎么回答。學(xué)會用單片機(jī)點(diǎn)燈,也許都能找到工作。
掌握單片機(jī)大部分外設(shè)資源、RTOS、各種協(xié)議棧,可能三個月都還找不到工作。所以,學(xué)到什么程度,能學(xué)到哪里,就看你能不能堅持,有沒有耐心。能不能找到工作,就看你的要求(比如薪資待遇、加班等)高不高。
單片機(jī)(MCU)開發(fā)是嵌入式領(lǐng)域的一個重要分支,就業(yè)門檻相對Linux要低。單片機(jī)學(xué)到什么程度可以找工作,我沒法明確回答你,主要看基礎(chǔ)技能熟練度和項目實戰(zhàn)能力,下面分享一些針對初學(xué)者的學(xué)習(xí)建議。
一、必備核心技能
1.單片機(jī)基礎(chǔ)能力熟練C語言:能獨(dú)立完成裸機(jī)編程,掌握指針、結(jié)構(gòu)體、內(nèi)存管理等,熟悉中斷、串口、定時器、ADC/DAC等外設(shè)配置。掌握常用MCU:至少熟練一種主流單片機(jī)(如STM32、51單片機(jī)、ESP32),熟悉其開發(fā)工具(Keil、IAR)。掌握外設(shè)驅(qū)動:掌握單片機(jī)常見外設(shè)(如UART、SPI、I2C、PWM等)的底層驅(qū)動,同時,能理解數(shù)據(jù)手冊中的寄存器配置邏輯。
2.硬件基礎(chǔ)能力看懂原理圖:能根據(jù)芯片手冊和原理圖配置引腳功能,排查硬件接線問題?;A(chǔ)電路設(shè)計:了解電阻、電容、二極管、MCU等元件的選型,能設(shè)計簡單的外圍電路(如按鍵消抖、LED驅(qū)動)。熟悉調(diào)試工具的使用:熟練使用萬用表、示波器、邏輯分析儀定位硬件故障或通信異常。
3.通信協(xié)議與接口掌握基礎(chǔ)協(xié)議:UART、SPI、I2C的時序及代碼實現(xiàn)。進(jìn)階協(xié)議:CAN、Modbus、RS485等工業(yè)常用協(xié)議,或MQTT、HTTP等物聯(lián)網(wǎng)協(xié)議。
4.掌握RTOS熟悉RTOS基礎(chǔ):至少熟悉一種RTOS(UCOS、FreeRTOS或RT-Thread等)基礎(chǔ)概念。移植RTOS:能獨(dú)立移植一款RTOS,熟悉底層接口,并成功在單片機(jī)上運(yùn)行多個任務(wù)。掌握RTOS底層機(jī)制和原理:熟悉RTOS任務(wù)調(diào)度、消息隊列、信號量等機(jī)制。
5.項目經(jīng)驗獨(dú)立完成2-3個完整項目:例如:智能家居控制(溫濕度傳感器+WiFi模塊+云平臺)、電機(jī)控制(PID算法+PWM驅(qū)動直流/步進(jìn)電機(jī))、數(shù)據(jù)采集系統(tǒng)(ADC采集+OLED/LCD顯示+SD卡存儲)等。項目需求能力:需求分析、代碼架構(gòu)設(shè)計、硬件調(diào)試、問題解決全流程。以上是針對初學(xué)者的學(xué)習(xí)建議或指導(dǎo),前4項算是基礎(chǔ),后面項目經(jīng)驗建議還是自己獨(dú)立完成一個或多個。
二、該如何學(xué)習(xí)?
很多同學(xué)有這樣的誤區(qū),我要學(xué)完xxx技術(shù),才去找工作。剛畢業(yè)的應(yīng)屆畢業(yè)生,覺得工作難找,是自己在學(xué)校沒認(rèn)真學(xué)習(xí),然后就想花三、五個月認(rèn)真惡補(bǔ)一下大學(xué)沒學(xué)的知識,然后再找工作。
我可能明確告訴你,不到一個月你都會放棄。為啥?你大學(xué)四年都沒認(rèn)真,你想通過三、五個月補(bǔ)回來,現(xiàn)實嗎?
這種情況,不只是應(yīng)屆畢業(yè)生,有些工作兩三年的同學(xué),也會有這種想法:我裸辭,認(rèn)真學(xué)習(xí)一段時間,再去找個高薪的工作······
我的建議是:一邊工作,一邊學(xué)習(xí),在工作中提升技能,在工作之余,惡補(bǔ)落下的知識,這樣才能做到工作學(xué)習(xí)兩不誤。我們基礎(chǔ)較差,就要多花點(diǎn)時間和精力,別人工作之余玩的時間,你用來彌補(bǔ)基礎(chǔ),才能逐漸成長,才能慢慢超越別人。我們看到的那些牛人、大老板,你看到有哪個不勤奮嗎?