专栏首页服务端技术杂谈你真的需要了解多种编程语言吗?

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

  英文原文:Do You Need To Know More Than One Language?

  我在谋杀自己的职业生涯。没错,很多人都这样说我。

  我的同事刚刚得知我即将离开公司的消息。大多数表示理解。但让他们困惑的是,我现在的公司是一家 Windows 商店,用 C# 和 .net 编写代码。然而,我要去担任的是 Linux 环境下主要语言为 Java 的开发工作。因为语言的改变,他们觉得我抛弃了自己的优势,抛弃了自己这么多年的工作经验,正在自寻死路。很多人都秉持这样的观点。

  编程语言很多很多,数以百计。有些很常见,如 Java,C#,PHP,Ruby,Python 和 JavaScript,而有些则比较边缘化或是新出现的,如 awk,Go,Julia,Rust。选择如此之多,我们又该关注哪个呢?于是,我开始思考这个问题——我们真的需要知道多种语言吗?

你会想要学习不止一种语言的 9 个原因

  1. 能用多种方式来解决同样的问题。懂得不同的语言意味着拥有更多的选择。正如古语有云,当你只有锤子时,你看什么都像是钉子。
  2. 更有竞争力,拥有更多的就业机会。学习第二门编程语言,有时能增加一倍你可胜任职位的数量。不过,这取决于你学习的语言。但是无论怎么说,这都能为你增加就业机会。
  3. 表明你能够学习新的语言。你潜在雇主能够从中了解到你不是死板的程序员。
  4. 一个很有趣的过程。学习新的东西可以充实你的大脑,帮助你在一个新领域中成长和提高。
  5. 紧跟当前的技术发展趋势。知道哪个行业在独领风骚,就可以永远站在潮流的尖端。你的技能便不会过时。
  6. 让你知道为什么你应该喜欢你的“主”语言,或者让你知道如何让事情变得更好。有时候,你只是不知道你的主语言有多好,直到你尝试新的东西。你会赞同于你喜欢的语言的概念。与此同时,新的语言可能会有一些让你很惊讶的某些新功能。
  7. 有助于成为一个更好的计算机程序员。学习新的语言可以帮助你提高能在所有语言之间转移的技能,例如,设计和架构算法,或处理不同的数据结构。
  8. 针对工作使用最好的工具。尺有所短寸有所长——有的语言更善于处理某些特定方面的事情。知道更多的语言就可以为工作选择更好的工具。
  9. 表明你是一个快速的学习者。通过学习第二门编程语言可以表现你学得很快。

你不想学习更多语言的 9 个原因

  1. 一种语言更容易掌握。专心致志和一心工作往往才是通往精熟通达的道路。如果你不断地在多种语言之间进行切换,那么真正掌握一门语言的概率就会降低。只涉及一种语言可以帮助你集中注意力。
  2. 大多数人只需要一份工作,大部分公司只使用一种语言。在你已经被录用后,知道多种语言不一定会帮到你。如果你知道该项目的语言,就 ok 了。
  3. 总有需要学习的地方:这意味着你可以深入研究你掌握的这一种语言。
  4. 专家在大多数情况下可以要求较高的薪酬,因为人们愿意支付给专家更多的钱。John Sonmez 在他的视频“I’m Not Sure I Want To Be A Specialist”中,谈到了为什么成为一个多面手并不总是最好的主意。
  5. 即使只知道只有一种语言,仍然可以被认为是一个伟大的开发者。是否是伟大的开发者与你知道多少种语言无关。 关键在于你构建的内容。因为只涉及一种语言,所以你可以花更多的时间来构建。
  6. 你只需要学习有限的软件开发工具。大多数语言只有为数不多的几个工具。切换语言通常也意味着要切换工具。只了解一种语言,你就可以更快地掌握工具。
  7. 更易于定位自己的市场。因为只了解一种语言,基本上你只会朝这个方向安顿下来(即使不是出于自己的选择)。
  8. 任意一种语言都可以解决大多数的软件问题。如果制作东西是你的主要目标,那么知道更多的语言并不一定对你有帮助。
  9. 深入理解一件事比表面了解 10 件事要好。

  这并非是一个非黑即白的问题。和其他问题一样,最好的解决办法是取中间值:总会有一个灰色地带。如果你是一个初学者,那么光学一种语言,然后用它开发个十几个项目,明显更容易。但在那之后,我建议你成为一个T形的软件开发人员。

