詳談學(xué)習(xí)編程語(yǔ)言的策略
有時(shí)候,程序員會(huì)別無(wú)選擇的情況下,毫無(wú)準(zhǔn)備地涉足另一種新語(yǔ)言;有時(shí)候我們會(huì)因?yàn)樾抡Z(yǔ)言中與舊語(yǔ)言的相似處而感到驚喜。根據(jù)筆者自己的經(jīng)驗(yàn),學(xué)習(xí)新語(yǔ)言最糟糕的事情之一就是沾沾自喜。通常這樣會(huì)形成一些壞的編程習(xí)慣,而常此以往,會(huì)影響我們的編程進(jìn)度以至于事倍功半,也就是比起規(guī)范化的學(xué)習(xí)方法,我們可能要花上更多的時(shí)間用于接受新的語(yǔ)言。
HTML2的說(shuō)明剛剛出爐的時(shí)候筆者還在學(xué)習(xí)HTML。如果你的期望不高,那就很容易對(duì)其進(jìn)行操作。當(dāng)筆者運(yùn)行一個(gè)在線(xiàn)存儲(chǔ)時(shí),軟件是由Perl編寫(xiě)的。筆者曾花了半個(gè)小時(shí)的時(shí)間學(xué)習(xí)Perl句法,但是卻花了近六個(gè)月的時(shí)間才稍微感覺(jué)像是學(xué)得比較好。幸運(yùn)的是,筆者不需要對(duì)其系統(tǒng)作出過(guò)多操作。這樣的經(jīng)歷為今后的也定下了基調(diào)。筆者相信花半個(gè)鐘頭的時(shí)間學(xué)習(xí)句法足夠了,而超過(guò)這一時(shí)間的學(xué)習(xí)就只剩下死記硬背了。后來(lái),筆者發(fā)現(xiàn),之所以在前面的Perl學(xué)習(xí)中取得成功是因?yàn)榱私饬嗽S多該語(yǔ)言的范例——它的長(zhǎng)處,缺陷等。在學(xué)到這一語(yǔ)言之前已經(jīng)做了很多的準(zhǔn)備工作。
借鑒他人的智慧
筆者所學(xué)的***類(lèi)編程語(yǔ)言是BASIC,COBOL,Scheme以及Pascal。當(dāng)時(shí)的教員深入淺出,一步步地引導(dǎo)著學(xué)生了解語(yǔ)言直到所有的學(xué)生都能完整地編寫(xiě)好一個(gè)程序。
這種學(xué)習(xí)方法就值得推廣,尤其是對(duì)于開(kāi)始階段的編程學(xué)習(xí)而言,因?yàn)樽畛醯恼Z(yǔ)言學(xué)習(xí)可以塑造我們的思維。遺憾的是處于工作環(huán)境的程序員被三個(gè)問(wèn)題困擾著:
◆這樣的學(xué)習(xí)耗費(fèi)時(shí)間,而實(shí)際工作中可能不允許出現(xiàn)這么長(zhǎng)的學(xué)習(xí)時(shí)間。
◆沒(méi)有一個(gè)培訓(xùn)機(jī)構(gòu)或是培訓(xùn)班來(lái)教授編程語(yǔ)言。
◆就算有這樣的培訓(xùn),其學(xué)費(fèi)肯定也是非常昂貴的。
如果你擁有一個(gè)好的指導(dǎo)老師和一本好的實(shí)例分析手冊(cè),那么起步階段的語(yǔ)言學(xué)習(xí)就不是什么難事了,但是一旦你已經(jīng)完成正規(guī)教育且步入社會(huì),這樣的想法就已經(jīng)是不現(xiàn)實(shí)的了。
接觸前先學(xué)習(xí)有關(guān)知識(shí)
另一種筆者曾使用過(guò)的策略是在嘗試編寫(xiě)代碼前先學(xué)習(xí)一下新語(yǔ)言的相關(guān)知識(shí)。你可以通過(guò)觀看在線(xiàn)教程,閱讀相關(guān)書(shū)籍,學(xué)習(xí)源代碼或任何你喜歡的方式來(lái)了解,不過(guò)不論你選擇哪種方式,學(xué)習(xí)應(yīng)該是系統(tǒng)的有框架的。這個(gè)方法等于是在你的腦子里播下了創(chuàng)新的種子,而當(dāng)你開(kāi)始編寫(xiě)代碼的時(shí)候,思維就會(huì)非?;钴S。
當(dāng)然也有筆者沒(méi)有嘗試過(guò)的方法,但是就筆者建議大家選擇最適合自己的方法,或者按照自己的需要制訂學(xué)習(xí)計(jì)劃。若能將規(guī)范化的程序有意識(shí)地搭配起來(lái)而不是先做研究然后再?lài)L試編碼,那么大家就能夠創(chuàng)建適合自己的計(jì)劃。
【編輯推薦】