常高伟:如何学习一门新的语言

512 查看

注:本文转载自常高伟的博客

这两天在看《编程人生:15位软件先驱访谈录》,这本书确实非常不错。而且看得也特别的轻松。其中有几个人都谈到了如何学习新的语言,但是给我最深刻的是google的首席java架构师joshua bloch。正好最近我也在学习python,所以顺便总结一下如何学习一门新的语言。希望你能补充一些。

心态

这不但是学习一门新的语言最重要的,而是对任何的学习都是最重要的。下面是书中的描述,非常的精彩,特别是那个比喻:

“学习一门新的语言的时候,要利用以前所学的语言的功底,但是也要保持开放的心态。有些人执着于一种理念:“这就是写所有程序必须遵循的方法”。我不是说那种语言,但是某些语言,令人执着于这样的理念。当开始学习新语言的时候,他们会批评这种语言跟真正神的语言的所有的不同之处。当使用新语言时,他们极力使用神的语言的方法去写。这样,你就会错过这个新语言真正的独特之处。

这就像你本来只有一个榔头,有人给了你一个螺丝刀,你说“哎,这不是一把好榔头,但是我应该可以倒着拿螺丝刀,用螺丝刀来砸东西。”你得到了一个很烂的榔头,但事实上它确实一把很不错的螺丝刀。所以你应该对所有的事物保持开放和积极的心态。”

如果你的杯子满了,那他永远再也装不进水了。如果你认为你找到了银弹,那么你可能就要固步自封了。

对新的事物,方法保持一个开发而积极的心态,才能真正了解他,了解他的独特之处。

了解他的历史,哲学观

选择一门语言,往往选择了一种思维方式和哲学观。所以,了解一门语言的历史和哲学观非常重要。你要知道这门语言是谁创建的,为什么创建,如何发展起来的,适合那些领域,以及解决问题的哲学是什么。

那python来说,他的设计哲学是“用一种方法,最好是只有一种方法来做一件事”,而perl的设计哲学是“总有多种方法来做同一件事”。所以,我选择的是python。 了解这方面的知识的一个非常好的来源是百科网站。

代码,代码,还是代码

代码是学习一门语言的必经之路,可能也是最快的一种方法。

阅读优秀代码是提高开发人员修为的一种捷径,你不但要找一些优秀的代码来阅读,还要亲自动手来写代码。这个过程对学习语言来说是非常快的。另外,你一定要用语言去解决实际的问题,而不仅仅是写代码来验证语法。在解决问题的过程中,你可以学习它是如何解决问题的,而且会积累语言的经验。

社区

多去这个语言的社区逛逛吧,这里有很多人在讨论这种语言,和他们一起讨论你能够学到更多。