嵌入式工程師的自我修養(yǎng)?
來(lái)源:科巖成果前言
公眾號(hào)的第一篇文章,算是一個(gè)開(kāi)頭,這篇文章總結(jié)了我做嵌入式工程師這幾年的一些經(jīng)驗(yàn),分享給剛?cè)胄谢驕?zhǔn)備入行的新手們!
首先我想說(shuō)的是不問(wèn)出身,做嵌入式的同學(xué),基本都是計(jì)算機(jī)科學(xué)、電子信息、通信類(lèi)專(zhuān)業(yè)。剛畢業(yè)的本科生,就學(xué)到的知識(shí),名校與非名校在起點(diǎn)上相差不多,大家在校園里學(xué)的都是那幾科,看的書(shū)也都差不多,如果不是很小就接觸計(jì)算機(jī)寫(xiě)代碼,那畢業(yè)時(shí)的代碼量也都差不多。
而對(duì)于工程作業(yè)來(lái)說(shuō),對(duì)學(xué)術(shù)能力的要求沒(méi)那么高,只要有一定的學(xué)習(xí)能力,技術(shù)是很容易掌握的,大可不必對(duì)自己的學(xué)歷不夠自信。
對(duì)于嵌入式軟件工程師,一般是分成兩類(lèi),嵌入式Linux、嵌入式單片機(jī),我這里只講單片機(jī)的部分,Linux的部分有機(jī)會(huì)再聊。
一. 認(rèn)知的四個(gè)階段
1. 不知不知
在剛工作的第一年,基本是一個(gè)學(xué)習(xí)的過(guò)程,很難有有效的產(chǎn)出,這個(gè)階段是完成從一個(gè)生澀畢業(yè)生到企業(yè)員工的身份轉(zhuǎn)換,如果校園里接觸過(guò)比較多的代碼,看過(guò)類(lèi)似Linux源碼那種級(jí)別的代碼,對(duì)你快速學(xué)習(xí)還是很有用的。這時(shí)你寫(xiě)的代碼,也能正確的點(diǎn)亮一個(gè)led燈,能實(shí)現(xiàn)老板的需求,可日后來(lái)看,肯定是慘不忍睹的,說(shuō)難聽(tīng)點(diǎn),就是“像屎一樣”。但這時(shí)你還不知道這些,你甚至“不知道自己不知道”,你覺(jué)得自己表現(xiàn)的還不錯(cuò),可能偶爾會(huì)冒出“這個(gè)代碼這樣寫(xiě)會(huì)不會(huì)更好”之類(lèi)的念頭。
每個(gè)人都可能冒出這樣的念頭,不同的是,有的人念頭一過(guò)就去干別的了,刷刷劇玩玩手機(jī)也是一天;有些人,沒(méi)有讓念頭溜走,順著念頭走了下去,去找“這個(gè)代碼換一種寫(xiě)法會(huì)不會(huì)更好”的答案。
2. 知道不知
找答案無(wú)非3個(gè)方式:?jiǎn)柶渌耍òㄋ阉饕妫?、看?shū)、看源碼。你當(dāng)然可以問(wèn)其他人,但你不能總問(wèn)其他人,而且其他人不一定什么都能解決。
你開(kāi)始看源碼,你會(huì)發(fā)現(xiàn),源碼看不懂,隨便打開(kāi)個(gè)開(kāi)源項(xiàng)目,一行都看不懂。
你一定會(huì)嚇到,你想找本書(shū)來(lái)壓壓驚,隨便翻一翻,竟然發(fā)現(xiàn)自己“這個(gè)也不知道”,“那個(gè)也不知道”。
這也是好事,至少你已經(jīng)“知道自己不知道”了。
問(wèn)人是最快最具體的;看源碼不能一蹴而就,大師的代碼我等凡人剛開(kāi)始都是看不懂的,沒(méi)關(guān)系慢慢來(lái),多看幾遍;看書(shū)是最系統(tǒng)的,如果你能帶著問(wèn)題去看書(shū)中的具體章節(jié)當(dāng)然就更好啦。
現(xiàn)在,你有了學(xué)習(xí)的動(dòng)力,你要做的,是開(kāi)始填補(bǔ)知識(shí)空白,還等什么,快開(kāi)始吧!
3. 知道己知
上面列舉的三種方式,最系統(tǒng)也最有效的,當(dāng)屬看書(shū)了,我這里推薦幾本書(shū)。對(duì)于語(yǔ)言層面,當(dāng)然最多用的是C語(yǔ)言,學(xué)校學(xué)的教材比如譚本《C程序設(shè)計(jì)》只介紹語(yǔ)法不說(shuō),還有很多誤導(dǎo),堅(jiān)決不要看了。我推薦你讀K