优秀的程序员应该掌握几种编程语言

首先,大局部人了解的编程言语应该说的是初级言语。学习汇编言语这样的不算是学习编程言语,而更应该算是学习 CPU 的任务原理,不同的 CPU 的汇编指令集会差异很大,而且很大一局部差异也会体如今这里。(所以,还是得看看)

说到初级言语,我团体的一个模糊的规范是,当你觉得自己运用哪种编程言语曾经无所谓的时分,你曾经了解了足够多的编程言语了。(我不喜欢定义什么是优秀的顺序员,因此说的是我以为一切的顺序员都应该追求的方向)为什么这么说呢,其实实质上初级言语做的就是让你写汇编言语更快速(更严厉地说是机器言语,但是机器言语和汇编言语相差不多,就混用了),所以你最后处置效果的时分,脑子记最好可以有一个全局的观念,大致想象一下初级言语编译完之后或许实践解释的时分执行的操作究竟是什么,这个步骤抛开细节之后就是所谓的算法。说算法是独立于言语的就是这个意思。

当然,以上规范有一个大前提,就是你关于几大类编程言语有一个广度的看法,否则有一些类型的编程言语你历来没见过,不算是哪种编程言语曾经无所谓了。我说说我了解到的一些类型的言语吧(适用为主):

相似 C/Fortrank 这种进程型的言语。主要的方式是已实践执行的步骤组织顺序,和编译后的算法其实比拟接近了。

相似 C++/Java/Go 这种所谓面向对象的言语。有一种称为类的东西,会包括数据以及处置数据的方法,大局部处置数据的代码会围绕着某个类里的数据停止组织与设计;当然,复杂的完成局部的逻辑还是以直接的算法为主。与类相似的一个概念是接口,定义了所需求支持的操作(当然也可以包括数据),一些新的言语(如Go),会基于接口停止顺序设计。

Prolog/Erlang/Datalog 这类以递归为主要流程的言语。这些言语用来完成某些效果会异常的神奇,让人有一种“只需求描画做什么不需求描画甚至明白怎样做”的错觉,所以还是值得一看的(其实就是值得一学啦)。当然,没这么好的事情,实践状况是,你还是脑子里得知道我之前说的,究竟编译或许解释之后的汇编言语究竟在做什么,否则只会比用前两种言语更晕。

我的知识范围内就这些了,已有的几千种编程言语都逃不出这几类,一些能够是混合的。每类稍微用一两种,其他的看看区别就差不多了。

提供最优质的资源集合

立即查看 了解详情