0

❤️准大一,到底选哪门编程语言?

 2 years ago
source link: http://www.itwanger.com/java/2021/09/06/biancheng.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

❤️准大一,到底选哪门编程语言?

2021/09/06

我看朋友圈,有些地方已经开学了哈,我们这边推迟到了 9 月 15 号以后。那对于大一新生/准大一新生来说,该如何选择编程语言就是个头大的问题,因为谁都怕选择错了呀。

大家好,我是二哥呀。

我看朋友圈,有些地方已经开学了哈,我们这边推迟到了 9 月 15 号以后。那对于大一新生/准大一新生来说,该如何选择编程语言就是个头大的问题,因为谁都怕选择错了呀。

197fdc43267f8149366001d70f7d3868.png

主流的大学一般都会在大一上半学期开设 C语言这门课,但 C语言是面向过程的,应用领域比较窄,以后工作后用到 C语言的可能性不大。像 Java 啊、Python 啊、C++啊,是面向对象的,应用领域更广泛,以后也更容易找到工作。

那到底还要不要学习 C语言了呢?那到底是选择 Java 呢?还是 Python 呢?还是 C++ 呢?

还有前端的 JavaScript,新兴的 Go 语言,天下第一的 PHP?

麻了麻了。

二哥作为一名 18 岁却拥有 13 年编程经验的老学长,奔着为人民服务的态度,我就把几大编程语言拉倒了一个群里,给他们了一个勇于表达自己的机会。

大家好,我是 C语言。

作为开场演员,我需要大家更多的掌声,快。

我是由贝尔实验室的 Dennis Ritchie 在 1969 年~ 1973 年间发明创造的,瞧,就他——你们眼中的 C语言之父。

da5abfff3c9d0265bdbafefb80df8b0e.png

父亲是这样评价我的:“古怪的、有缺陷的,但同时也是一个巨大的成功。”

的确,我的指针不知道劝退了多少初学者,但如果有幸迈过去这一关,可以说潜力无限。

那为什么我还能获得如此大的成功呢?

第一,我和 Unix 操作系统关系密切。

大部分 Unix 内核,以及所有支撑工具和函数库都是用我来编写的。20 世纪 70 年代至 80 年代,Unix 风靡于各大高校,许多人开始接触到我,并且深深地爱上了我。

以至于后来几乎所有的操作系统都用到了我,比如说 Windows、Linux、macOS 等等。

第二,小而美是我的优点。

我非常的简洁,几乎没有任何冗余。以至于我的库函数,嗯,都少得可怜。

这有利有弊,有利的是,上手难度几乎为 0,除了指针难以被新手控制意外,其他的基础语法都很容易上手。

与此同时,由于库函数的缺失,导致新手在开发任何一块小程序的时候都必须得亲力亲为。

很多编程语言都受到了我的影响,比如说 Java、C++、C#、Python、Go 等等。

《指环王》里有这样一句话:“one ring to them all”,可以把 ring 换成 language,这个 language 就是我,恐怕没有人会不同意。

但我也必须得承认,如果大学只学我这一门编程语言,毕业后的就业形势确实不容乐观,因为你们当中的大多数人,都不会从事嵌入式开发和硬件驱动开发。

当然了,以后嵌入式会不会也火起来,也不一定,比如说,在眼镜里植入一个芯片,让镜片变得更轻更薄更智能,就只能用我来搞定了。总不能再装个 JDK 吧,哈哈哈。

最后我想说的是,如果你想成为特别牛逼的程序员,一定要对计算机原理、编译原理有所了解,那么我更接近底层,显然是绕不开的。

像 CSAPP 这本经典书,例子就是用我编写的。

大家懂我了吗?

大家好,我是 C++,对,比 C 多了两个+号,意味着我就是 C语言的增强版本。

20 世纪 80 年代,比雅尼·斯特劳斯特鲁普博士在贝尔实验室工作期间发明并创造了我。瞧,就他——你们眼中的 C++之父。

7e1d2f33e884e0080ac9e39d89ba71f8.png

从诞生之初,我就一直不停地增长,添加了诸多的新特性:

  • 运算符重载
  • 标准模板库
  • 运行时类型信息

我必须得承认,我不适合作为第一门编程语言来入门,除非你极具天赋,否则你可能会因为我“从入门到放弃”的。在学习我之前,必须得搞一波 C 语言。

