常高偉:如何學習一門新的語言

發表於2011-08-25

注:本文轉載自常高偉的部落格

這兩天在看《程式設計人生:15位軟體先驅訪談錄》,這本書確實非常不錯。而且看得也特別的輕鬆。其中有幾個人都談到了如何學習新的語言,但是給我最深刻的是google的首席java架構師joshua bloch。正好最近我也在學習python,所以順便總結一下如何學習一門新的語言。希望你能補充一些。

心態

這不但是學習一門新的語言最重要的,而是對任何的學習都是最重要的。下面是書中的描述,非常的精彩,特別是那個比喻:

“學習一門新的語言的時候,要利用以前所學的語言的功底,但是也要保持開放的心態。有些人執著於一種理念:“這就是寫所有程式必須遵循的方法”。我不是說那種語言,但是某些語言,令人執著於這樣的理念。當開始學習新語言的時候,他們會批評這種語言跟真正神的語言的所有的不同之處。當使用新語言時,他們極力使用神的語言的方法去寫。這樣,你就會錯過這個新語言真正的獨特之處。

這就像你本來只有一個榔頭,有人給了你一個螺絲刀,你說“哎,這不是一把好榔頭,但是我應該可以倒著拿螺絲刀,用螺絲刀來砸東西。”你得到了一個很爛的榔頭,但事實上它確實一把很不錯的螺絲刀。所以你應該對所有的事物保持開放和積極的心態。”

如果你的杯子滿了,那他永遠再也裝不進水了。如果你認為你找到了銀彈,那麼你可能就要固步自封了。

對新的事物,方法保持一個開發而積極的心態,才能真正瞭解他,瞭解他的獨特之處。

瞭解他的歷史,哲學觀

選擇一門語言,往往選擇了一種思維方式和哲學觀。所以,瞭解一門語言的歷史和哲學觀非常重要。你要知道這門語言是誰建立的,為什麼建立,如何發展起來的,適合那些領域,以及解決問題的哲學是什麼。

那python來說,他的設計哲學是“用一種方法,最好是隻有一種方法來做一件事”,而perl的設計哲學是“總有多種方法來做同一件事”。所以,我選擇的是python。 瞭解這方面的知識的一個非常好的來源是百科網站。

程式碼,程式碼,還是程式碼

程式碼是學習一門語言的必經之路,可能也是最快的一種方法。

閱讀優秀程式碼是提高開發人員修為的一種捷徑,你不但要找一些優秀的程式碼來閱讀,還要親自動手來寫程式碼。這個過程對學習語言來說是非常快的。另外,你一定要用語言去解決實際的問題,而不僅僅是寫程式碼來驗證語法。在解決問題的過程中,你可以學習它是如何解決問題的,而且會積累語言的經驗。

社群

多去這個語言的社群逛逛吧,這裡有很多人在討論這種語言,和他們一起討論你能夠學到更多。

 

相關文章