如何学会 600 多种编程语言

几周前,做为8th Light公司的实习生,我从CEO那里拿到了我的工作成绩报告。在与CEO的会见期间,我发现了一个对如何做一个程序员的认识上的盲区。起初我以为,想扩展自己的软件职业道路,那就要学很多各种的语言。我现在就要告诉你,事情不是这样的。

我们一共有多少种编程语言?你只需看一下维基百科上的清单,600 多种!说实话,就我个人的情况,我不相信我能学会数百种语言。因为有太多的文档需要看,它们之间有太多的差异需要注意。它们很多都是相似的,例如那些面向 对象的语言:C++,Java,Ruby,Python等。然而,我们却有一种更高效的方法学习它们,那就是对它们归纳分类。

在美国德锐大学,每个毕业生要接受的一门必修课程教育就是如何有效的学习。我很幸运遇到一位非常好的教授,Sugarman先生,我才有机会学到学习方法。尽管这个方法非常的基础,但它几乎能应用到任何事情上——不论它们的数量看起来是多么不可思议。

面向对象编程语言的基础理论要点:

学习基础理论要点,例如设计模式/范式,这样你就知道了在所有面向对象的编程语言中共同的知识,而不是只提高了一种语言水平。这是学习编程语言最有效的方法。

编程语言的类型有很多种,例如函数式语言,面向对象语言,面向数据语言(更多)。通过把各种语言归纳分类,这600种语言大概可以分成50类。通过学习每种分类的基础理论要点,再学习分类中的不同语言就变得容易多了。这里我给出一个例子。

对于面向对象编程语言,有5个基本原则能帮助你写出整洁优秀的代码。这些原则由Bob Martin总结,叫做SOLID原则。这里有一篇文章用图片形式很好的对这些原则进行了解释说明。这些原则是:

  1. 一个对象只承担一种责任,所有服务接口只通过它来执行这种任务。
  2. 程序实体,比如类和对象,向扩展行为开放,向修改行为关闭。
  3. 子类应该可以用来替代它所继承的类。
  4. 一个类对另一个类的依赖应该限制在最小化的接口上。
  5. 依赖抽象层(接口),而不是具体类。

通过学习这些原则,你可以在所有面向对象语言里更有效的进行编程。当然,你需要学会一门这种类型的语言来练习这些原则,但这是完全值得的。

各种面向对象语言间的不同之处:

同属于面向对象语言,它们之间存在大量不同之处:

  • 语法:了解各种语言在语法句式上的差异有很多好处,其中之一能帮助优化你的编码。通过让一个方法或类跟它的行为在特征是保持相似,这能让程序更容易懂。
  • 独特性:每种编程语言跟其它种比起来都有自己的独特之处。Java有私有方法和数据自定义上的特点,Ruby在Web应用上有很强的优势。

总之,学习各种语言之间的区别很重要。这种语言可能比那种语言中某些方面更容易使用或更强大。

总结

学习编程语言最有效的方法是学习它们的基础性的模式/范式,这比单独学习每种语言更高效。通过学习这些基础原理,你可以把它们应用到很多其它类似的语言里。学习各种语言之间的差异,这能帮助我们在面对各种情况时选择更合适的语言。

时间: 2024-10-05 13:45:24

如何学会 600 多种编程语言的相关文章

如何学会600多种编程语言

几周前,做为8th Light公司的实习生,我从CEO那里拿到了我的工作成绩报告.在与CEO的会见期间,我发现了一个对如何做一个程序员的认识上的盲区.起初我以为,想扩展自己的软件职业道路,那就要学很多各种的语言.我现在就要告诉你,事情不是这样的. 我们一共有多少种编程语言?你只需看一下维基百科上的清单,600多种!说实话,就我个人的情况,我不相信我能学会数百种语言.因为有太多的文档需要看,它们之间有太多的差异需要注意.它们很多都是相似的,例如那些面向对象的语言:C++,Java,Ruby,Pyt

程序员想要通晓多种编程语言可以这样做