如果你想以后开发高性能的客户端或者游戏服务器,建议学我。

大家好,我是 Java。

一开始,我叫 Oak,1990 年,我就由詹姆斯高斯林等人创造发明了,算是雏形吧。瞧,就他——你们眼中的 Java 之父。

584e07179f783af256e844cc77180b87.png

说起来,也挺有意思的。我当初瞄准的是智能家电这块,也打算搞嵌入式呢,父亲曾把我起名为 C++ ++ —,哈哈哈。直到 1995 年,我才正式改名为 Java。

我的优势主要有四点:

第一就是学习资料丰富,几乎遍地都是,这就极大地降低了学习的成本。

就连培训班,为了品牌的宣传,都忍痛割爱把视频教程开源到 B 站上了,直接就能白嫖,可以说是省了一大笔培训费,哈哈哈哈。

GitHub 上这份星标 200+ 的《Java 程序员进阶之路》不错啊,顺带推荐一把

https://github.com/itwanger/toBeBetterJavaer

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rKJ6buY546L5LqM,size_20,color_FFFFFF,t_70,g_se,x_16

第二就是就业前景乐观,虽然我现在已经很卷了,但是需求量仍然很大,因为我的生态好,车轮子多,能节省开发成本,不管是大厂,还是小厂,都比较钟爱。

像阿里、美团,都是我的重度用户。

如果要说哪门语言在国内找工作最吃香?

如果我喊是我,那绝对没有第二门编程语言出来瞎逼逼。

像企业级 Web 开发、大数据分析处理、微服务、云计算、移动开发都是我的主战场。还有图像处理、桌面应用开发、分布式系统开发、嵌入式等等,我也都能自由切入。

第三就是我搞出来了一个 JVM,可以跨平台,你只需要敲一次代码,编译好,就能在所有平台上运行。

第四就是我把指针这块给砍掉了,这对新手来说,简直就是福音。你只管折腾,内存什么的我来帮你搞定。当然了,也不能太瞎糊弄,OOM 也是会发生的。一旦发生,找起来问题就也挺头大的。

综合实力来看,我应该是编程语言中的大王。

Python

大家好,我是 Python。

由吉多·范罗苏姆发明创造,第一版发行于 1991 年。瞧,就他——你们眼中的 Python 之父。

26f03394d9604ca94415f3f264ec0f60.png

我的优势就在于简单易上手。

但讲真,我的两大核心应用领域,比如说人工智能、数据分析,对学历都是有比较高的要求的。

还有爬虫这块,如果作为学习,比如说去爬爬网易云音乐下的评论,豆瓣上的高分电影,我觉得还可以。

但爬虫这块说实话,有风险。尤其是一些需要付费的内容,或者比较私密的数据,尽量不要去爬。

我比较疑惑的一点是,有些学校,明明牌子不是很响亮,却特别喜欢拿我来给学生讲。

恐怕以后的就业真的是大问题。

如果你是一名编程爱好者,那么推荐你来学我,写一些自动化的测试脚本了,我觉得蛮 OK 的,因为学习曲线比较平缓。

如果你想以我为生,那么尽最大可能提高你的学历,很关键。

大家好,我是 Go,也可以叫我 Golang。

对了,我爸是 Google,背靠大树好乘凉啊。主创人员主要有三个,都是计算机领域的宗师级大牛:Rob Pike、Ken Thompson 和 Robert Griesemer。

6c6f40f833a0331e381ebdcc32360ded.png

像 docker、k8s 都是用我编写的。

我敢这么拍着胸脯说,我就是目前发展最迅猛的编程语言了,没有之一,国内很多大厂都开始张开双臂拥抱我了。

国内的字节就是重度用户。

为什么大厂会青睐我呢?

因为第一,微服务和云原生已经成为一种趋势,而我作为一款高性能的编译型语言,非常适合承载落地微服务的实现,又容易生成跨平台的可执行文件,相比于其他语言,也更容易在 docker 上部署。

第二,我兼具了 Java 和 C语言的量大优势,比如说 Java 的垃圾回收,但 Java 需要 JVM 才能运行,我可以像 C语言一样直接编译运行。

第三,我是用 Goroutine(协程)实现的并发,避免了上下文切换的额外耗费,兼顾了多线程的优点,简化了高并发程序的复杂。

但我也有自身的缺陷,比如说,不支持多态,没有注解,缺少框架等等。

C#

