一、C语言
C语言是由贝尔实验室的 Dennis Ritchie 在 1969 年~ 1973 年间发明创造的,被誉为“C语言之父”。
“父亲”是这样评价C语言的:“古怪的、有缺陷的,但同时也是一个巨大的成功。”
的确,C语言的指针不知道劝退了多少初学者,但如果有幸迈过去这一关,可以说潜力无限。
那为什么C语言还能获得如此大的成功呢?
第一,C语言和 Unix 操作系统关系密切。
大部分 Unix 内核,以及所有支撑工具和函数库都是用C语言来编写的。20 世纪 70 年代至 80 年代,Unix 风靡于各大高校,许多人开始接触到C语言,并且深深地爱上了C语言。
以至于后来几乎所有的操作系统都用到了C语言,比如说 Windows、Linux、macOS 等等。
第二,小而美是C语言的优点。
C语言非常的简洁,几乎没有任何冗余。以至于C语言的库函数,嗯,都少得可怜。
这有利有弊,有利的是,上手难度几乎为 0,除了指针难以被新手控制意外,其他的基础语法都很容易上手。
与此同时,由于库函数的缺失,导致新手在开发任何一块小程序的时候都必须得亲力亲为。
很多编程语言都受到了C语言的影响,比如说 Java、C++、C#、Python、Go 等等。
《指环王》里有这样一句话:“one ring to them all”,可以把 ring 换成 language,这个 language 就是C语言,恐怕没有人会不同意。
但C语言也必须得承认,如果大学只学我这一门编程语言,毕业后的就业形势确实不容乐观,因为你们当中的大多数人,都不会从事嵌入式开发和硬件驱动开发。
当然了,以后嵌入式会不会也火起来,也不一定,比如说,在眼镜里植入一个芯片,让镜片变得更轻更薄更智能,就只能用C语言来搞定了。总不能再装个 JDK 吧,哈哈哈。
最后想说的是,如果你想成为特别牛逼的程序员,一定要对计算机原理、编译原理有所了解,那么C语言更接近底层,显然是绕不开的。
像 CSAPP 这本经典书,例子就是用C语言编写的。
大家懂C语言了吗?
二、C++
C++,对,比 C 多了两个+号,意味着C++就是 C语言的增强版本。
20 世纪 80 年代,比雅尼·斯特劳斯特鲁普博士在贝尔实验室工作期间发明并创造了C++,从诞生之初,C++就一直不停地增长,添加了诸多的新特性:
虚函数、运算符重载、多继承、标准模板库、异常处理、运行时类型信息、命名空间
但必须得承认,C++不适合作为第一门编程语言来入门,除非你极具天赋,否则你可能会因为C++“从入门到放弃”的。在学习C++之前,必须得搞一波 C 语言。
如果你想以后开发高性能的客户端或者游戏服务器,建议学C++。
三、Java
Java一开始叫 Oak,1990 年,由詹姆斯高斯林等人创造发明了,算是雏形吧
说起来,也挺有意思的。Java当初瞄准的是智能家电这块,也打算搞嵌入式呢,发明人曾把Java起名为 C++ ++ ,哈哈哈,直到 1995 年,才正式改名为 Java。
Java的优势主要有四点:
第一就是学习资料丰富,几乎遍地都是,这就极大地降低了学习的成本。
就连培训班,为了品牌的宣传,都忍痛割爱把视频教程开源到 B 站上了,直接就能白嫖,可以说是省了一大笔培训费,哈哈哈哈。
第二就是就业前景乐观,虽然Java现在已经很卷了,但是需求量仍然很大,因为Java的生态好,车轮子多,能节省开发成本,不管是大厂,还是小厂,都比较钟爱。
像阿里、美团,都是Java的重度用户。
如果要说哪门语言在国内找工作最吃香?除了Java,那绝对没有第二门编程语言出来瞎逼逼。
像企业级 Web 开发、大数据分析处理、微服务、云计算、移动开发都是Java的主战场。还有图像处理、桌面应用开发、分布式系统开发、嵌入式等等,Java也都能自由切入。
第三就是Java搞出来了一个 JVM,可以跨平台,你只需要敲一次代码,编译好,就能在所有平台上运行。
第四就是Java把指针这块给砍掉了,这对新手来说,简直就是福音。你只管折腾,内存什么的Java来帮你搞定。当然了,也不能太瞎糊弄,OOM 也是会发生的。一旦发生,找起来问题就也挺头大的。
综合实力来看,Java应该是编程语言中的大王。
四、Python
Python由吉多·范罗苏姆发明创造,第一版发行于 1991 年。
Python的优势就在于简单易上手。
但讲真,Python的两大核心应用领域,比如说人工智能、数据分析,对学历都是有比较高的要求的。
还有爬虫这块,如果作为学习,比如说去爬爬网易云音乐下的评论,豆瓣上的高分电影,我觉得还可以。
但爬虫这块说实话,有风险。尤其是一些需要付费的内容,或者比较私密的数据,尽量不要去爬。
如果你是一名编程爱好者,那么推荐你来学Python,写一些自动化的测试脚本了,觉得蛮 OK 的,因为学习曲线比较平缓。
如果你想以Python为生,那么尽最大可能提高你的学历,很关键。
五、C#
C#,似乎比 c++ 又多了两个 ++,是由C和C++派生出来的面向对象的编程语言。由微软安德斯·海尔斯伯格主持开发,2000 年首次发布,就是为了取代 Java 的。
怎么评价 C#?
前后端的事都可以办,但是,主要是针对 Windows,跨平台性差。
当然了,最大的问题还是封闭性吧,再加上多次推倒重来的反复摩擦,铁粉都离 C#而去了,伤心。
国内的职位还有一定数量,但大多集中在工具定制开发、游戏开发(unity 3d)等方面。
六、PHP
PHP,1995 年由拉斯姆斯·勒多夫开发。
曾几何时,PHP有多火,年轻一代的同学都想象不到。2000 年到 2010 年,可以说是PHP最辉煌的十年,几乎每一家中小型公司的后台都是用PHP开发的。
你们知道吗?曾经,PHP才是 BAT 最主流的编程语言。现如今,他们都在冷落PHP。。。。。。
但不管怎么说,不管是开发传统网站还是前后端分离的网站,还是开发小程序和App的后端接口,PHP绝对是开发速度最快的语言,没有之一。
当然了,这也可能是PHP被人诟病的地方,入门简单意味着门槛低,很多开发者在使用PHP的时候就不那么注重代码规范,只管代码跑起来完事。
七、JavaScript
JavaScript由布兰登·艾克在1995年5月仅花了十天时间就把JavaScript的原型设计出来了。
一开始,JavaScript叫 Mocha,后来网景公司为了让JavaScript蹭点 Java 的“热度”,就把JavaScript临时改名为了 JavaScript。
以至于后来的很多初学者还以为JavaScript是 Java 的脚本语言呢,害!
世界上的大多数网站都是JavaScript的使用者,主流的浏览器(Chrome、IE、Firefox、Safari)都支持JavaScript。
对于前端程序员来说,JavaScript、HTML、CSS 是三巨头,缺一不可,可以说是相得益彰吧。
以前,JavaScript仅限于客户端,也就是浏览器这边,随着 Node 的横空出世,JavaScript竟然可以跨界到服务器端,着实爽了一把。
可能有人诋毁JavaScript,说JavaScript烂,屎山很多,但只要有浏览器在的那一天,JavaScript就会拥有众多的佣歹。