学习一门新的语言是一种冒险.我总是热衷于尝试新的东西--学习新的语法,了解不同的模式,乃至彻底改变思维方式.不幸的是,许多开发人员对此不以为然,甚至可能是深恶痛绝的--学习新语言,就得走出舒适区,花时间花精力来学习新的理念和方法. 这段日子,我每天都要用大约5种不同的语言来写不同的项目! 我应该先学哪种语言? 有关这方面的讨论真可谓数不胜数.很多刚进入编程社区的初学者,都会问这个问题,简直就是前赴后继.有些人建议先学不费力的,如Python和 Ruby,也有的人认为应该先学例如C.C++和GO这

如何成为一个通晓多种编程语言的程序员

学习一门新的语言是一种冒险.我总是热衷于尝试新的东西--学习新的语法,了解不同的模式,乃至彻底改变思维方式.不幸的是,许多开发人员对此不以为然,甚至可能是深恶痛绝的--学习新语言,就得走出舒适区,花时间花精力来学习新的理念和方法. 这段日子,我每天都要用大约5种不同的语言来写不同的项目! 我应该先学哪种语言? 有关这方面的讨论真可谓数不胜数.很多刚进入编程社区的初学者,都会问这个问题,简直就是前赴后继.有些人建议先学不费力的,如Python和 Ruby,也有的人认为应该先学例如C.C++和GO这

你真的需要掌握多种编程语言吗?

简述 我刚刚断送了自己的职业生涯,没错,很多人都这样对我说. 同事得知我即将离开公司的消息,大多数对此表示理解.但让他们困惑的是,我目前就职的公司是一家Windows商店,用C#.net编写代码,而我要入职的岗位要求在Linux环境下进行开发,以Java为主要的编程语言.他们认为编程语言的改变会让我丢失多年经验,许多人都赞同他们的观点. 编程语言很多,数以百计.有些很常见,例如:Java.C#.PHP.Ruby.Python.和JavaScript,而有些则比较边缘化或是新兴的,例如:Awk.G

你真的需要了解多种编程语言吗?

我在谋杀自己的职业生涯.没错,很多人都这样说我. 我的同事刚刚得知我即将离开公司的消息.大多数表示理解.但让他们困惑的是,我现在的公司是一家Windows商店,用C#和.net编写代码.然 而,我要去担任的是Linux环境下主要语言为Java的开发工作.因为语言的改变,他们觉得我抛弃了自己的优势,抛弃了自己这么多年的工作经验,正在自 寻死路.很多人都秉持这样的观点. 编程语言很多很多,数以百计.有些很常见,如Java,C#,PHP,Ruby,Python和JavaScript,而有些则比较边缘化

多种编程语言的学习曲线

程序员Dobiasd在Github上绘制了七种编程语言的学习曲线,这些语言分别是:JavaScript.Java.C++.Python.Lisp.Haskell.PHP. 备注:图中的红线表示自我评估.蓝线表示学习效率. PHP果然是世界上最好的语言!!!

同时学习多种编程语言其实很容易

大概是两年前吧,我做了个决定,要去学习编程.我买了本PHP书,开始一边阅读一边做里面的练习题.我把主要精力都放到PHP上,不理会任何其它的 语言,因为我有个习惯,一旦开始做一个事情,我们会集中所有的注意力,先把这个事情做完,然后才去做其它的事情.于是,我尝试这开发一个Web应用程序 (一个绝妙的创意,一个能使我成为另外一个Facebook创始人那样的应用).一点一点的,进度很慢,我的应用(这个即将让我成为百万富翁的应用)慢慢 的成型.最终,它跑起来了.自然了,没有人来用它,做的太烂了,到处是bu

多种编程语言的常用按键和语法_相关技巧

我经常会在编程语言之间来回转换:我总是想知道,如果使用不同的语法会怎样,这种或那种语法会不会使你表达更清晰,更快地编写程序.我也不太清楚到底会不会,但我知道当用了不同的编程语言时,需要敲哪些键. 这对于那些决定选择一种编程语言的人来说也许很有趣,这也是对这个老问题"我应该学哪种语言?"的回答. 就我所知道的语言来说,在键盘上集中分布跨度更大的语音,通常就是我们所指的丑陋的语言(阅读和编写代码都很困难),例如 shell 和 perl. 你也许会争论说使用变量命名会改变结果,但大多数语言

OpenLogic的PaaS将支持多种编程语言

原文:OpenLogic is launching a platform-as-a-service offering that aims to give users the flexibility that many developers like about infrastructure-as-a-service without the work.     CloudSwing offers stacks for Java, Ruby, PHP, and JavaScript with pla