大家好,我是 C#,似乎比 c++ 又多了两个 ++。

对了,我爸是微软,由C和C++派生出来的面向对象的编程语言。由安德斯·海尔斯伯格主持开发,2000 年首次发布,我爸的野心也很大,就是为了取代 Java 的。

b1ebfdd7e4e0f13aea80fd925aabd93b.png

怎么评价我自己呢?

前后端的事都可以办,但是,主要是针对 Windows,跨平台性差。

当然了,最大的问题还是封闭性吧,再加上多次推倒重来的反复摩擦,铁粉都离我而去了,伤心。

国内的职位还有一定数量,但大多集中在工具定制开发、游戏开发(unity 3d)等方面。

大家好,我是 PHP。

1995 年由拉斯姆斯·勒多夫开发,瞧,就他——你们眼中的 PHP 之父。

e22647209c12671d5f2ed3d2faa147d5.png

对,“我曾是世界上最好的编程语言”。

曾几何时,我有多火,你们这些年轻一代的同学都想象不到。2000 年到 2010 年,可以说是我最辉煌的十年,几乎每一家中小型公司的后台都是用我开发的。

你们知道吗?曾经,我才是 BAT 最主流的编程语言。现如今,他们都在冷落我。。。。。。

从神坛上跌落的我,有多伤心难过,你们恐怕也是难以想象。

但不管怎么说,不管是开发传统网站还是前后端分离的网站,还是开发小程序和App的后端接口,我绝对是开发速度最快的语言,没有之一。

当然了,这也可能是我被人诟病的地方,入门简单意味着门槛低,很多开发者在使用我的时候就不那么注重代码规范,只管代码跑起来完事。

害,总之,我。。。。。。哭了。。。。。。

JavaScript

大家好,我是 JavaScript,作为压轴的表演嘉宾,你们能想象到,我的分量有多重。

布兰登·艾克在1995年5月仅花了十天时间就把我的原型设计出来了。woc,真的牛逼坏了!瞧,就他——你们眼中的 JavaScript 之父。

c16e7359e2eec693ff85e2ab1a72dcc1.png

一开始,我叫 Mocha,后来网景公司为了让我蹭点 Java 的“热度”,就把我临时改名为了 JavaScript

以至于后来的很多初学者还以为我是 Java 的脚本语言呢,害!

世界上的大多数网站都是我的使用者,主流的浏览器(ChromeIEFirefoxSafari)都支持我。

讲真,我也没想到我会发展得这么好。

对于前端程序员来说,我、HTML、CSS 是三巨头,缺一不可,我们可以说是相得益彰吧。

以前,我仅限于客户端,也就是浏览器这边,随着 Node 的横空出世,我竟然可以跨界到服务器端,着实爽了一把。

可能有人诋毁我,说我烂,屎山很多,但只要有浏览器在的那一天,我就会拥有众多的佣歹。

好了,就到这吧,这几个家伙 BB 了这么多,是时候安静一会了。

作为群主,二哥就来简单总结一下吧。

编程语言没有优劣之分,只有适不适合。

学习编程,千万不要贪多,既想学这个,又想学那个,可能到最后,哪一个也不精通,不,精通这个词可能过了,哪一个都不熟练。

也千万不要有这种想法,这个简单点,我学这个,学了一段时间后,发现有点难,觉得另外一个容易,换另外一个。那可真的是糟蹋了自己的大学时光啊。

哪怕只是大一,时间也是宝贵的。

如果你想走开发这条路,考虑到招聘岗位和学习成本,第一门编程语言首选 C 语言(科班)、Java(后端)、JavaScript(前端)。

其次,可以选择 C++、Go、Python、C#。

当然了,对于编程语言的学习来说,我是极度不推荐新手看书学习的,因为书要考虑到严谨性,很难兼顾趣味性。

这就导致很多初学者还没入门就劝退了。

我推荐前期跟着视频入门,然后不断 coding 加深理解,最后再看书深入浅出。

完美的节奏,perfect。

有想要不同编程语言的学习路线和学习资料的吗?可以在评论区里喊出来。

一枚沉默但有趣的程序员
chenmowanger_430.jpg
微信扫描二维码,关注我的公众号,回复“资源”领取海量学习资料

(转载本站文章请注明作者和出处 沉默王二

Show Disqus Comments

Related Issues not found

Please contact @qinggee to initialize the comment


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK