首先,大部分人理解的编程语言应该说的是高级语言。学习汇编语言这样的不算是学习编程语言,而更应该算是学习 CPU 的工作原理,不同的 CPU 的汇编指令集会差别很大,而且很大一部分差异也会体现在这里。(所以,还是得看看)
说到高级语言,我个人的一个模糊的标准是,当你觉得自己使用哪种编程语言已经无所谓的时候,你已经了解了足够多的编程语言了。(我不喜欢定义什么是优秀的程序员,因此说的是我认为所有的程序员都应该追求的方向)为什么这么说呢,其实本质上高级语言做的就是让你写汇编语言更快速(更严格地说是机器语言,但是机器语言和汇编语言相差不多,就混用了),所以你最后解决问题的时候,脑子记最好能够有一个全局的观念,大致想象一下高级语言编译完之后或者实际解释的时候执行的操作到底是什么,这个步骤抛开细节之后就是所谓的算法。说算法是独立于语言的就是这个意思。
当然,以上标准有一个大前提,就是你对于几大类编程语言有一个广度的认识,否则有一些类型的编程语言你从来没见过,不算是哪种编程语言已经无所谓了。我说说我了解到的一些类型的语言吧(实用为主):
类似 C/Fortrank 这种过程型的语言。主要的方式是已实际执行的步骤组织程序,和编译后的算法其实比较接近了。
类似 C++/Java/Go 这种所谓面向对象的语言。有一种称为类的东西,会包含数据以及处理数据的方法,大部分处理数据的代码会围绕着某个类里的数据进行组织与设计;当然,复杂的实现部分的逻辑还是以直接的算法为主。与类相似的一个概念是接口,定义了所需要支持的操作(当然也可以包括数据),一些新的语言(如Go),会基于接口进行程序设计。
Prolog/Erlang/Datalog 这类以递归为主要流程的语言。这些语言用来实现某些问题会异常的神奇,让人有一种“只需要描述做什么不需要描述甚至明白怎么做”的错觉,所以还是值得一看的(其实就是值得一学啦)。当然,没这么好的事情,实际情况是,你还是脑子里得知道我之前说的,到底编译或者解释之后的汇编语言到底在做什么,否则只会比用前两种语言更晕。
我的知识范围内就这些了,已有的几千种编程语言都逃不出这几类,一些可能是混合的。每类稍微用一两种,其他的看看区别就差不多了。
金城在线专注网站、软件、APP、微信公众平台、小程序、抖音、头条等开发推广,如果您有这方面的需求或者不同的观点,欢迎联系交流。
本文网址:http://lz.net.cn/zixunzhongxin/539.html