编程语言只是工具程序员为什么就不能同时掌握多门编程语言

好用的小火箭节点推荐⭐Shadowrocket高速节点推荐

我们公司负责招聘的人事小姐姐不解得问我:“ 为什么程序员要分前端和后端? ”,然后我跟她说:“ 因为分工不同,前端主要负责界面交互和数据展示,后端负责具体的业务逻辑和数据处理! ”。人事小姐姐反问我:“ 咋啦,都是码农,用锄头和用铁锹有什么区别?种萝卜的和拔萝卜的就不能是一个人? ”。然后,我:“……”。

编程语言“工具论”

我在分享一些编程心得的时候,难免会说一些关于其他编程语言的事情,有时候我会向人们分享编程技术栈的选型,是选CSharp好,还是Java好,还是Python或者C++好的时候,往往这个时候,一些工作了十几年甚至二十几年的老程序员会直接告诉我:“ 编程语言只是一个工具,真正的程序员应该是要在各个编程语言之间切换自如的! ”。

其中,有一个工作了十七年的程序员说的话,我比较认可:“ CSharp十七年,C++十五年,Java五年,还有各种其他语言。虽然语言早就不是障碍,但是还是独爱CSharp! ”

他的意思是,现在工作使用什么编程语言对他来说不是太重要,只不过他比较偏爱CSharp。

我之所以比较认可他说的这句话,主要还是他的话说得比较透彻。

其实,每个编程语言基本上在功能实现方面没有什么局限性, CSharp能做的事情Java、C++、Python其实都能做,反之亦然 。至于有些人说的编程语言性能问题,是有,但是问题真不大!甚至 很多编程语言之间可以实现互补,比如说CSharp经常被一些公司用来配合C++开发 。

其实我觉得之所以分CSharp后端、Java后端等等后端,那是因为每个编程语言所提供的框架不一样,比如CSharp的MVC,Java的SpringMVC,虽然做的事情都一样,虽然两个框架上手都很容易,但是遇到问题还能把问题给解决了,这需要非常了解框架才行。

所以,我们经常能看到很多CSharp和Java程序员在那说:“不就是CSahrp/Java嘛,两个语言之间切换起来很难吗?”。

语言切换不难,了解语言特性(脾气)是需要时间的。 典型的例子就是CSharp的托管内存和C/C++的内存控制。CSharp程序员平时在编程的时候很少需要关心内存释放问题,但是C/C++程序员可能就不能完全避免去操作内存 。

因此,两种编程语言在编程体验上,很多人比较喜欢CSharp!

我们所遇到的问题大多数都是不了解某个编程语言的编程框架导致的,基础语法其实不需要多长时间大家都能学会,不存在编程语言语法不同而产生的所谓障碍。

程序员本就该掌握多门编程语言

回到开始我们人事小姐姐问的问题,那就是“都是码农,用锄头和用铁锹有什么区别?种萝卜的和拔萝卜的就不能是一个人?”。

不知道大家发现没有,基本上一个后端程序员多多少少都会一些前端知识,甚至能够通过文本文档写出一个简单的网页出来,而很多后端程序员,现在使用一些前端框架也能写出一个还不错前端项目。

可真正让后端程序员去兼任前端的工作,其实很多后端程序员不一定愿意去干,当然,包括我!

我作为一个已经有十年工龄的程序员,我的前端编码能力肯定是要比一个刚毕业的前端程序员要优秀的,但是,在工作中,我不会承认一个刚毕业的前端程序员解决不了的问题我能替他解决。因为,我自认为我后端编程才是我的主要工作。

和我有一样心态的程序员其实有大把,我们不是没有能力去掌握多门编程语言,而是觉得我们就应该“术业有专攻”,不应该分散注意力去学习其他编程语言。

就像我们人事小姐姐说的,“锄头和铁锹有什么区别?”, 如果抱着“术业有专攻”的逻辑,锄头是用来锄地的,铁锹是用来铲地的。但是,同样是码农,拿起锄头和拿起铁锹好像并不难吧?也就是一伸手的事情。即使我开始不了解锄头和铁锹的特性,不小心拿锄头铲地,那铁锹锄地,用顺手了,不需要人教最后锄头和铁锹在我手里慢慢都能发挥其正确的作用。时间久了,我自己会判断是使用锄头好还是铁锹好,从而切换使用它们。

如果您是程序员,您可以回忆一下你们现在使用的编程语言,掌握基础用了多久!

上述段落您需要细品,这是整篇文章的核心。

结语

最后,我注意到现在有 不少程序员开始觉得程序员应该要“全栈”了 ,具体原因大家都清楚。 当各种编程辅助工具开始出现,不同编程语言之间的界限慢慢就会被打破 ,持一门编程语言就可以闯荡IT界的时代可能慢慢就要过去了。

您可以不认同这个看法,但往往看到这个现象的时候,其实已经晚了。技术迭代太快,我们可能赶不上,但是不去赶,也是一种自我放弃的行为。

结尾与您共勉!

好用的小火箭节点推荐⭐Shadowrocket高速节点推荐

THE END
分享
二维码
< <上一篇
下一篇>>