華清(qing)遠見學霸的(de)嵌入式(shi)學習心得!
時間:2015-08-04 來源:未知
各位學(xue)弟學(xue)妹好(hao),我是武漢華清遠(yuan)見14121期學(xue)員,來自北京理工大學(xue)自動化專業。
現在公(gong)(gong)司(si)主要(yao)從事基于環境能量采集(ji)的無(wu)線無(wu)源樓(lou)宇控(kong)制系統的研發(fa)和應用。公(gong)(gong)司(si)前(qian)期產品(pin)主要(yao)面(mian)(mian)對商業(ye)和公(gong)(gong)共建(jian)筑的節能和智能化改造(zao),同時公(gong)(gong)司(si)的產品(pin)策略進行全面(mian)(mian)調(diao)整,聚焦在智能家居產品(pin)的研發(fa)上。團隊在無(wu)線超(chao)低功耗傳感器(qi)、控(kong)制器(qi)和網關的研發(fa)上積累了很多經驗,所以當給我(wo)介紹這些的時候,我(wo)還是果斷的選擇加(jia)入。
轉眼之間(jian),我從2014年12月(yue)(yue)到(dao)(dao)華清(qing)遠見(jian)開始學習到(dao)(dao)現在(zai)已(yi)經有(you)(you)4個(ge)月(yue)(yue)時(shi)間(jian)了(le),學習課程已(yi)經結束,項目階段已(yi)經開始了(le)。這四個(ge)月(yue)(yue)的學習時(shi)間(jian)里確實有(you)(you)很多感想,想在(zai)這里和大家分(fen)享,也給自(zi)己一個(ge)留念。
先說(shuo)說(shuo)當初來到這(zhe)(zhe)里(li)的(de)(de)(de)(de)(de)(de)(de)原因吧。在(zai)來到華(hua)清遠見(jian)學(xue)習(xi)之前,我(wo)(wo)已經(jing)工(gong)作(zuo)了(le)(le)(le)(le)3年(nian)(nian)的(de)(de)(de)(de)(de)(de)(de)時間。在(zai)這(zhe)(zhe)3年(nian)(nian)里(li),我(wo)(wo)主要(yao)從事交流伺(si)服驅動的(de)(de)(de)(de)(de)(de)(de)軟(ruan)件設計工(gong)作(zuo),3年(nian)(nian)也學(xue)習(xi)了(le)(le)(le)(le)很(hen)多東西,掌握了(le)(le)(le)(le)一(yi)些(xie)技能(neng)。但是工(gong)作(zuo)到一(yi)定(ding)的(de)(de)(de)(de)(de)(de)(de)時候,總覺得在(zai)控(kong)制(zhi)領域(yu),很(hen)難更進一(yi)層(ceng),其(qi)中的(de)(de)(de)(de)(de)(de)(de)理論知(zhi)識(shi)確實很(hen)讓(rang)我(wo)(wo)頭疼,鑒于自(zi)己(ji)的(de)(de)(de)(de)(de)(de)(de)情況,我(wo)(wo)決(jue)定(ding)放棄在(zai)控(kong)制(zhi)領域(yu)的(de)(de)(de)(de)(de)(de)(de)深(shen)入(ru)學(xue)習(xi)。由于我(wo)(wo)本人對(dui)于嵌(qian)入(ru)式(shi)(shi)的(de)(de)(de)(de)(de)(de)(de)內容有相(xiang)當的(de)(de)(de)(de)(de)(de)(de)愛好,同時我(wo)(wo)有在(zai)多種(zhong)單片機,DSP平(ping)臺開發的(de)(de)(de)(de)(de)(de)(de)基礎(chu),并(bing)且嵌(qian)入(ru)式(shi)(shi)行業(ye)(ye)的(de)(de)(de)(de)(de)(de)(de)前景較廣,所(suo)以(yi)我(wo)(wo)考慮想轉向與我(wo)(wo)之前工(gong)作(zuo)領域(yu)相(xiang)接近嵌(qian)入(ru)式(shi)(shi)行業(ye)(ye)。我(wo)(wo)認(ren)為我(wo)(wo)既然(ran)要(yao)做嵌(qian)入(ru)式(shi)(shi)工(gong)作(zuo),要(yao)進入(ru)這(zhe)(zhe)個行業(ye)(ye),就要(yao)能(neng)夠做出點成(cheng)績,擁(yong)有一(yi)定(ding)的(de)(de)(de)(de)(de)(de)(de)能(neng)力(li),就要(yao)夠專業(ye)(ye)。顯然(ran),以(yi)我(wo)(wo)之前的(de)(de)(de)(de)(de)(de)(de)在(zai)裸機上開發程(cheng)序(xu)的(de)(de)(de)(de)(de)(de)(de)基礎(chu),要(yao)達(da)到我(wo)(wo)對(dui)自(zi)己(ji)的(de)(de)(de)(de)(de)(de)(de)要(yao)求是不夠的(de)(de)(de)(de)(de)(de)(de)。所(suo)以(yi)我(wo)(wo)在(zai)權衡(heng)了(le)(le)(le)(le)各方面(mian)的(de)(de)(de)(de)(de)(de)(de)條件和(he)需求之后,我(wo)(wo)決(jue)定(ding)辭職(zhi),然(ran)后進入(ru)一(yi)家嵌(qian)入(ru)式(shi)(shi)培訓機構培訓一(yi)段時間,這(zhe)(zhe)樣獲得的(de)(de)(de)(de)(de)(de)(de)知(zhi)識(shi)更系(xi)統,提升能(neng)力(li)也更快。在(zai)比較了(le)(le)(le)(le)武漢的(de)(de)(de)(de)(de)(de)(de)幾家培訓機構的(de)(de)(de)(de)(de)(de)(de)情況,我(wo)(wo)選擇了(le)(le)(le)(le)華(hua)清遠見(jian)武漢中心。
2014年12月10日,我在華清遠(yuan)見的學習正式開始。在這里,總共(gong)學習了C語言,數(shu)據結(jie)構基礎(chu),Linux應用編程(cheng),Java編程(cheng)基礎(chu),Android應用編程(cheng),ARM裸機開發(fa),ARM Linux系統移(yi)植(zhi),ARM Linux驅動開發(fa),Android系統移(yi)植(zhi)等課程(cheng)。下面我談一(yi)(yi)下對于各門課程(cheng)我的淺(qian)薄的一(yi)(yi)些理(li)解(jie)。
C語(yu)言學(xue)(xue)習。C語(yu)言是(shi)(shi)做很(hen)多軟件開(kai)發(fa)的(de)(de)(de)(de)基(ji)礎,它非常重要(yao)(yao)。關于(yu)有(you)多重要(yao)(yao)?有(you)句話說“C語(yu)言是(shi)(shi)用(yong)來開(kai)發(fa)其(qi)他編程語(yu)言的(de)(de)(de)(de)語(yu)言”,我(wo)認為這(zhe)句話在(zai)(zai)百分(fen)之九十的(de)(de)(de)(de)情況下,是(shi)(shi)對的(de)(de)(de)(de),所(suo)以C語(yu)言是(shi)(shi)根本。我(wo)在(zai)(zai)來華清遠(yuan)見之前,我(wo)對于(yu)C語(yu)言的(de)(de)(de)(de)把(ba)控能力是(shi)(shi)我(wo)可以使(shi)用(yong)它的(de)(de)(de)(de)基(ji)礎功能,簡單使(shi)用(yong)循(xun)環,分(fen)支,判斷語(yu)句寫(xie)個(ge)(ge)裸機程序(xu)。來這(zhe)里學(xue)(xue)習了(le)之后(hou),我(wo)對C語(yu)言中(zhong)的(de)(de)(de)(de)一些內(nei)(nei)容有(you)了(le)一定(ding)的(de)(de)(de)(de)理解,能夠有(you)能力去(qu)(qu)考(kao)慮某個(ge)(ge)函數(shu),某個(ge)(ge)語(yu)句塊是(shi)(shi)為什么(me)要(yao)(yao)這(zhe)么(me)寫(xie),去(qu)(qu)思(si)考(kao)程序(xu)代碼,每一個(ge)(ge)變量,每一個(ge)(ge)函數(shu)如何在(zai)(zai)內(nei)(nei)存(cun)中(zhong)存(cun)儲(chu),程序(xu)運行時,內(nei)(nei)存(cun)中(zhong)的(de)(de)(de)(de)數(shu)據是(shi)(shi)如何變化的(de)(de)(de)(de)。經過(guo)學(xue)(xue)習,寫(xie)程序(xu)的(de)(de)(de)(de)思(si)維有(you)所(suo)不同了(le),這(zhe)是(shi)(shi)一個(ge)(ge)很(hen)重要(yao)(yao)的(de)(de)(de)(de)收獲。
數據(ju)結(jie)構學習。關于(yu)數據(ju)結(jie)構,我們其(qi)(qi)實學的(de)(de)不是很多,但(dan)(dan)是學到了其(qi)(qi)中(zhong)(zhong)的(de)(de)主要思想。在(zai)實際(ji)情(qing)況中(zhong)(zhong),存在(zai)很多種不同(tong)的(de)(de)算(suan)法,但(dan)(dan)萬(wan)變不離(li)其(qi)(qi)宗,到根本都是一(yi)樣的(de)(de)。其(qi)(qi)中(zhong)(zhong)包含的(de)(de)不外乎兩點,一(yi)是數據(ju)如(ru)何在(zai)內存中(zhong)(zhong)存儲的(de)(de),二是程(cheng)序(xu)的(de)(de)邏輯,如(ru)何操作內存中(zhong)(zhong)的(de)(de)數據(ju)。寫程(cheng)序(xu)重要的(de)(de)是思想,算(suan)法是核心,語言都只是工具,這是我學習后的(de)(de)感悟。
Linux 應(ying)(ying)用編(bian)(bian)(bian)程(cheng)(cheng)。Linux應(ying)(ying)用編(bian)(bian)(bian)程(cheng)(cheng)是一個比較有意思的內容。在我來這(zhe)學(xue)習之(zhi)前(qian),很(hen)少接觸(chu)到應(ying)(ying)用編(bian)(bian)(bian)程(cheng)(cheng)。學(xue)習了Linux應(ying)(ying)用編(bian)(bian)(bian)程(cheng)(cheng)之(zhi)后,對(dui)于網絡編(bian)(bian)(bian)程(cheng)(cheng),多進(jin)程(cheng)(cheng)編(bian)(bian)(bian)程(cheng)(cheng)等(deng)以(yi)前(qian)覺得(de)似乎(hu)比較難(nan)的東西(xi)(xi)有了新的認識(shi)。積極去動(dong)手,認真(zhen)動(dong)腦(nao),真(zhen)正理解了Linux中各(ge)個接口該怎么(me)用,為什么(me)要使(shi)用它,就覺得(de)這(zhe)些東西(xi)(xi),其實不是很(hen)難(nan)的。
Java和(he)Android應(ying)用(yong)開(kai)(kai)(kai)發。我們(men)學(xue)習(xi)Java主要是為Android應(ying)用(yong)開(kai)(kai)(kai)發學(xue)習(xi)打(da)基礎(chu),我們(men)確實(shi)只學(xue)了基本的一(yi)(yi)部分(fen),主要是學(xue)習(xi)了Java語(yu)言的面對(dui)對(dui)象編程(cheng)的思想。Android開(kai)(kai)(kai)發,我們(men)學(xue)習(xi)后,可(ke)以開(kai)(kai)(kai)發出(chu)一(yi)(yi)些(xie)簡單(dan)的手機應(ying)用(yong)。由于我們(men)學(xue)習(xi)的時間偏短,加之之前在Java方面的基礎(chu)很少,所以我認為如(ru)果(guo)有興趣做Java相關的開(kai)(kai)(kai)發,還需要進一(yi)(yi)步深(shen)入學(xue)習(xi),以達到更(geng)深(shen)刻的理(li)解。
ARM相(xiang)關(guan)(guan)課(ke)(ke)程(cheng)(cheng)。ARM相(xiang)關(guan)(guan)的(de)課(ke)(ke)程(cheng)(cheng),一共有(you)(you)3門,這部分(fen)是(shi)(shi)(shi)我(wo)們學(xue)習的(de)久的(de)課(ke)(ke)程(cheng)(cheng),而且(qie)因(yin)(yin)為(wei)(wei)設計到硬件,也可能這是(shi)(shi)(shi)難度大(da)(da)的(de)課(ke)(ke)程(cheng)(cheng)。ARM裸機程(cheng)(cheng)序(xu)部分(fen),我(wo)是(shi)(shi)(shi)很熟悉(xi)的(de),之前有(you)(you)在ARM平(ping)臺開(kai)發過邏輯程(cheng)(cheng)序(xu),這部分(fen)學(xue)起來很輕松。但(dan)是(shi)(shi)(shi)系統移(yi)植(zhi)和(he)驅動開(kai)發部分(fen),在學(xue)習的(de)時候確實感受到壓(ya)力很大(da)(da)。原因(yin)(yin)有(you)(you)三(san):一是(shi)(shi)(shi)因(yin)(yin)為(wei)(wei)移(yi)植(zhi)相(xiang)關(guan)(guan)的(de)代碼量都比較(jiao)大(da)(da),內心對于要征服一個大(da)(da)工程(cheng)(cheng)不(bu)是(shi)(shi)(shi)很有(you)(you)信心;二是(shi)(shi)(shi)因(yin)(yin)為(wei)(wei)系統移(yi)植(zhi)和(he)編寫驅動都是(shi)(shi)(shi)在別人給(gei)定好的(de)框架上(shang)去編寫和(he)修改代碼或者理解代碼,很多時候找不(bu)到這個思維的(de)邏輯;三(san)是(shi)(shi)(shi)因(yin)(yin)為(wei)(wei)我(wo)們學(xue)習的(de)內容很多,來不(bu)及(ji)徹底(di)地消化和(he)吸收。
然而(er),在學完之后(hou),我(wo)再(zai)(zai)去復習(xi)和(he)再(zai)(zai)學習(xi)一(yi)(yi)(yi)遍時(shi)(shi),發(fa)現(xian)也(ye)不(bu)是(shi)(shi)那么(me)難,其中(zhong)(zhong)的(de)內容也(ye)并不(bu)是(shi)(shi)很多。如果(guo)(guo)只是(shi)(shi)為了做移植或者開發(fa)一(yi)(yi)(yi)個簡單驅動,并去需(xu)要(yao)(yao)把(ba)(ba)(ba)所有(you)內容都(dou)理解(jie),只需(xu)要(yao)(yao)按照給定的(de)框架把(ba)(ba)(ba)需(xu)要(yao)(yao)修(xiu)改(gai)的(de)地(di)(di)方修(xiu)改(gai)一(yi)(yi)(yi)下,把(ba)(ba)(ba)需(xu)要(yao)(yao)配置(zhi)的(de)地(di)(di)方配置(zhi)好就(jiu)可以(yi)(yi)了,這個目的(de)以(yi)(yi)目前的(de)學習(xi)程(cheng)序應該是(shi)(shi)可以(yi)(yi)達到的(de)。如果(guo)(guo)確實(shi)想(xiang)徹底(di)理解(jie)其中(zhong)(zhong)的(de)精髓,我(wo)的(de)想(xiang)法是(shi)(shi):先不(bu)去理解(jie)每(mei)(mei)一(yi)(yi)(yi)部分(fen)代碼,而(er)是(shi)(shi)宏(hong)觀地(di)(di)把(ba)(ba)(ba)u-boot啟動,Linux內核啟動,Linux驅動框架理解(jie)一(yi)(yi)(yi)遍,把(ba)(ba)(ba)每(mei)(mei)一(yi)(yi)(yi)步在筆(bi)記(ji)(ji)上記(ji)(ji)一(yi)(yi)(yi)邊,然后(hou)再(zai)(zai)針(zhen)對這每(mei)(mei)一(yi)(yi)(yi)步,對照上課筆(bi)記(ji)(ji)花上一(yi)(yi)(yi)天兩天時(shi)(shi)間(jian)去理解(jie)一(yi)(yi)(yi)下,然后(hou)會有(you)一(yi)(yi)(yi)定的(de)自己的(de)領悟與見解(jie),直到各部分(fen)能(neng)夠再(zai)(zai)大腦里貫穿起(qi)來。只要(yao)(yao)不(bu)害怕它,能(neng)夠堅(jian)持,我(wo)相信一(yi)(yi)(yi)個月(yue),兩個月(yue),總有(you)一(yi)(yi)(yi)天我(wo)能(neng)夠把(ba)(ba)(ba)他們完整(zheng)地(di)(di)理解(jie)。
然后,我(wo)(wo)想在(zai)(zai)這里(li)對(dui)各(ge)位(wei)老師(shi)(shi)(shi)表(biao)示我(wo)(wo)的(de)(de)(de)(de)敬意(yi)(yi)與感謝之情。這里(li)的(de)(de)(de)(de)每(mei)一位(wei)老師(shi)(shi)(shi)都是我(wo)(wo)們(men)應(ying)該(gai)學習(xi)的(de)(de)(de)(de)楷模。文老師(shi)(shi)(shi)嚴謹(jin)的(de)(de)(de)(de)思維,程(cheng)老師(shi)(shi)(shi)認真的(de)(de)(de)(de)態度,陳(chen)老師(shi)(shi)(shi)求是的(de)(de)(de)(de)精神(shen),王老師(shi)(shi)(shi)鉆研(yan)的(de)(de)(de)(de)精神(shen),曹(cao)老師(shi)(shi)(shi)負(fu)責的(de)(de)(de)(de)責任心(xin),都讓我(wo)(wo)印(yin)象深刻,他們(men)身上的(de)(de)(de)(de)優(you)秀(xiu)的(de)(de)(de)(de)品質,令我(wo)(wo)欽佩,我(wo)(wo)將(jiang)以他們(men)為(wei)(wei)榜樣來激勵和約束(shu)自己。還(huan)要(yao)感謝我(wo)(wo)們(men)的(de)(de)(de)(de)班主任,非常的(de)(de)(de)(de)負(fu)責,對(dui)我(wo)(wo)們(men)很關心(xin),總是提示我(wo)(wo)們(men)要(yao)注意(yi)(yi)休息(xi),注意(yi)(yi)身體,天冷(leng)加(jia)衣服,在(zai)(zai)我(wo)(wo)們(men)需要(yao)的(de)(de)(de)(de)時候總是熱心(xin)幫(bang)忙(mang)。還(huan)有其他很多老師(shi)(shi)(shi),都在(zai)(zai)半年(nian)的(de)(de)(de)(de)時間里(li),為(wei)(wei)我(wo)(wo)們(men)做出了(le)許多付出。這里(li)對(dui)各(ge)位(wei)老師(shi)(shi)(shi)表(biao)達真誠的(de)(de)(de)(de)謝意(yi)(yi),我(wo)(wo)祝愿各(ge)位(wei)老師(shi)(shi)(shi)工(gong)作順利,一切都好!
后,也得(de)對(dui)我的各(ge)位同學們說(shuo),感(gan)謝有你們的陪伴(ban)。這(zhe)半(ban)年和大家相處的時間是(shi)一段非常美好的時光。祝(zhu)福大家,祝(zhu)愿大家能夠(gou)學習(xi)開機,找到一份美滿的工作,不斷進步,一生與知識相伴(ban)。
小伙伴們,點擊這里,即可訂閱“《open公開課》嵌入式/Android”,第一時間收到各類免費嵌入式/Android等線上線下免費技術講座活動信息,好東東,莫錯過 >>

