|
這兩天在看《編程人生》,這本書確實非常不錯。而且看得也特別的輕松。其中有幾個人都談到了如何學(xué)習(xí)新的語言,但是給我最深刻的是Google的首席Java架構(gòu)師Joshua Bloch。正好最近我也在學(xué)習(xí)Python,所以順便總結(jié)一下如何學(xué)習(xí)一門新的語言。希望你能補充一些。
心態(tài)
這不但是學(xué)習(xí)一門新的語言最重要的,而是對任何的學(xué)習(xí)都是最重要的。下面是書中的描述,非常的精彩,特別是那個比喻:
“學(xué)習(xí)一門新的語言的時候,要利用以前所學(xué)的語言的功底,但是也要保持開放的心態(tài)。有些人執(zhí)著于一種理念:“這就是寫所有程序必須遵循的方法”。我不是說那種語言,但是某些語言,令人執(zhí)著于這樣的理念。當(dāng)開始學(xué)習(xí)新語言的時候,他們會批評這種語言跟真正神的語言的所有的不同之處。當(dāng)使用新語言時,他們極力使用神的語言的方法去寫。這樣,你就會錯過這個新語言真正的獨特之處。
這就像你本來只有一個榔頭,有人給了你一個螺絲刀,你說“哎,這不是一把好榔頭,但是我應(yīng)該可以倒著拿螺絲刀,用螺絲刀來砸東西。”你得到了一個很爛的榔頭,但事實上它確實一把很不錯的螺絲刀。所以你應(yīng)該對所有的事物保持開放和積極的心態(tài)。”
如果你的杯子滿了,那他永遠再也裝不進水了。如果你認(rèn)為你找到了銀彈,那么你可能就要固步自封了。
對新的事物,方法保持一個開發(fā)而積極的心態(tài),才能真正了解他,了解他的獨特之處。
這一點相對來說比較難,程序員一般對他們的語言有一種近乎固執(zhí)的偏愛。Paul Graham在《黑客與畫家》中好像提到過,開發(fā)語言是程序員的宗教信仰,貶低一種語言對使用這種語言的程序員是一種侮辱。
了解他的歷史,哲學(xué)觀
選擇一門語言,往往選擇了一種思維方式和哲學(xué)觀。所以,了解一門語言的歷史和哲學(xué)觀非常重要。你要知道這門語言是誰創(chuàng)建的,為什么創(chuàng)建,如何發(fā)展起來的,適合那些領(lǐng)域,以及解決問題的哲學(xué)是什么。
那Python來說,他的設(shè)計哲學(xué)是“用一種方法,最好是只有一種方法來做一件事”,而Perl的設(shè)計哲學(xué)是“總有多種方法來做同一件事”。所以,我選擇的是Python。
了解這方面的知識的一個非常好的來源是百科網(wǎng)站。
代碼,代碼,還是代碼
代碼是學(xué)習(xí)一門語言的必經(jīng)之路,可能也是最快的一種方法。
你不但要找一些優(yōu)秀的代碼來閱讀,還要親自動手來寫代碼。這個過程對學(xué)習(xí)語言來說是非常快的。另外,你一定要用語言去解決實際的問題,而不僅僅是寫代碼來驗證語法。在解決問題的過程中,你可以學(xué)習(xí)它是如何解決問題的,而且會積累語言的經(jīng)驗。
在工作中使用一門新的語言來開發(fā)新項目的風(fēng)險相對較大,所以,如果再工作中嘗試使用新的語言,可以選擇一些小的項目來積累經(jīng)驗。如果工作中無法使用這個語言,那么就在業(yè)余使用這個語言解決問題吧。
社區(qū)
多去這個語言的社區(qū)逛逛吧,這里有很多人在討論這種語言,和他們一起討論你能夠?qū)W到更多。
it知識庫:如何學(xué)習(xí)一門新的語言,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。