大家好,我是二哥呀。
我看朋友圈,有些地方已经开学了哈,我们这边推迟到了9月15号以后。那对于大一新生/准大一新生来说,该如何选择编程语言就是个头大的问题,因为谁都怕选择错了呀。
主流的大学一般都会在大一上半学期开设C语言这门课,但C语言是面向过程的,应用领域比较窄,以后工作后用到C语言的可能性不大。像Java啊、Python啊、C++啊,是面向对象的,应用领域更广泛,以后也更容易找到工作。
那到底还要不要学习C语言了呢?那到底是选择Java呢?还是Python呢?还是C++呢?
还有前端的JavaScript,新兴的Go语言,天下第一的PHP?
麻了麻了。
二哥作为一名18岁却拥有1年编程经验的老学长,奔着为人民服务的态度,我就把几大编程语言拉倒了一个群里,给他们了一个勇于表达自己的机会。
C语言
大家好,我是C语言。
作为开场演员,我需要大家更多的掌声,快。
我是由贝尔实验室的DennisRitchie在年~年间发明创造的,瞧,就他——你们眼中的C语言之父。
父亲是这样评价我的:“古怪的、有缺陷的,但同时也是一个巨大的成功。”
的确,我的指针不知道劝退了多少初学者,但如果有幸迈过去这一关,可以说潜力无限。
那为什么我还能获得如此大的成功呢?
第一,我和Unix操作系统关系密切。
大部分Unix内核,以及所有支撑工具和函数库都是用我来编写的。20世纪70年代至80年代,Unix风靡于各大高校,许多人开始接触到我,并且深深地爱上了我。
以至于后来几乎所有的操作系统都用到了我,比如说Windows、Linux、macOS等等。
第二,小而美是我的优点。
我非常的简洁,几乎没有任何冗余。以至于我的库函数,嗯,都少得可怜。
这有利有弊,有利的是,上手难度几乎为0,除了指针难以被新手控制意外,其他的基础语法都很容易上手。
与此同时,由于库函数的缺失,导致新手在开发任何一块小程序的时候都必须得亲力亲为。
很多编程语言都受到了我的影响,比如说Java、C++、C#、Python、Go等等。
《指环王》里有这样一句话:“oneringtothemall”,可以把ring换成language,这个language就是我,恐怕没有人会不同意。
但我也必须得承认,如果大学只学我这一门编程语言,毕业后的就业形势确实不容乐观,因为你们当中的大多数人,都不会从事嵌入式开发和硬件驱动开发。
当然了,以后嵌入式会不会也火起来,也不一定,比如说,在眼镜里植入一个芯片,让镜片变得更轻更薄更智能,就只能用我来搞定了。总不能再装个JDK吧,哈哈哈。
最后我想说的是,如果你想成为特别牛逼的程序员,一定要对计算机原理、编译原理有所了解,那么我更接近底层,显然是绕不开的。
像CSAPP这本经典书,例子就是用我编写的。
大家懂我了吗?
C++
大家好,我是C++,对,比C多了两个+号,意味着我就是C语言的增强版本。
20世纪80年代,比雅尼·斯特劳斯特鲁普博士在贝尔实验室工作期间发明并创造了我。瞧,就他——你们眼中的C++之父。
从诞生之初,我就一直不停地增长,添加了诸多的新特性:
虚函数运算符重载多继承标准模板库异常处理运行时类型信息命名空间
我必须得承认,我不适合作为第一门编程语言来入门,除非你极具天赋,否则你可能会因为我“从入门到放弃”的。在学习我之前,必须得搞一波C语言。
如果你想以后开发高性能的客户端或者游戏服务器,建议学我。
Java
大家好,我是Java。
一开始,我叫Oak,年,我就由詹姆斯高斯林等人创造发明了,算是雏形吧。瞧,就他——你们眼中的Java之父。
说起来,也挺有意思的。我当初瞄准的是智能家电这块,也打算搞嵌入式呢,父亲曾把我起名为C++++—,哈哈哈。直到年,我才正式改名为Java。
我的优势主要有四点:
第一就是学习资料丰富,几乎遍地都是,这就极大地降低了学习的成本。
就连培训班,为了品牌的宣传,都忍痛割爱把视频教程开源到B站上了,直接就能白嫖,可以说是省了一大笔培训费,哈哈哈哈。
GitHub上这份星标+的《Java程序员进阶之路》不错啊,顺带推荐一把。