学了十几种编程语言后,我终于悟了!

大家好,我是程序员鱼皮。

16 ~ 24 年,算下来我学编程 8 年多了,这期间我学过十几种编程语言,比如 C、C++、Java、Python、JavaScript、Go、PHP、C#、SQL、Scala 等。

这么一看,目前排名前 10 的语言除了 Fortran 没接触过外,别的语言或多或少都写过点儿东西。

Visual Basic 是高中考计算机就学过的了,那会儿我还是计算机课代表来着,掌握着班里电脑的使用权哈哈哈。

学过这么多语言,乍一听好像挺厉害的,但事实上,学过的语言很多,熟练的就那么几个。很多语言学完之后,不写就忘了,就好像从来没有学习过一样。

那我为什么要学这么多编程语言?是怎么学习的?学了这么多语言对我有哪些好处和坏处?现在我们到底应不应该学多门语言呢?

下面分享一下。

为什么学这么多编程语言?

回顾我学语言的过程,无非就是四个原因:感兴趣、学校让学、找工作混饭吃、还有就是项目要用。

老实说,现在计算机专业的同学,光跟着学校学,基本就会好几种语言了吧。

先说兴趣,我在高中时就很想做自己的网站,只不过那会儿是用什么 Front Page,Dreamweaver 拖拖拽拽就搞定了(应该没有多少同学用过吧)。所以上了大学,我第一个自学的就是前端,对应的语言就是 HTML、CSS、JavaScript 三件套,当时的目标就是加入学校的网站建设工作室,能来点儿外快。

那会儿真是青涩啊,手里拿了本 HTML 5 入门教程,感觉拥有了整个世界。现在回想起来,只觉得头顶凉飕飕的~

再说说学校教的语言,当时我们刚入学第一个接触的是 C 语言,现在好像很多学校改成了直接讲 C++?

可惜的是,我当时并不开窍,心思也不在学习上,所以学的一塌糊涂,最后写了个能在小黑框里运行的图书管理系统就毕业了。

之后我开始学 C++,因为感觉跟学校课堂学 C 语言时没学到啥(也可能是我比较菜),所以这次我选择上网自学(比如看圆脸妹妹的 C++ 课堂)。大概学了一个月左右,写了一点简单的桌面程序,我就放弃 C++ 了,转战 Java。一方面是听说 Java 好找工作,好混饭吃;另外一方面当时我可能对学习新语言有点上瘾,就想着多尝试尝试。

刚开始学 Java 就是学基础语法,直到学完我都不知道为啥 Java 好找工作,感觉能做的事和 C++ 差不多。直到后来学了企业 Java 开发,也就是 Java Web,接触了 Spring 之类的框架后,我才感叹到:"Java 真香!"

于是我决定在后端开发这条路上坚持走下去,后来也去学了 SQL(结构化数据查询语言)、Scala 等编程语言。SQL 可是后端程序员的基本功,大家可以用我做的 免费 SQL 刷题网站 多练练。

然后我本来以为今后再也不会用 C++ 了,但听说算法竞赛、保研机试啥的都是它,所以后来就拿 C++ 刷了几百道 OJ 题目。还有个戏剧性的事,打 s 我也没想到最后我的毕设还是拿 C++ 做了个图像处理程序,当时花了一些时间专门学习 OpenCV。

再聊聊其他语言,基本都是有项目需求的时候才会学习。比如我大一学 Python,只是为了完成一个数据抓取 + 可视化项目,听说用 Python 简单、做的快,就学了几天,对照着 Demo 删删改改就搞定了;学 Golang 是因为当时在实验室搞区块链,有个框架是用的 Go 语言;学 C# 也是因为在实验室有个桌面端项目要用。后面项目用不到了,这些语言我也就慢慢陌生了。

对了,还有 PHP!有趣的是,我对 PHP 的印象其实发生了好几次转变。

大一的时候,听说它是世界上最好的语言,我就学了。当时因为也没怎么深入学习过别的编程语言,所以觉得 PHP 挺香的。但后来等前端和 Java 熟练一些,感受到前后端分离开发的优势后,我就有点对 PHP 嗤之以鼻了。

由于性能和安全问题,再加上竞争对手的崛起,近几年来 PHP 也一直呈现衰落之势。目前热度排名 16 位,甚至已经被新兴语言 Rust 超越:

但最近,我却偶尔会神神叨叨一句:"PHP 是世界上最好的语言!"

为啥呢?因为对于需要 服务端渲染 的网页开发场景,PHP 的开发效率的确是高的。

最近我们在做 面试刷题网站 - 面试鸭 的网页端,就特地使用了服务端渲染技术:

所谓的服务端渲染,就是在服务器获取到数据并且拼接好页面后,再返回给浏览器,可以提高页面的加载速度,并且非常有利于 SEO!

但我个人体验下来,开发服务端渲染网站的成本比普通的网站要高很多,我们用的是前端的 Next.js 框架,要专门区分服务端和客户端组件。这个时候,PHP 就乐了:我天然支持服务端渲染!

