那些年,我写过的编程语言

毕业到现在,三年多的时间里,接触过很多编程语言,这篇文章简单来聊一聊,最后也有自己的一些思考和看法,Enjoy!

之前发过一个朋友圈,简单罗列了一下自己之前写过的语言,感觉主流的编程语言自己都接触过了,今天就来详细谈一谈。

img

一些读者都知道,我是在大学期间自学编程,我的专业是国际经济与贸易,然后看到本校的计算机专业课程,他们最开始学习的语言就是 C,于是便开始接触到了 C 语言。

但那时候我根本没有任何计算机的底子,C 又偏偏是一个很难的语言,对计算机基础的要求比较高,所以是浅尝辄止,只是把《C Primer Plus》这本书简单学习了一遍,也没有任何的项目实践和深入学习。

然后到了大三的时候,迫于找实习和工作的压力,从那时起开始系统性的学习 Java 了。

至于为什么选择 Java,稍微工作几年的同学都知道,Java 当时还是挺火的,语法容易学,对计算机基础的要求并不是特别高,然后培训班铺天盖地的都是 Java 的课程,网上的 Java 教学视频、学习资源等也有很多。

当时学 Java,人手一个电商/博客项目,有点像现在,学习数据库的,都得学习 CMU-15445、MIT-6824,然后还要自己参与或者手撸一个数据库项目一样(只能说越来越卷了。。。)

当时写一些商城项目,前端页面也是自己写,所以学习了一些 Html/CSS 和 JavaScript 基础,搭配 Java 的 JSP,简单的页面就能自己撸出来了,当然现在估计都没人用 JSP 了。

大学毕业参加工作,第一份工作便顺理成章的找了 Java,毕竟其他的咱也不会。

工作有时候会遇到一些重复机械的活,于是当时就想能不能通过一些脚本,帮助自己提升工作效率。于是简单学习了 Python,写了一些小工具,例如自动生成 SQL 定义,提取数据库的数据转成 Excel,等等。

到了 2020 年中,大概毕业后一年的样子,业余的时间开始学 Go,Go的语法还是挺简单的,上手很快,rosedb 就是从那个时候开始的。

后来换了工作,找到的职位刚好是用 Go 的,所以便完成了从 Java 到 Go 的跨越,至此 Java 便不怎么接触了。用 Go 最开始也是写业务,然后转到了基础架构方向,用 Go 写了一段时间的数据库中间件。

然后就是接触到了分布式 KV 存储,公司的这个存储项目是用 C++ 写的,于是便开始学习了一些 C++,当然这个项目我参与并不是很多,然后就离职了,所以我对 C++只是很浅显的了解。

后来到了数据库行业做内核开发,开始用 C,于是便重操旧业,开始复习大学期间最开始接触的 C 语言。

最近,又因为工作的一些要求,开始学习 Rust,刚接触 Rust 的确不太适应,但是也能够感受到这门语言的强大和灵活。

于是总结一下,从最开始接触编程到现在,我已经写过 Html/CSS、JavaScript、Java、Python、Go、C++、C、Rust。

工作之后才发现,完全有可能根据工作的改变,而去学习并且切换到新的语言,这是无法避免的,所以还在学校的同学,不用去纠结自己到底应该学哪门编程语言,能够深入任何一门语言,以后再学习新的语言,都会非常的快。

这也是一些大厂面试,并不怎么看重语言的原因之一。

而对于工作之余,想要学习新的语言的同学,可以想想自己学习的目的是什么,例如你想要做什么样的产品,然后再据此去选择一门新的语言。

我之前也在 V2EX 上发表过类似的看法:

img

接触到多个语言,能够让自己不会成为一个语言控,能够比较清晰的认识到每个语言诞生的背景,以及它的适用场景,总之会更加包容的看待一些问题。

对于语言学习的经验,简单分享一下,如果你有明确的目标,这样学习肯定是最好的。比如你学一门新的语言,就是为了看懂公司的项目,那么可以一边看一边学,并且能够接一些小的需求,逐渐深入。

如果学一门语言并没有太明确的目的,只是为了兴趣,或者说给以后的自己多一个选择,那么可以找一个基础的教程,跟着敲代码,然后自己参与到项目中去。可以是自己折腾的项目,也可以是别人的开源项目,总之,实践起来才是最快的学习方法。

当然工作的这几年,接触了比较多的语言,有一个非常不好的方面,就是对大多数语言的认知都是浮于表面,没有更加深入的去学习。

最好的状态还是能够精通一两门,所以我后续希望能够在 Go 和 Rust 方向有更深入的理解。

最后再说一句,PHP 是世界上最好的语言(手动狗头)。