学了十几种编程语言后,我有哪些感受?_zls365365的博客-程序员秘密

技术标签: python  java  编程语言  人工智能  大数据  

学编程 5 年多了,我学过十几种编程语言,比如 C、C++、Java、Python、JavaScript、Go、PHP、C#、SQL、Scala 等。

8a39544d7bb173be9e77b0c15665a6bc.png

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

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

下面分享一下。

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

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

老实说,光跟着学校学,基本就会好几种语言了。

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

56dc1a618877dabb337a4b6fce3a6d82.png

再说说学校教的,首当其冲是 C 语言。不过很可惜,我学的一塌糊涂,最后写了个图书管理系统(其实就是个小黑框)就毕业了。

之后呢开始学 C++,因为感觉跟学校课堂学 C 语言时没学到啥,所以这次我选择上网自学(比如看圆脸妹妹的 C++ 课堂等)。大概学了一个月左右,写了一点简单的桌面程序。然后我就开始学 Java 了,因为听说 Java 好找工作,好混饭吃。

5fc992a6174c62dbe28d82acbb19de89.png

刚开始学 Java 就是学基础语法,直到学完我都不知道为啥 Java 好找工作,感觉能做的事和 C++ 差不多。直到后来学了企业 Java 开发,接触了 Spring 之类的框架。我才感叹到,Java 真香!于是我决定在后台开发这条路上坚持走下去,后来也学了 SQL(结构化数据查询语言)、Scala 等编程语言。

然后我本来以为今后再也不会用 C++ 了,但听说算法竞赛、保研机试啥的都是它,所以后来就拿 C++ 刷了几百道 OJ 题目,打死也没想到最后毕设还是拿这玩意做了个图像处理程序。

458fe5856e465481f9d5b8e8abab5f12.png

再聊聊其他语言。我大一学 Python,只是为了完成一个数据抓取 + 可视化项目,听说用 Python 简单、做的快,就学了几天,就搞定了;学 Golang 是因为当时在实验室搞区块链,有个框架是用的 Go 语言;学 C# 也是因为在实验室有个桌面端项目要用。

对了,还有 PHP,听说它是世界上最好的语言我就学了。不得不说,用 PHP 开发确实很爽,但很遗憾,如今大公司基本不用。

6331afa6f9b28a954608c8d8a18fd048.png

坏处

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

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

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

f67e02b439beb11a529fb62b690e30ce.png
Go 和 Java 语法对比

我在工作中,又要写 Java、又要写 JavaScript,所以就老是搞混,在 Java 中写 JavaScript 的函数,在 JavaScript 中 new Java 的对象。再加上我白天工作用 Mac,晚上下班用 windows,开发工具的快捷键也不一样,我真的要疯了!

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

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

f1c380bea7f5c4fd1eb0ffcfe3a00b4a.png

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

好处

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

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

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

d0f239b44f520f51027222c52aa08e22.png

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

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

建议

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

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

虽说可能会有点混乱,但是现在编辑器的语法校验功能都很强大了,所以哪怕语法输错了,也能很快纠正过来。还有一种方法就是,干脆就别去记忆语法,熟能生巧。

不过千万要记住,无论你想学多少种语言,都要先重点学好一门。一方面是深入理解一门语言后,再学别的就很简单了;另一方面是时间有限,把所有语言都学的很好是不现实的,毕竟编程领域中,语言只是一部分,还有太多技术、工具、方法、思想要学了。如果什么语言都草草地去学、浅尝辄止,那面试的时候一定会吃大亏!


-----------------------------------

需要进技术群交流的,请添加小编zls20210502

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zls365365/article/details/121782523

智能推荐

华为提前批笔试第二批2021-6-30_华为笔试题是不是就只有3道算法题_Huntermanwp的博客-程序员秘密

文章目录一、路线规划输入输出样例参考代码二、数组匹配输入输出样例参考代码三、逃出生天输入输出样例参考代码华为笔试都是三道算法题。以下代码没有A,仅供参考。一、路线规划某公司有M个园区,从0到M-1编号,已知2个园区的距离,描述如下:0 1 3,表示从0号园区到1号园区的距离是3(1到0号园区也是3),已知N段距离,未给出距离的则为不可达,现在有一个员工想从A区出发,走遍所有的园区,同一园区只能够经过一次,请计算该员工的最短距离。输入第一行:园区个数M,起始园区编号,已知距离个数N第二行到N行:第

Unity学习笔记——基础常用API(3)_Devil_MayCare的博客-程序员秘密