什么是T形的软件开发人员?

  所谓T形的软件开发人员在某一个特定的区域拥有很深的造诣,而且是一种语言的专家,这就是T字母中非常坚实的竖直线,而T的水平线则代表了在此基础上还应该继续更广泛地学习其他技能。

  那么,这与软件开发,更具体地说,是学习编程语言有什么关系呢?我的建议精通一种语言。 这种语言将成为你解决大多数问题的左膀右臂。你应该尽你所能掌握这门语言。然后你才可以学习最适合工作的第二种语言或技能。可以阅读我先前写的《 Finding What To Learn Next 》这个帖子。

  T 形软件开发人员不光精通于某一领域,还是一个多面手。

  在成为T形开发者的历程中,你不但能享受成为某一领域专家的好处,还能因了解多种语言而增加灵活性和适应性。

你应该选择掌握什么样的编程语言?

  看到这里,很多人或许就要问了,那么我们应该选择学习哪种编程语言呢。亦或者,你才刚刚步入编程这个时间,你想知道你应该先学习什么语言。对于主要语言,我会选择那些已经存在了一段时间的语言,而不是新出来的。语言应为多个行业使用,并且有一个坚实的社区基础,拥有大量的开发工具。 一些符合这些标准的语言是:Java,C#,.NET,Ruby,Python 和 Swift。

  软件排行榜基于这些标准持续跟踪软件语言的人气指数。你可以点击这里查看完整的编程语言列表。指数每月更新,前 20 名中的大多数语言都是不错的选择。那么 10 年之后,这些语言还会依然名列前茅吗?我也不知道。不过至少在未来 4 年内是准的,我想,4 年时间应该已经足够你从现在开始开发无论什么项目了。

  是否需要了解更多的语言取决于你的目标

  想开始新的业余项目或业务?你可能只需知道一种语言。

  想换行业或驾驭技术发展趋势?你可能需要知道不止一种语言。

  想在企业环境中工作?你可能只需要知道一种语言。

  想工作在前沿项目?你可能需要知道不止一种语言,因为潮流总是在变化。

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

本文分享自微信公众号 - 服务端技术杂谈(ITIBB2014),作者:ITIBB

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-12-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 不要和一种编程语言厮守终生:为工作正确选择

    我们程序员在着手一个项目时,需要做的关键决定之一就是选择一种语言,或一组语言,用于实施该系统。这一决定不仅会影响系统的实现,也会影响设计。例如,我们应该使用面向...

    春哥大魔王
  • Weibo Mesh的发展

    微博从2013年开发了Java语言的Motan RPC框架,基于此完成了服务化改造。Motan从2013年上线至今经历过每个热点事件,三节高峰的挑战,稳定性和可...

    春哥大魔王
  • 价值忙碌

    前几天,我听一个广播节目。主持人问,现在很多人开网约车,这样能赚多少钱,能够赚到大钱吗?

    春哥大魔王
  • 为什么c语言是最好的入门语言?

    image.png 现在java大行其道,特别是中国互联网的快速发展,app以及服务端的开发现在流行的程度大大的盖过了传统的c语言和c++,从各个公司的招人简章...

    程序员互动联盟
  • C语言常用的知识没多少之C语言的入门

    C语言自1972年问世以来,历经40多年而不衰。现在依旧在机器语言排行榜中排名前三,可见C语言的重要性!C语言既是高级语言,也是少有的面向过程的语言。学习C语言...

    用户5935416
  • C语言到底有多牛!你知道多吗?

    有人说C语言是世界上最牛逼的语言,因为操作系统就是用C语言编写的,学好了C才能更好的学习其他编程语言。为此,有人分享了下面一段代码,说是很牛逼的c语言代码,看得...

    企鹅号小编
  • R语言的最好资源,一个就够!

    本来我可以起个骚气一点的名字 那一晚,我灌醉了这个男人,逼他说出了所有真相 但是那样很无聊,而且我不觉得有趣,我现在想做的就是,如何成为一位优秀的称职的R语言讲...

    企鹅号小编
  • R语言的好与坏丨讲座中字视频丨附讲座PDF

    R是一种用于分析数据的领域特定语言。为什么数据分析需要自己的领域特定语言(DSL) ? R语言擅长些什么,不擅长什么?开发人员该如何利用R语言的优势并减轻其弱点...

    CDA数据分析师
  • 哪种编程语言又快又省电?有人对比了27种语言

    当能耗也成为了一个重要指标,我们要怎么选择编程语言?2017 年,由 6 名葡萄牙研究者组成的团队决定对这一问题进行调查并发表了一篇名为《Energy Effi...

    CDA数据分析师
  • 谷歌翻译VIP版本?MIT科学家开发机器翻译新算法,专为破译消失的古语言

    语言是文化的有机组成部分,也是文化的载体,世界文明的多样性在很大程度上表现为世界语言的多样性。而在 21 世纪的今天,语言学家们显然已经不满足于传统的、对已知语...

    大数据文摘

扫码关注云+社区

领取腾讯云代金券