你真的需要掌握多种编程语言吗?

简述

我刚刚断送了自己的职业生涯,没错,很多人都这样对我说。

同事得知我即将离开公司的消息,大多数对此表示理解。但让他们困惑的是,我目前就职的公司是一家Windows商店,用C#.net编写代码,而我要入职的岗位要求在Linux环境下进行开发,以Java为主要的编程语言。他们认为编程语言的改变会让我丢失多年经验,许多人都赞同他们的观点。

编程语言很多,数以百计。有些很常见,例如:Java、C#、PHP、Ruby、Python、和JavaScript,而有些则比较边缘化或是新兴的,例如:Awk、Go、Julia、Rust。面对如此多的选择,我们又该关注那种语言呢?因此,我开始思考这个问题 - 你真的需要掌握不止一种编程语言吗?

  • 简述
  • 想要掌握多种编程语言的9个理由
  • 不想掌握多种编程语言的9个理由
  • 什么是T形软件开发者
  • 应该掌握哪种编程语言
  • 是否需要掌握多种语言取决于你的目标
  • 更多参考

想要掌握多种编程语言的9个理由

  1. 能用多种方式来解决同样的问题,掌握不同的编程语言意味着拥有更多的选择。毕竟,当你只有锤子时,一切看起来都像是钉子。
  2. 更有竞争力,拥有更多的就业机会。学习第二门编程语言,有时能加倍工作机会的数量。然而,这取决于你学习的语言种类。但无论怎么说,你将会有更多的合适机会,从而增加求职能力。
  3. 表明你具备学习新语言的能力。潜在的雇主会认为你并非是死板或者惯守成规的人。
  4. 学习是很有趣的。学习新的事物会让你的头脑保持兴奋。这将有助于你在新领域的成长和提高。
  5. 紧跟当前的技术发展趋势。了解哪个行业在独领风骚,就可以永远站在潮流的尖端,你的技能便不会过时。
  6. 这将提醒你为什么应该热爱你的“主”语言,或者如何将事情做得更好。有时候,只有尝试过新语言,才会知道主语言是何等的优秀。你会更加欣赏自己最爱的语言。与此同时,新语言可能会有一些惊人的特性,让你深觉相见恨晚。
  7. 有助于成为一个更加优秀的程序猿。学习新的语言,有助于提高在所有语言之间通用的技能,例如:设计和架构算法,或处理不同的数据结构。
  8. 针对工作选择最佳的工具。尺有所短寸有所长 - 有的语言更善于处理某些特定方面的事情。掌握了多种语言,你可以在工作中选用最佳的工具
  9. 表明你的学习能力强。没有任何事情比掌握第二语言更能证明你的学习能力。

不想掌握多种编程语言的9个理由

  1. 掌握一种语言更容易。通常,集中精力和全心投入才能精通某一事物。如果不断地在多种语言之间进行切换,那么真正精通一门语言的概率就会降低。掌握一种语言也有助于你集中精力。
  2. 大多数人只需要一份工作,大部分公司只使用一种语言。在你被录用后,掌握多种语言不一定会有所帮助。有时候,只要掌握项目所用的语言就够了。
  3. 总有一些东西值得学习;有时候,这意味着要更深入地学习一种语言。
  4. 大多数情况下,专家能提更高的薪资要求,因为人们更愿意为专家支付更多的薪水。John Sonmez在其视频《 I’m Not Sure I Want To Be A Specialist》中谈到为什么多面手并不总是最好的。
  5. 即便仅掌握一种语言,仍然可以被认为是一个伟大的开发者。是否是伟大的开发者与你掌握多少种语言无关。关键在于你创造的是什么。因为只涉及一种语言,所以你可以花更多的时间进行创造。
  6. 你只需要学习有限的软件开发工具。大多数语言只有为数不多的一些工具。切换语言往往意味着要切换工具。只掌握一种语言,你就可以更快地掌握相关的工具。这将有助于提高工作效率。
  7. 更易于定位自己的市场。因为只掌握一种语言,基本上你只会朝这个方向安顿下来(即使不是出于自己的选择)。
  8. 你可以凭借任何一种语言解决大多数软件问题。不管有多少人告诉你,大多数语言可以用于解决任何问题。如果解决问题是你的主要目标(本应当是),掌握更多的语言并不一定有助于实现这个目标。
  9. 深入理解一件事比表面了解十件事更好。

