如何学习一门新的编程语言
2个回答
展开全部
心态这不但是学习一门新的语言最重要的,而是对任何的学习都是最重要的。下面是书中的描述,非常的精彩,特别是那个比喻:
学习一门新的语言的时候,要利用以前所学的语言的功底,但是也要保持开放的心态。有些人执着于一种理念:这就是写所有程序必须遵循的方法。我不是说那种语言,但是某些语言,令人执着于这样的理念。当开始学习新语言的时候,他们会批评这种语言跟真正神的语言的所有的不同之处。当使用新语言时,他们极力使用神的语言的方法去写。这样,你就会错过这个新语言真正的独特之处。
这就像你本来只有一个榔头,有人给了你一个螺丝刀,你说哎,这不是一把好榔头,但是我应该可以倒着拿螺丝刀,用螺丝刀来砸东西。你得到了一个很烂的榔头,但事实上它确实一把很不错的螺丝刀。所以你应该对所有的事物保持开放和积极的心态。
如果你的杯子满了,那他永远再也装不进水了。如果你认为你找到了银弹,那么你可能就要固步自封了。
对新的事物,方法保持一个开发而积极的心态,才能真正了解他,了解他的独特之处。
了解他的历史,哲学观
那python来说,他的设计哲学是用一种方法,最好是只有一种方法来做一件事,而perl的设计哲学是总有多种方法来做同一件事。所以,我选择的是python。
了解这方面的知识的一个非常好的来源是百科网站。
代码,代码,还是代码
代码是学习一门语言的必经之路,可能也是最快的一种方法。
社区多去这个语言的社区逛逛吧,这里有很多人在讨论这种语言,和他们一起讨论你能够学到更多。
出发点:工作两到三年内,我的主要开发语言是c。后来由于工作的需要,要实现一个流程引擎(属于预研项目)。在研究的过程中发现使用c语言处理这种逻辑比较复杂的程序有些力不从心,我想尝试使用面向对象的方式处理这个问题,所以我想到了c++。现在回想起来,其实当时自己也就是想使用c++的面向对象特性,我现在也基本只使用了c++的一个子集:面向对象。
起步:当时我们公司没有人使用过C++,我也是在大学的时候接触过,后来也没有用过,所以整个过程困难还是比较多的。因为有c的基础,所以我没有看c++的入门资料,比如《C++primer》(其实我到现在也没有从头到尾读过这本书,c++的很多特性我也没有使用过。),我直接使用c++来编写程序。中间遇到很多低级的问题,比如如何定义一个类的static成员变量;虚函数如何定义,如何使用;stl中string,list如何使用;c++如何调用c的库等等。这些问题都比较好解决。
最大的障碍:从c到c++,最大的障碍不是语法的障碍,而是思维方式的转变:
由面向过程到面向对象的转变
。这个转变时一个漫长的过程,我现在仍在进行。当时开发是为了更好的使用面向对象,快速的浏览了一下《设计模式》中的23个设计模式。现在想想,如果能够找一份开源的c++代码看看也许效果更好。
深入与提高:最终我还是用c++实现了我的目标。不过,这个程序在高层设计上采用的是面向对象,在中层和底层设计上仍然使用的是面向过程的思路。在这个过程中,我对c++和面向对象有了更深入的理解,也积累了一些经验。这个时候我没有选择全面的学习一些c++的语法,而是选择学习《effective c++》。这本书对外影响很大,让我知道如何去更有效的使用c++。学习的过程中也许会遇到一些不会的语法知识,查一下资料就可以解决了。后来又在几个项目中使用了c++,慢慢的有些得心应手了。
下一步计划:对于c++的语法,我的观点是用到了在学。我下一步的计划是学习《more effective c++》,《c++ 沉思录》,《深入理解c++对象模型》,以求对c++有更深入的理解。另外,再深入的学习一下《设计模式》。还有就是google的c++编程规范。对于是否要涉及c++的其他子集,比如模板,我会继续观察,看有没有这样的需求。当然,有一点很重要,就是要在工作中去用它解决问题。
关于python学习出发点:这门语言我刚开始学,还没有学多长时间。我没有想完全抛弃c++,但是我想找一个更加方便高效的工具来完成某些任务。我以后可能会考虑将python和c++混合使用。选择python的另一个原因是google也在用它。
起步:找了一个入门的资料《简明python教程》学习了一下,对python语法有了一个基本的了解。然后选择《diveintopython》深入学习,目前还没有学完。不过现在感觉有些问题,自己好像陷入到了这些细枝末节中。所以准备做一些调整。
下一步计划:
1)快速预览《diveintopython》;2)找一个开源代码学习一下;3)开始使用python来解决问题;4)后面深入提高。
最后总结一下:
3、开始行动,而非等待准备就绪:不要等你把一门语言完全掌握了再开始行动。把握重点之后,马上开始行动,用它来解决问题,在解决问题的过程中,完成对语言的完善和更深入一步的学习。
展开全部
心态
这不但是学习一门新的语言最重要的,而是对任何的学习都是最重要的。下面是书中的描述,非常的精彩,特别是那个比喻:
“学习一门新的语言的时候,要利用以前所学的语言的功底,但是也要保持开放的心态。有些人执着于一种理念:“这就是写所有程序必须遵循的方法”。我不是说那种语言,但是某些语言,令人执着于这样的理念。当开始学习新语言的时候,他们会批评这种语言跟真正神的语言的所有的不同之处。当使用新语言时,他们极力使用神的语言的方法去写。这样,你就会错过这个新语言真正的独特之处。
这就像你本来只有一个榔头,有人给了你一个螺丝刀,你说“哎,这不是一把好榔头,但是我应该可以倒着拿螺丝刀,用螺丝刀来砸东西。”你得到了一个很烂的榔头,但事实上它确实一把很不错的螺丝刀。所以你应该对所有的事物保持开放和积极的心态。”
对新的事物,方法保持一个开发而积极的心态,才能真正了解他,了解他的独特之处。
了解他的历史,哲学观
选择一门语言,往往选择了一种思维方式和哲学观。所以,了解一门语言的历史和哲学观非常重要。你要知道这门语言是谁创建的,为什么创建,如何发展起来的,适合那些领域,以及解决问题的哲学是什么。
那python来说,他的设计哲学是“用一种方法,最好是只有一种方法来做一件事”,而perl的设计哲学是“总有多种方法来做同一件事”。所以,我选择的是python。
了解这方面的知识的一个非常好的来源是百科网站。
代码,代码,还是代码
代码是学习一门语言的必经之路,可能也是最快的一种方法。
你不但要找一些优秀的代码来阅读,还要亲自动手来写代码。这个过程对学习语言来说是非常快的。另外,你一定要用语言去解决实际的问题,而不仅仅是写代码来验证语法。在解决问题的过程中,你可以学习它是如何解决问题的,而且会积累语言的经验。
社区
多去这个语言的社区逛逛吧,这里有很多人在讨论这种语言,和他们一起讨论你能够学到更多。
这不但是学习一门新的语言最重要的,而是对任何的学习都是最重要的。下面是书中的描述,非常的精彩,特别是那个比喻:
“学习一门新的语言的时候,要利用以前所学的语言的功底,但是也要保持开放的心态。有些人执着于一种理念:“这就是写所有程序必须遵循的方法”。我不是说那种语言,但是某些语言,令人执着于这样的理念。当开始学习新语言的时候,他们会批评这种语言跟真正神的语言的所有的不同之处。当使用新语言时,他们极力使用神的语言的方法去写。这样,你就会错过这个新语言真正的独特之处。
这就像你本来只有一个榔头,有人给了你一个螺丝刀,你说“哎,这不是一把好榔头,但是我应该可以倒着拿螺丝刀,用螺丝刀来砸东西。”你得到了一个很烂的榔头,但事实上它确实一把很不错的螺丝刀。所以你应该对所有的事物保持开放和积极的心态。”
对新的事物,方法保持一个开发而积极的心态,才能真正了解他,了解他的独特之处。
了解他的历史,哲学观
选择一门语言,往往选择了一种思维方式和哲学观。所以,了解一门语言的历史和哲学观非常重要。你要知道这门语言是谁创建的,为什么创建,如何发展起来的,适合那些领域,以及解决问题的哲学是什么。
那python来说,他的设计哲学是“用一种方法,最好是只有一种方法来做一件事”,而perl的设计哲学是“总有多种方法来做同一件事”。所以,我选择的是python。
了解这方面的知识的一个非常好的来源是百科网站。
代码,代码,还是代码
代码是学习一门语言的必经之路,可能也是最快的一种方法。
你不但要找一些优秀的代码来阅读,还要亲自动手来写代码。这个过程对学习语言来说是非常快的。另外,你一定要用语言去解决实际的问题,而不仅仅是写代码来验证语法。在解决问题的过程中,你可以学习它是如何解决问题的,而且会积累语言的经验。
社区
多去这个语言的社区逛逛吧,这里有很多人在讨论这种语言,和他们一起讨论你能够学到更多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询