编程语言的发展
编程语言到目前为止,经历了三个发展阶段,机器语言,汇编语言、高级语言。在高级语言中,又可以分为面向过程语言以及目前最为广泛流传的面向对象语言。
机器语言
第一代计算机语言称为机器语言。机器语言就是 0/1 代码。计算机只能识别 0 和 1。在计算机内部,无论是一部电影还是一首歌曲或是一张图片,最终保存的都是 0/1 代码,因为 CPU 只能执行 0/1 代码。那么这是不是就意味着我们编程一定要用 0/1 代码呢?
首先这么编写肯定是可以的,但是这样太麻烦,而且很不好理解,所以后来就出现了汇编语言。
汇编语言
汇编语言就是将一串很枯燥无味的机器语言转化成一个英文单词。比如说:
add 1, 2;
add 就是一个英文单词,这样看起来就稍微有一些含义了,即 1 和 2 相加。这个就是汇编语言。
如果直接用机器语言编写的话,这几乎是无法实现的。因为用机器语言太难记忆了,也没人能看得懂。所以后来就设计出了第二种语言,即将 0/1 代码翻译为英文单词,这些英文单词直接对应着一串 0/1 指令。这个就是汇编语言。
通过专门的软件就可以将这些英文单词转化成 0/1 代码并由计算机执行,这种专门起翻译的作用的软件叫作编译器。
这些英文单词和与它们对应的 0/1 代码之间的对应关系,以及语言的语法,在编写这个软件的时候就已经写在里面了。我们只要通过编译器就可以将这些都转化成 0/1 代码。这样大大方便了我们对程序的编写。
但是汇编语言,学习成本太大了,我们举个例子,我们用汇编语言,跟这个世界打个招呼:
#hello.s
.data
msg : .string "nihao,laotie!\\n"
len = . - msg
.text
.global _start
_start:
movl $len, %edx
movl $msg, %ecx
movl $1, %ebx
movl $4, %eax
int $0x80
movl $0,%ebx
movl $1,%eax
int $0x80
高级语言
汇编语言之后又出现了第三代语言。第三代语言又叫“高级语言”。高级语言的发展分为两个阶段:
以 1980 年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,
后一阶段属于面向对象的语言。
什么叫面向过程,什么叫面向对象?这个非常的专业,我们可以举一个例子来简单说明。
比如现在有一个需求:我要吃一个大饼卷大葱。
如果用面向过程的语言实现:
那么就需要自己和面,做大饼,洗葱,切葱,再用饼将葱卷起来。简单理解就是所有的步骤都需要自己实现。
如果用面向对象的语言实现:
我直接找一个能做大饼卷大葱的人,具体你怎么做的我不管,我找到你,你把东西给我就可以了。只注重结果。
其中,面向过程语言中最经典、最重要的就是C语言。其他的Fortran、Basic 和 Pascal 语言基本上已经很少有人使用了。
从 20 世纪 80 年代开始又产生了另外一种“以面向对象”为思想的语言,其中最重要、最复杂的就是 C++。C++ 从易用性和安全性两个方面对C语言进行了升级。C++ 是一种较复杂、难学的语言,但是一旦学会了则非常有用。当C和C++都研究很透彻的话,一般都会成为业界大牛。
因为 C++ 太复杂,所以后来就对 C++ 进行了改装,产生了很多其他高级语言, Java,C#,python等。
到目前为止,Java 语言是现在最流行的语言之一。C# 则是微软公司看 Java 很流行而写的一个与 Java 语法相似的语言。而Pyhton语言,因为他语法非常简洁,开发周期短,也是现在越来越火的一门语言。
学编程又没基础最好的办法就是试试,基础是好学的,入门后才是难。既然知道自己没基础就要在开始接受自己的平庸,出错都是正常的,坚持练习才是王道。
先来个各语言的简要概括:
Java,服务器端最好的编程语言
C++,最通用的编程语言
C,迄今为止,最值得信任的编程语言
Python,AI(人工智能)、机器学习方向最佳的编程语言
JavaScript,客户端最常用的脚本语言
C#,微软最强有力的面向对象编程语言
Swift,IOS 端最高效的编程语言
GO(Golang),可扩展的编程语言,谷歌出品
PHP,世界上最好的编程语言,不,最好用的 Web 编程语言
Ruby,数据科学方面最可靠的编程语言
技术本身无优劣,应当根据特定场景下适合不适合来选择和看待。打个比喻,产品和需求是脚,技术是鞋子。但,不可否认的是,不同的语言,在你择业时,薪水起点是不同的。
我们做事一定要有目的,先想清楚自己学编程是为了什么?
单纯出于好奇、感兴趣?为了搞钱?想多门手艺、提高工作效率?想开拓视野?想创业做自己的产品?还是只是碰巧选了计算机专业呢?…
说点实在的大多数朋友学编程还是为了找工作。别扯什么远大抱负,先填饱肚子才能做事情
这两个语言学哪个都行java、python。
如果有很多顾虑,想要学习周期短转行做开发的话,python在国外很火,月月上榜第一,易学度对于转行和非计算机专业的朋友算是比较友好的了,web开发、大数据开发、数据分析、自动化运维、游戏开发、桌面软件、爬虫,还有人工智能这个学历要求高些
标题往期干货文章:
2022年java学习路线,自学怎么才能脱颖而出?
大数据开发学习路线(非常详细)
怎么学习前端开发?求推荐学习路线?
2022年最新软件测试学习路线