這是我在知乎2022年寫(xiě)的一篇原創(chuàng)回答,最近看到重新翻出思考下:https://www.zhihu.com/question/429050536/answer/1574860404
C語(yǔ)言以其易于入門(mén)的特性著稱,它允許開(kāi)發(fā)者深入底層系統(tǒng),直接進(jìn)行內(nèi)存操作,這一能力的核心在于其強(qiáng)大的指針機(jī)制,使得C語(yǔ)言在實(shí)現(xiàn)高效程序方面表現(xiàn)出色。上述這些特點(diǎn)自然就是嵌入式行業(yè)的首選語(yǔ)言,我記得大一開(kāi)始學(xué)習(xí)51的時(shí)候就有位大佬跟我說(shuō)單片機(jī)開(kāi)發(fā)80%的難度在于C語(yǔ)言。
既然C語(yǔ)言這么重要,那需要達(dá)到什么水平呢?其實(shí)這種水平分幾種,一種就是只針對(duì)語(yǔ)言本身的,這個(gè)其實(shí)你可以去牛客答一答華為的C語(yǔ)言面試題,如果基本都會(huì),那語(yǔ)言層面你就沒(méi)問(wèn)題了。當(dāng)然我也見(jiàn)過(guò)很多面試題答的很溜,實(shí)際上手不行的情況,這就是另一種考量,看實(shí)際的完成作品的數(shù)量和質(zhì)量(這里的完成可以借鑒,但是必須自己的思考,否則后期很難提高)。
因?yàn)镃語(yǔ)言是可以從事非常多不同類(lèi)型的工作開(kāi)發(fā)的,但就單片機(jī)開(kāi)發(fā)而言,如果可以獨(dú)立完成智能小車(chē)之類(lèi)的產(chǎn)品,C語(yǔ)言其實(shí)就算入門(mén)了,主要涉及的技術(shù)就是模數(shù)電采集抓換,對(duì)IO的高效利用,代碼量300左右可以獨(dú)立完成平衡智能小車(chē)的設(shè)計(jì),功能可以是自動(dòng)尋跡,自動(dòng)避障,遙控控制,原地轉(zhuǎn)彎,藍(lán)牙和WiFi接口的使用,代碼量1000行左右,可以算大學(xué)就沒(méi)白學(xué)吧。可以設(shè)計(jì)實(shí)現(xiàn)四軸無(wú)人機(jī)系統(tǒng),完成單點(diǎn)控制,地圖巡航,自動(dòng)避障(可以參考大學(xué)生電子設(shè)計(jì)大賽作品),因?yàn)檫@時(shí)候使用了很多庫(kù)函數(shù),單純的設(shè)計(jì)代碼量6000行左右,基本畢業(yè)找工作是沒(méi)什么問(wèn)題了。
當(dāng)然我自己本科也就達(dá)到這樣的狀態(tài),后邊C語(yǔ)言的提高其實(shí)更多的要靠工作的難度來(lái)提高,涉及非常多的困難,為了解決這些困難,順帶提高了能力,這也是去大公司好團(tuán)隊(duì)的意義所在,不然沒(méi)有難度的工作只會(huì)浪費(fèi)你的時(shí)間,你的收入自然也就上不去(小公司什么都做,持續(xù)內(nèi)耗并不是難度哈,難度的定義是最終一定會(huì)有結(jié)論,但是小團(tuán)隊(duì)往往沒(méi)有這樣的執(zhí)行力)。
當(dāng)然上述說(shuō)的C語(yǔ)言只是針對(duì)單片機(jī)開(kāi)發(fā)而言,如果想達(dá)到更高的層次我個(gè)人建議最好伴隨其他的基礎(chǔ)學(xué)習(xí),技術(shù)是綜合的體現(xiàn),不簡(jiǎn)單看一門(mén)技能,針對(duì)嵌入式開(kāi)發(fā)的話,模數(shù)電和電路設(shè)計(jì)也是要學(xué)習(xí)的,因?yàn)閷?shí)際的產(chǎn)品設(shè)計(jì)中最多的還是和各種信號(hào)打交道,不熟悉硬件是很吃虧的,但是要自己有所側(cè)重,如果不準(zhǔn)備走硬件工程師的路,那還是專(zhuān)注于軟件吧,這部分可以看我之前寫(xiě)的學(xué)習(xí)之路那篇文章總之,C語(yǔ)言是一門(mén)入門(mén)簡(jiǎn)單,過(guò)程很精彩,精通很難的語(yǔ)言,對(duì)于嵌入式更是如此,要多看好的代碼好的著作,多研究開(kāi)發(fā)項(xiàng)目,那隨著經(jīng)驗(yàn)的增加水平自然也就越變?cè)綇?qiáng)了
未完待續(xù),持續(xù)更新!以防后邊找不到可以點(diǎn)贊收藏下!