C語(yǔ)言、 51單片機(jī)、STM32等學(xué)習(xí)階段總結(jié)
學(xué)習(xí)階段總結(jié)
? ? ? 這幾天思考了很多東西,感覺(jué)很有必要總結(jié)一下學(xué)習(xí)的東西了。從起初進(jìn)步大學(xué)到步入社會(huì)已經(jīng)一年有余,在大學(xué)感覺(jué)學(xué)也學(xué)了,玩了玩了。所以不存在什么很大的遺憾。之前零零散散的也學(xué)了不少東西了,感覺(jué)有必要對(duì)自己做一個(gè)總結(jié)了。
? ? ? C語(yǔ)言:從大一下學(xué)期就開(kāi)始學(xué)習(xí)C語(yǔ)言,只不過(guò)上課的時(shí)候基本上都不能專心上課。對(duì)于C語(yǔ)言的學(xué)習(xí)主要還是在課下的時(shí)候看書看視頻自學(xué)的,郝斌老師的C語(yǔ)言視頻算是指導(dǎo)我入門的視頻,那時(shí)候看視頻還是很有激情的。譚浩強(qiáng)的《C語(yǔ)言程序設(shè)計(jì)》算是一本基礎(chǔ)的語(yǔ)法教材,看過(guò)也了解了基礎(chǔ)的東西(包括標(biāo)識(shí)符、各種表達(dá)式、數(shù)組、函數(shù)、指針、文件等);后來(lái)看了《c語(yǔ)言深度剖析》這本書將的真的是比較好,含金量是真的高;再后來(lái)又看了《C和指針》《C陷阱》《C專家》。強(qiáng)烈推薦多看幾遍C語(yǔ)言深度剖析,是真的寫得好。推薦練手項(xiàng)目:《電子詞典》《萬(wàn)年歷》《xx管理系統(tǒng)》等
? ? 51單片機(jī):說(shuō)到51單片機(jī),這也算是我學(xué)習(xí)C語(yǔ)言的一個(gè)動(dòng)力;不會(huì)C語(yǔ)言簡(jiǎn)直都不能玩單片機(jī),雖然匯編也可以寫,但是C語(yǔ)言的移植性好,所以為了學(xué)習(xí)單片機(jī)惡補(bǔ)過(guò)C語(yǔ)言?!妒职咽纸棠銓W(xué)單片機(jī)》小宋老師講的單片機(jī)是很有趣味的,代碼寫的也很有條理;也有很多是看郭天祥的書和視頻入門的。不過(guò)我個(gè)人還是推薦小宋老師的《手把手教你學(xué)單片機(jī)》。也買過(guò)開(kāi)發(fā)板,學(xué)習(xí)(視頻,書),敲過(guò)代碼,那時(shí)候覺(jué)得51單片機(jī)好強(qiáng)大。推薦練手項(xiàng)目:《數(shù)字鐘》等。
? ? ? STM32:51學(xué)了之后深深感覺(jué)到控制器的有趣,一個(gè)單片機(jī)隨便加點(diǎn)外設(shè),就有不錯(cuò)的功能。當(dāng)時(shí)是野火的《STM32庫(kù)開(kāi)發(fā)指南》帶我入門STM32,詳細(xì)講了很多基礎(chǔ)的東西,對(duì)初學(xué)者絕對(duì)的好書。GPIO/Timer/UART/I2C/SPI/SD/TFT/NRF/UCOS等,講的比較詳細(xì)。大三上學(xué)期算是把這個(gè)學(xué)了一遍,但是使用起來(lái)還是很吃力。不過(guò)寫程序的功力不是一天兩天就能練好的,會(huì)了基礎(chǔ)的操作為后面的學(xué)習(xí)可以打下很好的基礎(chǔ)。學(xué)習(xí)了近半年,算是比較熟悉了,精通算不上,但是庫(kù)文件都看過(guò)。例程大部分都看過(guò)。STM32做信息采集這塊比較強(qiáng)大,溫度濕度光照強(qiáng)大等,配合各種傳感器。推薦練手項(xiàng)目:《倉(cāng)儲(chǔ)管理系統(tǒng)》客戶端【采集一些基礎(chǔ)信息通過(guò)NRF或者CAN傳到服務(wù)器】
? ? Linux基礎(chǔ):大三下學(xué)期的時(shí)候,偶然一次聽(tīng)到了嵌入式這個(gè)詞,確實(shí)以前沒(méi)有聽(tīng)過(guò)。后來(lái)自己查了許多資料,知道了學(xué)習(xí)嵌入式還有很多需要學(xué)習(xí)的東西,從而走向了Linux的道路。想當(dāng)初第一次裝虛擬機(jī),第一次裝ubuntu,第一次裝cygwin......那時(shí)候是真的高興,體會(huì)到學(xué)習(xí)是很有趣的事情。感受到了shell的強(qiáng)大?!而B(niǎo)個(gè)私房菜》這本書我只是看了命令的大部分,還有很多目前不能用的我都沒(méi)有看。
? ? 數(shù)據(jù)結(jié)構(gòu):想到這個(gè)就頭疼,一早就知道要活用數(shù)據(jù)結(jié)構(gòu)不是個(gè)容易的事情。還是硬著頭皮學(xué)下去,畢竟寫出高質(zhì)量的代碼是離不開(kāi)數(shù)據(jù)結(jié)構(gòu)的。黃國(guó)瑜的《數(shù)據(jù)結(jié)構(gòu)》是我的指導(dǎo)書,雖然里面大部分代碼都是有問(wèn)題的,但是我看中的是這本書的分析部分,著實(shí)精彩。學(xué)了鏈表、堆棧、隊(duì)列和各種排序。太過(guò)高深的樹(shù)和圖之類的目前還沒(méi)有研究。再多說(shuō)一句:鏈表、隊(duì)列、快讀排序這幾個(gè)是比較重要的,但是hash表也是很重要的,最好這幾個(gè)著重學(xué)一下。
? ? ? Linux C高級(jí)編程:學(xué)了linux基礎(chǔ)和windows下的C語(yǔ)言,后來(lái)想Linux下應(yīng)該也是可以學(xué)習(xí)C語(yǔ)言的。后來(lái)買了《Linux高級(jí)程序設(shè)計(jì)》第三版的黃皮書和《Linux C一站式編程》。學(xué)習(xí)了GCC,GDB,Makefile、文件操作、進(jìn)程管理及通信,線程管理和通信、網(wǎng)絡(luò)編程等。推薦練手項(xiàng)目:《web服務(wù)器》《Linux C局域網(wǎng)聊天室》等。
? ? ARM:最初接觸ARM是了解完了STM32之后,聽(tīng)說(shuō)ARM要運(yùn)行Linux系統(tǒng),因此才學(xué)的Linux。買的是天嵌的開(kāi)發(fā)板,那時(shí)候的資料是真的少,各種淘寶視頻都是幾百上千的,想想作為學(xué)生的自己,沒(méi)錢的孩子就應(yīng)該努力奮斗。看了許多的免費(fèi)視頻,韋東山的,國(guó)嵌的,等各種視頻資料,學(xué)習(xí)了uboot,內(nèi)核、文件系統(tǒng)和驅(qū)動(dòng)的一些皮毛。不過(guò)學(xué)習(xí)這個(gè)事情就是日積月累的。沒(méi)有學(xué)不好的技術(shù),只有不努力的人。幾年之后你也可以成為研發(fā)的主力軍。Linux做服務(wù)器的比較多,一個(gè)服務(wù)器對(duì)應(yīng)多個(gè)小的客戶端。推薦練手:《相冊(cè)》--這需要QT的知識(shí)(個(gè)人覺(jué)得學(xué)習(xí)C++和QT是有好處的)。