任亞飛
沒(méi)入門(mén) C 語(yǔ)言之前,我對(duì)于電腦知識(shí)就是個(gè)小白,怎么入門(mén)是一個(gè)很大的問(wèn)題,毫不夸張地說(shuō)這涉及很多學(xué)科知識(shí)點(diǎn)。下面我結(jié)合自己的學(xué)習(xí)過(guò)程介紹一下怎么學(xué)習(xí)C語(yǔ)言。
學(xué)生時(shí)代我加入了學(xué)校的實(shí)驗(yàn)室,作為一枚新生,什么都不懂,什么都是好奇的,看到有人在焊接電路板,就想焊;看到有人在畫(huà) PCB,也想畫(huà);作為一個(gè)農(nóng)村出身的我來(lái)說(shuō),什么都是新鮮的,什么都是有趣的。學(xué)長(zhǎng)們帶著我從51 單片機(jī)的培訓(xùn)開(kāi)始,主要內(nèi)容就是如何利用 C 語(yǔ)言寫(xiě)出自己的代碼,去控制單片機(jī)工作,最簡(jiǎn)單的就是用代碼控制一盞燈的亮滅了(跑馬燈)。從此以后我就一步步確定了單片機(jī)這個(gè)工作方向(主要?jiǎng)恿褪歉信d趣,對(duì)技術(shù)的敬畏和渴望)。
已經(jīng)確定要學(xué)習(xí) C 語(yǔ)言,我要如何繼續(xù)走下去呢?視頻+ 書(shū)籍+ 網(wǎng)絡(luò)。這就是我的答案,并且我的觀點(diǎn)是視頻為主,書(shū)籍為輔,遇到問(wèn)題上網(wǎng)搜,這是我認(rèn)為最快的入門(mén)方式。注意這只是入門(mén)的方式,如果入門(mén)之后你還采用這個(gè)模式,那效率就太低了。
為什么說(shuō)這種方式入門(mén)最快呢?對(duì)于視頻,一定要選擇有口皆碑的視頻,不能隨便找一個(gè)視頻就開(kāi)始學(xué)了,這樣得不償失。如果說(shuō)你不知哪個(gè)視頻比較好,那么上網(wǎng)搜吧!你要相信,你遇到的絕大部分問(wèn)題別人都遇到過(guò),不管是技術(shù)上的,還是生活上的,都是如此,不懂就問(wèn)。
視頻學(xué)習(xí)有很多好處。每一個(gè)能錄制視頻的人在這個(gè)領(lǐng)域肯定比我們小白強(qiáng),以他們的思維高度講授的內(nèi)容更全面,更具有代表性,同時(shí)他們也會(huì)在講授的過(guò)程中穿插一些自己的編程經(jīng)驗(yàn),自己的思考、故事,讓你的學(xué)習(xí)不那么枯燥。而且,如果你選擇的視頻是有口皆碑的,那么不管從內(nèi)容上,還是教學(xué)方式上肯定都是比較適合小白學(xué)習(xí)的,不然不可能那么多人推薦的。而如果你碰到的是一位幽默的老師,那么你可能就是在邊學(xué)邊笑中度過(guò)了。我一直認(rèn)為,能把復(fù)雜的東西用通俗的方式解釋才是最好的,所以我的筆記一直都向這個(gè)方向努力,盡可能地通俗化;我也相信一張圖片能勝過(guò)千言萬(wàn)語(yǔ),所以我的筆記中有很多圖片,盡可能地將自己的理解轉(zhuǎn)化為圖片方式顯示在讀者面前。
對(duì)于書(shū)籍,不要過(guò)多地看,要把重點(diǎn)放在視頻上,要理解好視頻中講的每一個(gè)知識(shí)點(diǎn)。如果沒(méi)聽(tīng)清楚,那么退回去再聽(tīng);如果不理解,那么暫停一下,自行思考;如果實(shí)在理解不了,那么暫時(shí)放棄即可,不必鉆牛角尖。開(kāi)始的時(shí)候一定要將重點(diǎn)放在對(duì)視頻的理解上,當(dāng)你理解差不多的時(shí)候,你再拿起你的書(shū),再對(duì)視頻中介紹的知識(shí)進(jìn)行系統(tǒng)全面的學(xué)習(xí),因?yàn)橛械臅r(shí)候視頻看得太快,忽略了一些東西,而且視頻中講的內(nèi)容很少,只是一個(gè)引子,你要通過(guò)這個(gè)引子對(duì)書(shū)上相關(guān)的知識(shí)進(jìn)行更全面的學(xué)習(xí),當(dāng)然這個(gè)學(xué)習(xí)過(guò)程可以在你把所有的視頻看完之后再進(jìn)行,畢竟有了整體的印象后再進(jìn)行書(shū)籍學(xué)習(xí)更有好處。對(duì)于視頻中沒(méi)有介紹的知識(shí)點(diǎn),別去看,現(xiàn)在的你不要看太多書(shū)上的知識(shí),以后用到以后再說(shuō)。我把郭天祥的視頻都看完了,但書(shū)卻沒(méi)有。郭天祥的書(shū)磚頭一樣厚,每一頁(yè)都看,那不累死我這個(gè)小白嗎?
通過(guò)視頻+ 書(shū)籍的方式你已經(jīng)掌握了足夠的理論知識(shí),那理解得好不好,就看你的實(shí)踐效果了。沒(méi)有實(shí)踐的理論是空洞的理論,沒(méi)有理論的實(shí)踐是盲目的實(shí)踐。我初中班主任說(shuō)過(guò)這么一句話:一看就懂,一做就錯(cuò),說(shuō)的就是這個(gè)道理。很多時(shí)候你自認(rèn)為理解了,但是到底理解得正不正確,就看你的實(shí)踐了。實(shí)踐除了能幫你驗(yàn)證你的理解,還能將你當(dāng)前的問(wèn)題暴露出來(lái),讓你知道你的不足在何處,同時(shí)也能增加你的學(xué)習(xí)興趣,畢竟看著自己親手做出來(lái)的東西還是很有成就感的。
對(duì)于代碼,除了多敲,還要多看。網(wǎng)上有很多源代碼可以參考,同一種需求可能有多種解決方式,通過(guò)多學(xué)習(xí)別人的方法,你將進(jìn)步更快,畢竟一個(gè)人的思考能力總是有限的,也很容易被當(dāng)時(shí)自己的知識(shí)水平、思維習(xí)慣限制住,所以一定要多學(xué)習(xí)別人的代碼,然后在理解的基礎(chǔ)上丟開(kāi)參考代碼,自己獨(dú)立寫(xiě)出來(lái)。我在單片機(jī)學(xué)習(xí)的過(guò)程中,看得最多的就是 STM32的庫(kù)函數(shù)了,如果你想學(xué)習(xí)如何規(guī)范寫(xiě)代碼,如何寫(xiě)出一個(gè)好的底層驅(qū)動(dòng)程序,那么看庫(kù)函數(shù)的源代碼是一種不錯(cuò)的選擇。寫(xiě)代碼的時(shí)候注意多寫(xiě)一些注釋,但也不是每一行都要寫(xiě)注釋,那不累死,但關(guān)鍵點(diǎn)一定要寫(xiě)出來(lái),方便自己以后理解,也是防止以后回來(lái)改代碼的時(shí)候不小心掉進(jìn)自己挖的坑里了。
當(dāng)你入門(mén)之后,你就要拋開(kāi)視頻了,畢竟視頻學(xué)習(xí)適合入門(mén),卻不適合進(jìn)階。因?yàn)橐曨l還是比書(shū)籍稍微啰唆那么一點(diǎn),而且時(shí)間也比較長(zhǎng),所以不建議用視頻去進(jìn)階了。這個(gè)時(shí)候就要以書(shū)籍為主。網(wǎng)上有很多書(shū)可以看,有電子版,也有實(shí)體書(shū)。如果喜歡實(shí)體書(shū),那買(mǎi)實(shí)體書(shū)看就行;如果喜歡電子書(shū),那么上網(wǎng)搜就是了,很多都是免費(fèi)的。
做技術(shù)的一定要有長(zhǎng)期學(xué)習(xí)的覺(jué)悟,畢竟社會(huì)發(fā)展得太快了,有很多新東西要學(xué)習(xí),不能墨守成規(guī),認(rèn)為自己當(dāng)前的技術(shù)水平足以應(yīng)對(duì)當(dāng)前工作就停止學(xué)習(xí)了,而且我也不認(rèn)為你把當(dāng)下所有的舊技術(shù)都學(xué)會(huì)了,更別說(shuō)新技術(shù)了,當(dāng)然也不是說(shuō)舊的技術(shù)沒(méi)學(xué)完,就不能學(xué)新技術(shù),看情況、看興趣的,重點(diǎn)是你不能停下學(xué)習(xí)的腳步。