这并非是一个非黑即白的问题。和其他问题一样,最好的解决办法是取中间值:总有一片灰色地带。如果你是一个初学者,那么学习一种语言,并将其应用到前十多个项目中会比较容易。但此之后,建议你成为一个「T形」软件开发者。

什么是「T形」软件开发者?

所谓「T形」软件开发者在某一个特定的区域拥有很深的造诣,而且是一种语言的专家,T字母中的垂直线代表了这一点;此外,他们会继续广泛学习另一种技能,T字母中的水平线代表了这一点。

那么,这与软件开发,特别是编程语言的学习,有什么关系呢?我的建议是精通一种编程语言,这将成为你以后的生计,并用于解决大部分问题。你应该尽你所能掌握这门语言。在此基础上,可以学习最适合工作的第二种语言或技能。假如你不知道应当学习什么技能,可以阅读我之前的帖子《 Finding What To Learn Next 》这个帖子。

T形软件开发者是一个多面手,精通于某一领域。

在成为T形开发者的历程中,你将灵活地掌握多种语言,同时具备某个领域专家的优点。

应该掌握哪种编程语言?

一个常见的问题是,应当学习哪种语言。或者说,假如你是初学者,应当首先学习哪种语言。通常,我会选择有一定历史的语言作为主要语言。这种语言应当用于多个行业,并且有广泛的使用群体和大量的开发工具。符合这些标准的语言有:Java、C#、.NET、Ruby、Python和Swift。

Tiobe软件基于这些标准持续跟踪软件语言的流行性,并编入索引中。你可以点击TIOBE Index查看完整的编程语言列表。索引会每月更新,前20名中的大多数语言都是不错的选择。未来10年,这些语言还会流行吗?我不确定。不过至少在未来四年内还是很可能保持流行的,我想,这对任何准备着手的项目都是够用的。

是否需要掌握多种语言取决于你的目标

想开始新的业余项目或业务?或许你只需要掌握一种语言。

想换行业或驾驭技术发展趋势?或许你需要掌握不止一种语言。

想在企业环境中工作?或许你只需要掌握一种语言。

想工作在前沿项目?或许你需要掌握不止一种语言,因为潮流总是在变化。

说实话,关于是否需要掌握更多的语言,其实并没有绝对正确或错误的答案,最后的决定取决于你。

你掌握了多少种语言?你擅长的领域是什么?你如何扩展它?欢迎分享。

更多参考

时间: 2024-10-02 02:46:17

你真的需要掌握多种编程语言吗?的相关文章

你真的需要了解多种编程语言吗?

我在谋杀自己的职业生涯.没错,很多人都这样说我. 我的同事刚刚得知我即将离开公司的消息.大多数表示理解.但让他们困惑的是,我现在的公司是一家Windows商店,用C#和.net编写代码.然 而,我要去担任的是Linux环境下主要语言为Java的开发工作.因为语言的改变,他们觉得我抛弃了自己的优势,抛弃了自己这么多年的工作经验,正在自 寻死路.很多人都秉持这样的观点. 编程语言很多很多,数以百计.有些很常见,如Java,C#,PHP,Ruby,Python和JavaScript,而有些则比较边缘化

程序员想要通晓多种编程语言可以这样做

学习一门新的语言是一种冒险.我总是热衷于尝试新的东西--学习新的语法,了解不同的模式,乃至彻底改变思维方式.不幸的是,许多开发人员对此不以为然,甚至可能是深恶痛绝的--学习新语言,就得走出舒适区,花时间花精力来学习新的理念和方法. 这段日子,我每天都要用大约5种不同的语言来写不同的项目! 我应该先学哪种语言? 有关这方面的讨论真可谓数不胜数.很多刚进入编程社区的初学者,都会问这个问题,简直就是前赴后继.有些人建议先学不费力的,如Python和 Ruby,也有的人认为应该先学例如C.C++和GO这

