你真的须要掌握多种语言吗?

你须要掌握多种语言吗?

我刚刚断送了个人事业。嗯,别人就是这么对我说的。php

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

编程语言有上百种。有些编程语言十分常见,例如 Java、C#、 PHP、 Ruby、 Python、Javascript 等,而有些编程语言则处于边缘地带或者是新兴的,例如 Awk、Go、Julia、Rust等。面对这么多的选择,你如何知道应该重点关注那种语言呢?所以,我开始思索,你真的须要掌握不止一种编程语言吗?java

##九个掌握多种语言的理由程序员

你真的须要掌握多种语言吗?

1.对于同一个问题,你能够有多种解决方法。掌握不一样的编程语言以后,你会有更多的选择。毕竟若是你只有一把锤子,一切看起来都像是钉子。算法

2.你具备更多卖点,所以你会有更多的工做机会。有时,学习第二种语言能加倍工做机会的数量。然而,这取决于你所学习的语言种类。不管如何,你将会有更多的合适机会,从而增长求职能力。编程

3.这代表你具有学习新语言的能力。潜在的雇主知道你并不是死板或者惯守成规的人。服务器

4.学习是有趣的。学习新的事物会让你的头脑保持兴奋。这将有助于你在新领域的成长和提升。数据结构

5.你将掌握技术动态。你了解业界的发展趋势,并能借此获利。你的技能也不会过期。框架

6.这将提醒你为何热爱你的「主」语言,或者如何将事情作得更好。有时候,只有尝试过新语言,才会知道主语言是何等的优秀。你会更加欣赏本身最爱的语言。同时,新语言可能会有一些惊人的特性,让你深觉相见恨晚。编程语言

7.你会成为更加优秀的程序员。学习新的语言,可以提升在全部语言间都通用的技术能力,例如设计和建立算法或者处理不一样数据结构的能力。

8.你能够在工做中选择最佳的工具。显然,并不存在完美的语言;一些语言在特定情境下会比其余语言更好。掌握了多种语言,你能够在工做中选用最佳的工具。

9.这代表你是学习能力强的人。没有任何事情比掌握第二语言更能证实你的学习能力。

##九个不想掌握多种语言的理由

1.掌握一种语言更加简便。一般,集中精力和全心投入才能精通某一事物。若是你在不一样的语言之间切换,精通一门语言的几率将下降。掌握一种语言也有助于你集中精力。

2.大多数人仅需一份工做,大部分公司仅采用一种语言。在你受雇以后,掌握多种语言不必定会有所帮助。有时候,你只要掌握项目所用的语言,就够了。

3.总有一些东西值得学习;有时候,这意味着要更深刻地学习一种语言。

4.大多数状况下,专家能提更高的薪资要求,由于人们更愿意为专家支付更多的薪水。约翰·森梅兹在其视频《我不肯定成为一位专家》中谈到了为何通才并不老是最好的。

5.即使你仅掌握一种语言,仍有可能成为伟大的开发者。开发者的成就与掌握的语言种类没有任何关系。重要的是你创造的是什么。仅掌握一种语言,你能够花更多的时间进行创造。

6.你仅需学习数目有限的软件开发工做。大多数语言只有屈指可数的一些工具。切换语言每每意味着转换不一样的工具。只掌握一种语言,你能够更快地精通相关的工具。这将有助于提升你的生产力。

7.这更易于推销本身。只掌握一种语言,你其实已经将本身细分了(即使不是经过选择)。

8.你能够凭借任何一种语言解决大多数软件问题。无论有多少人告诉,大多数语言能够解决任何问题。若是解决问题是你的主要目标(本应当是),掌握更多的语言并不必定有助于实现这个目标。

9.精通一种事物比浅尝十种事物更好。

这不是一个非黑即白的问题。和大多数问题同样,最佳的解决方法是取中庸之道——总有一片灰色地带。若是你是初学者,那么学习一种语言,并将其应用到前十多个项目中会比较容易。在此以后,我建议你成为一位T形软件开发者。

##什么是 T 形软件开发者?

一位「T形」软件开发者具有某一特定领域的深层知识,而且是一种语言的专家。T 的垂直线表明了这一点。此外,他们会继续普遍学习另外一种技能,T的水平线表明了这一点。

那么,这和软件开发,特别是编程语言的学习,有什么关系呢?我建议你精通一种编程语言,这将成为你之后的生计,并用于解决大部分问题。你应当尽你所能掌握这种语言。在此基础上,你能够学习对工做有益的第二种语言或者技能。假如你不知道应当学习什么技能,参考我上个帖子《发现你将要学什么》

A T-shaped software developer is a jack-of-all-trades, but a master of one. T形软件开发者是万事通,可是却精于某一项技能。

成为T形软件开发者后,你将灵活地掌握多种语言,同时具有某个领域专家的优势。

##应当掌握哪一种编程语言?

一个常见的问题是,应当学习哪一种语言。或者说,假如你是初学者,应当首先学习哪一种语言。一般,我会选择有必定历史的语言做为主要语言。这种语言应当用于多个行业,而且有普遍的使用群体和大量的开发工具。Java、C#、net、Ruby、Python、Swift 是符合上述标准的少数语言。

Tiobe 软件根据上述标准跟踪软件语言的流行性,并编入索引中。点击此处可查看完整的编程语言榜单。该索引每个月更新一次,前20名的语言都是不错的选择。将来10年,这些语言还会流行吗?我不肯定。但这些语言在将来四年内仍是极可能保持流行的,这对任何准备着手的项目都是够用的。

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

你准备开始新项目或事业吗?或许你仅需掌握一种语言。

你想改变行业或者引领科技潮流吗?或许你须要掌握多种语言。

你想在一家企业固定工做吗?或许你只需掌握一种语言。

你准备从事前沿项目吗?或许你须要掌握多种语言,由于发展趋势老是不断变化的。

老实说,在决定是否要掌握多种语言时,并无正确或者错误之分。最终仍是须要你本身下决定。

你掌握了多少种语言?你擅长的领域是什么,你是如何经过兴趣扩展擅长的领域的?在评论中与咱们分享吧。

(编译自:https://dzone.com/articles/do-you-need-to-know-more-than-one-language)

OneAPM 为您提供端到端的 Java 应用性能解决方案,咱们支持全部常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本缘由。分钟级部署,即刻体验,Java 监控历来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

相关文章
相关标签/搜索