zoukankan      html  css  js  c++  java
  • 你真的需要掌握多种编程语言吗?

    简述

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

    同事得知我即将离开公司的消息,大多数对此表示理解。但让他们困惑的是,我目前就职的公司是一家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. 大多数人只需要一份工作,大部分公司只使用一种语言。在你被录用后,掌握多种语言不一定会有所帮助。有时候,只要掌握项目所用的语言就够了。

    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年,这些语言还会流行吗?我不确定。不过至少在未来四年内还是很可能保持流行的,我想,这对任何准备着手的项目都是够用的。

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

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

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

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

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

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

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

    更多参考

  • 相关阅读:
    Leetcode 50.Pow(x,n) By Python
    Leetcode 347.前K个高频元素 By Python
    Leetcode 414.Fizz Buzz By Python
    Leetcode 237.删除链表中的节点 By Python
    Leetcode 20.有效的括号 By Python
    Leetcode 70.爬楼梯 By Python
    Leetcode 190.颠倒二进制位 By Python
    团体程序设计天梯赛 L1-034. 点赞
    Wannafly挑战赛9 C-列一列
    TZOJ Start
  • 原文地址:https://www.cnblogs.com/itrena/p/5938226.html
Copyright © 2011-2022 走看看