我刚刚断送了本身的职业生涯,没错,不少人都这样对我说。算法
同事得知我即将离开公司的消息,大多数对此表示理解。但让他们困惑的是,我目前就任的公司是一家Windows商店,用C#.net编写代码,而我要入职的岗位要求在Linux环境下进行开发,以Java为主要的编程语言。他们认为编程语言的改变会让我丢失多年经验,许多人都赞同他们的观点。编程
编程语言不少,数以百计。有些很常见,例如:Java、C#、PHP、Ruby、Python、和JavaScript,而有些则比较边缘化或是新兴的,例如:Awk、Go、Julia、Rust。面对如此多的选择,咱们又该关注那种语言呢?所以,我开始思考这个问题 - 你真的须要掌握不止一种编程语言吗?数据结构
能用多种方式来解决一样的问题,掌握不一样的编程语言意味着拥有更多的选择。毕竟,当你只有锤子时,一切看起来都像是钉子。架构
更有竞争力,拥有更多的就业机会。学习第二门编程语言,有时能加倍工做机会的数量。然而,这取决于你学习的语言种类。但不管怎么说,你将会有更多的合适机会,从而增长求职能力。编程语言
代表你具有学习新语言的能力。潜在的雇主会认为你并不是是死板或者惯守成规的人。工具
学习是颇有趣的。学习新的事物会让你的头脑保持兴奋。这将有助于你在新领域的成长和提升。学习
紧跟当前的技术发展趋势。了解哪一个行业在独领风骚,就能够永远站在潮流的尖端,你的技能便不会过期。开发工具
这将提醒你为何应该热爱你的“主”语言,或者如何将事情作得更好。有时候,只有尝试过新语言,才会知道主语言是何等的优秀。你会更加欣赏本身最爱的语言。与此同时,新语言可能会有一些惊人的特性,让你深觉相见恨晚。.net
有助于成为一个更加优秀的程序猿。学习新的语言,有助于提升在全部语言之间通用的技能,例如:设计和架构算法,或处理不一样的数据结构。设计
针对工做选择最佳的工具。尺有所短寸有所长 - 有的语言更善于处理某些特定方面的事情。掌握了多种语言,你能够在工做中选用最佳的工具
代表你的学习能力强。没有任何事情比掌握第二语言更能证实你的学习能力。
掌握一种语言更容易。一般,集中精力和全心投入才能精通某一事物。若是不断地在多种语言之间进行切换,那么真正精通一门语言的几率就会下降。掌握一种语言也有助于你集中精力。
大多数人只须要一份工做,大部分公司只使用一种语言。在你被录用后,掌握多种语言不必定会有所帮助。有时候,只要掌握项目所用的语言就够了。
总有一些东西值得学习;有时候,这意味着要更深刻地学习一种语言。
大多数状况下,专家能提更高的薪资要求,由于人们更愿意为专家支付更多的薪水。John Sonmez在其视频《 I’m Not Sure I Want To Be A Specialist》中谈到为何多面手并不老是最好的。
即使仅掌握一种语言,仍然能够被认为是一个伟大的开发者。是不是伟大的开发者与你掌握多少种语言无关。关键在于你创造的是什么。由于只涉及一种语言,因此你能够花更多的时间进行创造。
你只须要学习有限的软件开发工具。大多数语言只有为数很少的一些工具。切换语言每每意味着要切换工具。只掌握一种语言,你就能够更快地掌握相关的工具。这将有助于提升工做效率。
更易于定位本身的市场。由于只掌握一种语言,基本上你只会朝这个方向安顿下来(即便不是出于本身的选择)。
你能够凭借任何一种语言解决大多数软件问题。无论有多少人告诉你,大多数语言能够用于解决任何问题。若是解决问题是你的主要目标(本应当是),掌握更多的语言并不必定有助于实现这个目标。
深刻理解一件事比表面了解十件事更好。
这并不是是一个非黑即白的问题。和其余问题同样,最好的解决办法是取中间值:总有一片灰色地带。若是你是一个初学者,那么学习一种语言,并将其应用到前十多个项目中会比较容易。但此以后,建议你成为一个「T形」软件开发者。
所谓「T形」软件开发者在某一个特定的区域拥有很深的造诣,并且是一种语言的专家,T字母中的垂直线表明了这一点;此外,他们会继续普遍学习另外一种技能,T字母中的水平线表明了这一点。
那么,这与软件开发,特别是编程语言的学习,有什么关系呢?个人建议是精通一种编程语言,这将成为你之后的生计,并用于解决大部分问题。你应该尽你所能掌握这门语言。在此基础上,能够学习最适合工做的第二种语言或技能。假如你不知道应当学习什么技能,能够阅读我以前的帖子《 Finding What To Learn Next 》这个帖子。
T形软件开发者是一个多面手,精通于某一领域。
在成为T形开发者的历程中,你将灵活地掌握多种语言,同时具有某个领域专家的优势。
一个常见的问题是,应当学习哪一种语言。或者说,假如你是初学者,应当首先学习哪一种语言。一般,我会选择有必定历史的语言做为主要语言。这种语言应当用于多个行业,而且有普遍的使用群体和大量的开发工具。符合这些标准的语言有:Java、C#、.NET、Ruby、Python和Swift。
Tiobe软件基于这些标准持续跟踪软件语言的流行性,并编入索引中。你能够点击TIOBE Index查看完整的编程语言列表。索引会每个月更新,前20名中的大多数语言都是不错的选择。将来10年,这些语言还会流行吗?我不肯定。不过至少在将来四年内仍是极可能保持流行的,我想,这对任何准备着手的项目都是够用的。
想开始新的业余项目或业务?或许你只须要掌握一种语言。
想换行业或驾驭技术发展趋势?或许你须要掌握不止一种语言。
想在企业环境中工做?或许你只须要掌握一种语言。
想工做在前沿项目?或许你须要掌握不止一种语言,由于潮流老是在变化。
说实话,关因而否须要掌握更多的语言,其实并无绝对正确或错误的答案,最后的决定取决于你。
你掌握了多少种语言?你擅长的领域是什么?你如何扩展它?欢迎分享。
http://blog.csdn.net/liang19890820/article/details/52230408