讀《程式設計人生》有感:如何學習一門新的語言
轉自常高偉的部落格
這兩天在看《程式設計人生》,這本書確實非常不錯。而且看得也特別的輕鬆。其中有幾個人都談到了如何學習新的語言,但是給我最深刻的是google的首席java架構師joshua bloch。正好最近我也在學習python,所以順便總結一下如何學習一門新的語言。希望你能補充一些。
心態
這不但是學習一門新的語言最重要的,而是對任何的學習都是最重要的。下面是書中的描述,非常的精彩,特別是那個比喻:
“學習一門新的語言的時候,要利用以前所學的語言的功底,但是也要保持開放的心態。有些人執著於一種理念:“這就是寫所有程式必須遵循的方法”。我不是說那種語言,但是某些語言,令人執著於這樣的理念。當開始學習新語言的時候,他們會批評這種語言跟真正神的語言的所有的不同之處。當使用新語言時,他們極力使用神的語言的方法去寫。這樣,你就會錯過這個新語言真正的獨特之處。 這就像你本來只有一個榔頭,有人給了你一個螺絲刀,你說“哎,這不是一把好榔頭,但是我應該可以倒著拿螺絲刀,用螺絲刀來砸東西。”你得到了一個很爛的榔頭,但事實上它確實一把很不錯的螺絲刀。所以你應該對所有的事物保持開放和積極的心態。”
如果你的杯子滿了,那他永遠再也裝不進水了。如果你認為你找到了銀彈,那麼你可能就要固步自封了。
對新的事物,方法保持一個開發而積極的心態,才能真正瞭解他,瞭解他的獨特之處。
瞭解他的歷史,哲學觀
選擇一門語言,往往選擇了一種思維方式和哲學觀。所以,瞭解一門語言的歷史和哲學觀非常重要。你要知道這門語言是誰建立的,為什麼建立,如何發展起來的,適合那些領域,以及解決問題的哲學是什麼。
那python來說,他的設計哲學是“用一種方法,最好是隻有一種方法來做一件事”,而perl的設計哲學是“總有多種方法來做同一件事”。所以,我選擇的是python。
瞭解這方面的知識的一個非常好的來源是百科網站。
程式碼,程式碼,還是程式碼
程式碼是學習一門語言的必經之路,可能也是最快的一種方法。
你不但要找一些優秀的程式碼來閱讀,還要親自動手來寫程式碼。這個過程對學習語言來說是非常快的。另外,你一定要用語言去解決實際的問題,而不僅僅是寫程式碼來驗證語法。在解決問題的過程中,你可以學習它是如何解決問題的,而且會積累語言的經驗。
社群
多去這個語言的社群逛逛吧,這裡有很多人在討論這種語言,和他們一起討論你能夠學到更多。
相關文章
- 如何學習一門新的語言
- 如何學習一門程式語言
- 如何學習一門計算機程式語言計算機
- 常高偉:如何學習一門新的語言
- 如何學習一門程式語言或框架框架
- 以dart語言為例說說如何學習一門新的語言Dart
- 為什麼要學習一門新的程式語言?
- 學習一門新語言的二三事
- 如何自學一門新的語言:由學習C++想到的C++
- 學習你的第一門程式語言
- 程式設計師下一門要學的程式語言Swift程式設計師Swift
- 怎樣學習一門程式語言
- 學習一門語言
- 如何設計一門語言(十一)——刪減語言的功能
- 入門程式設計學習,適合學python語言嗎?程式設計Python
- 你應該學習的第一門程式語言
- 如何設計一門語言(九)——型別型別
- 程式設計入門之學哪種程式語言?程式設計
- lua學習: lua及函數語言程式設計語言函數程式設計
- JavaScript函數語言程式設計學習JavaScript函數程式設計
- Dart程式語言入門學習Dart
- 我是如何學習一門程式設計技術的?程式設計
- 重讀領域驅動設計——如何說好一門通用語言
- 如何學習python程式語言?python入門Python
- 如何學會函數語言程式設計函數程式設計
- 程式語言設計,程式設計哲學程式設計
- 如何設計一門語言(八)——非同步程式設計和CPS變換非同步程式設計
- 雙相超程式設計:一種新語言設計方法程式設計
- Haskell學習-函數語言程式設計初探Haskell函數程式設計
- 深入學習javascript函數語言程式設計JavaScript函數程式設計
- JavaScript學習(3):函數語言程式設計JavaScript函數程式設計
- 【譯】需要學習的是程式設計,而不是程式語言程式設計
- 《程式設計人生》讀後感程式設計
- 程式設計師職業規劃:如何選擇下一門程式語言程式設計師
- 讀《程式設計師的思維修煉》有感程式設計師
- 一起來學習 Python 函數語言程式設計Python函數程式設計
- 如何設計一門語言(十二)——設計可擴充套件的型別套件型別
- 大一C語言程式設計練習題C語言程式設計