射线检测 //初始化一条向前的射线 Ray ray = new Ray(transform.position, transform.forward); //检测射线是否碰到物体 //bool isCollider = Physics.Raycast(ray); //射线检测 检测前方1米 //bool isCollider = Physics.Raycast(ray, 1); //检测射

金融工程_百度百科_weixin_34204057的博客-程序员秘密

金融工程_百度百科    金融工程(经济管理类术语)    编辑    金融工程,包括创新型金融工具与金融手段的设计、开发与实施,以及对金融问题给予创造性的解决。    快速导航    相关内容索引    目录        1基本定义        2核心内容        3运作程序        4金融工程师        5与金融效率        6国外应用        7国内思路  ...

while循环条件_while语句的循环条件_L.小树的博客-程序员秘密

循环条件中,while()中的值必须值为真,即非0值全为真,0为假,结束循环。

MySQL之DDL语言_天问ㄆ的博客-程序员秘密

MySQL之DDL语言库和表的管理库的管理:创建,删除,修改表的管理:创建,删除,修改常见数据类型介绍常见约束列级约束参考文献前记:测试所使用的 myemployees,其中共有四张表分别为 departments,employees,jobs,locations所用软件:SQLyog 文件:myemployees.sql 网盘下载地址 验证码:anip本章学习数据定义语言DDL库和表的管理库的管理:创建,删除,修改库的创建: create database [if not exi

SpringCloud中Hystrix的使用方式及注意事项_Tonels的博客-程序员秘密

SpringCloud中Hystrix的使用方式及注意事项写在前面一、springCloud 集成 HystrixCommand1.1、集成方式1.2、新建Maven工程1.3、配置 Hystrix(服务的降级回调)1.4、模拟请求测试二、springCloud + RestTemplate + HystrixCommand 实现三、springCloud + feignClient + Hyst...

随便推点

Crypto_[AFCTF2018]花开藏宝地[email protected]的博客-程序员秘密

[AFCTF2018]花开藏宝地题目描述:第808042380079774056886485661605042785931486663026264151497049056286228762708628657683379538357258019631426851825108129380721159963557823963183039270207056231206520140800328094211804009842420615925207337102434839472309626319450451345

多阈值小波包去噪matlab,小波包多阈值去噪法及其在形变分析中的应用_雪舞梅香的博客-程序员秘密

[1] HUANG Shengxiang, LIU Jingnan. A Novel Method for Reducing Noises in GPS Deformation Monitoring System[J]. Acta Geodaetica et Cartographica Sinica, 2002, 31(2): 104-107.(黄声享,刘经南. GPS变形监测系统中消除噪声的一种...

python基本算法面试_【python面试】数据结构和算法_zurkorm的博客-程序员秘密

1.常见的排序算法?a.冒泡排序def bubble_sort(alist):for i in range(len(alist)-1,0,-1):for j in range(i):if alist[j]>alist[j+1]:alist[j],alist[j+1]=alist[j+1],alsit[j]return alist复制代码b.快速排序def quick_sort(alist):...

python -- 定义函数_pop函数可以用在def函数中吗_lz剑鸣惊梦的博客-程序员秘密

前面我们已经讲过如何调用python内置的一些函数,但当内置函数不能满足我们的需求时,就需要自己定义函数,那么在python中如何自己定义函数呢?下面我们重点讲解python中函数的定义与使用。在python中,定义函数使用def语句,def语句后依次时函数名,括号,括号中的函数参数以及冒号,最后是冒号后缩进的函数体,函数的返回值使用return 语句返回,如果不写return 或者说写ret...

mysql sql stuff函数_SQL STUFF函数 拼接字符串 多列 合并成一列 转_饭统戴老板的博客-程序员秘密

关于和并列的要这种效果。createtabletb(idint,valuevarchar(10))insertintotbvalues(1,'aa')insertintotbvalues(1,'bb')insertintotbvalues(2,'aaa')insertintotbvalues(2,'bbb')insertintotbvalues(2,'ccc')go/*...

当PLSQL一直打不开怎么办_plsql卡在登录界面_厂狗的博客-程序员秘密

小伙伴使用oracle时候会用到PLSQL,但PLSQL不是一直很好用,会出现各种各样的问题,我给大家介绍一种我遇到过的问题。1.安装好oracle和PLSQL后,登录PLSQL时,一直打不开界面,类似于卡死状态。2.在win10系统下,右键点击此电脑(我的电脑),选择 “管理”-“服务和应用程序”-“服务”-找到oracle下的“”OracleOraDb11g_home1TNSListener“”,选中此条右键点击选择“重新启动”。回到桌面,再次点击‘’PLSQL‘’,就能进入了。...

推荐文章

热门文章

相关标签