如何成为一个通晓多种编程语言的程序员

学习一门新的语言是一种冒险.我总是热衷于尝试新的东西--学习新的语法,了解不同的模式,乃至彻底改变思维方式.不幸的是,许多开发人员对此不以为然,甚至可能是深恶痛绝的--学习新语言,就得走出舒适区,花时间花精力来学习新的理念和方法. 这段日子,我每天都要用大约5种不同的语言来写不同的项目! 我应该先学哪种语言? 有关这方面的讨论真可谓数不胜数.很多刚进入编程社区的初学者,都会问这个问题,简直就是前赴后继.有些人建议先学不费力的,如Python和 Ruby,也有的人认为应该先学例如C.C++和GO这

如何学会600多种编程语言

几周前,做为8th Light公司的实习生,我从CEO那里拿到了我的工作成绩报告.在与CEO的会见期间,我发现了一个对如何做一个程序员的认识上的盲区.起初我以为,想扩展自己的软件职业道路,那就要学很多各种的语言.我现在就要告诉你,事情不是这样的. 我们一共有多少种编程语言?你只需看一下维基百科上的清单,600多种!说实话,就我个人的情况,我不相信我能学会数百种语言.因为有太多的文档需要看,它们之间有太多的差异需要注意.它们很多都是相似的,例如那些面向对象的语言:C++,Java,Ruby,Pyt

如何学会 600 多种编程语言

几周前,做为8th Light公司的实习生,我从CEO那里拿到了我的工作成绩报告.在与CEO的会见期间,我发现了一个对如何做一个程序员的认识上的盲区.起初我以为,想扩展自己的软件职业道路,那就要学很多各种的语言.我现在就要告诉你,事情不是这样的. 我们一共有多少种编程语言?你只需看一下维基百科上的清单,600 多种!说实话,就我个人的情况,我不相信我能学会数百种语言.因为有太多的文档需要看,它们之间有太多的差异需要注意.它们很多都是相似的,例如那些面向 对象的语言:C++,Java,Ruby,P

多种编程语言的学习曲线

程序员Dobiasd在Github上绘制了七种编程语言的学习曲线,这些语言分别是:JavaScript.Java.C++.Python.Lisp.Haskell.PHP. 备注:图中的红线表示自我评估.蓝线表示学习效率. PHP果然是世界上最好的语言!!!

多种编程语言的常用按键和语法_相关技巧

我经常会在编程语言之间来回转换:我总是想知道,如果使用不同的语法会怎样,这种或那种语法会不会使你表达更清晰,更快地编写程序.我也不太清楚到底会不会,但我知道当用了不同的编程语言时,需要敲哪些键. 这对于那些决定选择一种编程语言的人来说也许很有趣,这也是对这个老问题"我应该学哪种语言?"的回答. 就我所知道的语言来说,在键盘上集中分布跨度更大的语音,通常就是我们所指的丑陋的语言(阅读和编写代码都很困难),例如 shell 和 perl. 你也许会争论说使用变量命名会改变结果,但大多数语言

OpenLogic的PaaS将支持多种编程语言

原文:OpenLogic is launching a platform-as-a-service offering that aims to give users the flexibility that many developers like about infrastructure-as-a-service without the work.     CloudSwing offers stacks for Java, Ruby, PHP, and JavaScript with pla

同时学习多种编程语言其实很容易

大概是两年前吧,我做了个决定,要去学习编程.我买了本PHP书,开始一边阅读一边做里面的练习题.我把主要精力都放到PHP上,不理会任何其它的 语言,因为我有个习惯,一旦开始做一个事情,我们会集中所有的注意力,先把这个事情做完,然后才去做其它的事情.于是,我尝试这开发一个Web应用程序 (一个绝妙的创意,一个能使我成为另外一个Facebook创始人那样的应用).一点一点的,进度很慢,我的应用(这个即将让我成为百万富翁的应用)慢慢 的成型.最终,它跑起来了.自然了,没有人来用它,做的太烂了,到处是bu