posts - 495,  comments - 11,  trackbacks - 0

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

          心態(tài)

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

          “學習一門新的語言的時候,要利用以前所學的語言的功底,但是也要保持開放的心態(tài)。有些人執(zhí)著于一種理念:“這就是寫所有程序必須遵循的方法”。我不是說那種語言,但是某些語言,令人執(zhí)著于這樣的理念。當開始學習新語言的時候,他們會批評這種語言跟真正神的語言的所有的不同之處。當使用新語言時,他們極力使用神的語言的方法去寫。這樣,你就會錯過這個新語言真正的獨特之處。
          這就像你本來只有一個榔頭,有人給了你一個螺絲刀,你說“哎,這不是一把好榔頭,但是我應該可以倒著拿螺絲刀,用螺絲刀來砸東西。”你得到了一個很爛的榔頭,但事實上它確實一把很不錯的螺絲刀。所以你應該對所有的事物保持開放和積極的心態(tài)。”

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

          對新的事物,方法保持一個開發(fā)而積極的心態(tài),才能真正了解他,了解他的獨特之處。

          這一點相對來說比較難,程序員一般對他們的語言有一種近乎固執(zhí)的偏愛。Paul Graham在《黑客與畫家》中好像提到過,開發(fā)語言是程序員的宗教信仰,貶低一種語言對使用這種語言的程序員是一種侮辱。

          了解他的歷史,哲學觀

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

          那python來說,他的設計哲學是“用一種方法,最好是只有一種方法來做一件事”,而perl的設計哲學是“總有多種方法來做同一件事”。所以,我選擇的是python。

          了解這方面的知識的一個非常好的來源是百科網(wǎng)站。

          代碼,代碼,還是代碼

          代碼是學習一門語言的必經(jīng)之路,可能也是最快的一種方法。

          你不但要找一些優(yōu)秀的代碼來閱讀,還要親自動手來寫代碼。這個過程對學習語言來說是非常快的。另外,你一定要用語言去解決實際的問題,而不僅僅是寫代碼來驗證語法。在解決問題的過程中,你可以學習它是如何解決問題的,而且會積累語言的經(jīng)驗。

          在工作中使用一門新的語言來開發(fā)新項目的風險相對較大,所以,如果再工作中嘗試使用新的語言,可以選擇一些小的項目來積累經(jīng)驗。如果工作中無法使用這個語言,那么就在業(yè)余使用這個語言解決問題吧。

          社區(qū)

          多去這個語言的社區(qū)逛逛吧,這里有很多人在討論這種語言,和他們一起討論你能夠?qū)W到更多。


          本文轉(zhuǎn)自CSDN博客

          posted on 2011-06-01 12:48 jadmin 閱讀(77) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 井冈山市| 鸡东县| 正安县| 忻州市| 汽车| 城口县| 赤峰市| 凯里市| 博湖县| 海宁市| 庆元县| 苍南县| 白城市| 吉木萨尔县| 望江县| 黑山县| 乌兰浩特市| 营山县| 茂名市| 金湖县| 外汇| 谷城县| 滦南县| 兰考县| 武安市| 洪江市| 抚顺市| 中宁县| 永定县| 通渭县| 东港市| 巨野县| 吉木乃县| 桓台县| 亚东县| 广西| 平顺县| 呼玛县| 寿宁县| 宁安市| 鄂托克前旗|