要不说 PHP 是曾经开发中小型网站的王者呢,知名的博客站点 WordPress 就是使用 PHP 实现。

所以到底什么语言、什么框架最好? 还是要看具体的需求,语言和框架都只是工具。

像华为最近新出的仓颉语言,别的不说,肯定是未来开发华为应用的首选对吧~

学太多编程语言的烦恼

看到这,肯定有同学说了:会这么多编程语言,那不是无所不能,肯定很爽吧!

但事实上,编程语言学多了,也让我有了一定的烦恼。

因为每种语言在数据类型、语法和 API 上都有一定的差别,所以会的语言多了后,我时常陷入混乱,把语法给记混。尤其是学 Go 语言的时候,这玩意和其他语言的语法差别贼大,简直让我怀疑人生,大家可以感受一下:

我刚开始做全栈开发的时候,又要写 Java、又要写 JavaScript,所以就老是搞混,在 Java 中写 JavaScript 的函数,在 JavaScript 中 new Java 的对象。再加上我白天工作用 Mac 电脑,晚上下班用 Windows,开发工具的快捷键也不一样,感觉像是带了痛苦面具。

所以有的时候,我真的很想专注地去写一门语言。

但是,学了这么多语言后,我变秃了,也的确变强了!

所以下面分享下学习多门语言的好处。

学多门编程语言的好处

首先,我发现自己摸清了学习语言的套路,无非就是数据类型、流程控制、函数对象和一些特性,因此学新的语言变得越来越轻松快速。比如我之前没有学过 Kotlin,但后来工作中要让我重构 Kotlin 的代码,我没花额外时间去学习,也基本也都能看懂。因为说实在的,绝大多数代码都是 if ... else ... for 组成的业务逻辑。

我学到了更多的设计思想、了解了每种语言更适合做什么,比如什么是解释型语言和编译型语言,有什么区别,又该如何选择。

我看代码时再也不用被语言所束缚,基本啥都能看懂,大家在交流编程语言时,我也有了更多的发言权,啥都能聊两句,也不用再因为争论 "什么是最好的编程语言" 而跟别人打架了。

此外,我在开发时有了更多的选择。比如处理 Excel 表格,如果我只会 Java,那只能用 Java 相关类库,不够方便;但因为我也会 Python,就有了更多类库可以选择,几行代码就搞定了,效率拉满。

最重要的,也正是学了更多的语言后,我才找到了最适合自己的语言,从前端转到了 Java 后端。

建议

看到这儿,大家觉得有必要学多门编程语言么?

我觉得,技多不压身,会的语言肯定是越多越好。

虽说可能会有点混乱,但是现在编辑器的语法校验功能都很强大了,所以哪怕语法输错了,也能很快纠正过来,起码比你从零开始学的成本要低。还有一种好方法,干脆就别去记忆语法,熟能生巧,哪怕忘了也可以通过搜索引擎、看文档、问 AI 等方式快速找到正确的写法。

不过千万要记住:无论你想学多少种语言,都要先重点学好一门!一门通门门通,深入理解一门语言后,再学别的就很简单了,很多语法概念、编程经验、调试技巧都是相通的。另一方面是时间有限,把所有语言都学的很好是不现实的,对于找工作来说性价比也是不高的。毕竟想学好编程,语言只是最基础的一部分,还有太多技术、工具、方法、思想要学了。如果什么语言都草草地去学一下语法基础、浅尝辄止,那就相当于是在反复横跳,到头来还是不会做项目,找工作时也会吃亏。

对于刚选择计算机专业或者刚入门的同学,可以多尝试学习不同的编程语言,前端、Python、Java、C++ 都是适合的,尽快找到自己真正感兴趣的语言和方向,之后就一条路坚持往前走就好。

大家最近都在学什么编程语言?最喜欢的编程语言是什么呢?欢迎评论区留言交流~

更多

💻 编程学习交流:编程导航

📃 简历快速制作:老鱼简历

✏️ 面试刷题神器:面试鸭

相关推荐
极创信息16 分钟前
信创系统认证服务怎么做?从适配到验收全流程指南
java·大数据·运维·tomcat·健康医疗
格鸰爱童话23 分钟前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习
白宇横流学长42 分钟前
停车场管理系统的设计与实现
java
Flittly42 分钟前
【SpringAIAlibaba新手村系列】(18)Agent 智能体与今日菜单应用
java·spring boot·agent
木井巳1 小时前
【递归算法】目标和
java·算法·leetcode·决策树·深度优先
亦暖筑序1 小时前
手写 Spring AI Agent:让大模型自主规划任务,ReAct 模式全流程拆解
java·人工智能·spring
敖正炀1 小时前
ReentrantLock 与 synchronized对比
java
程序员鱼皮1 小时前
SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程
ai·程序员·开源·编程·ai编程
XiYang-DING1 小时前
【Java】二叉搜索树(BST)
java·开发语言·python
weixin_437957611 小时前
Mysql安装不成功
java