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


    你须要掌握多种语言吗?

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

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

    编程语言有上百种。

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

    九个掌握多种语言的理由

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

    1.对于同一个问题。你能够有多种解决方法。掌握不同的编程语言之后,你会有很多其它的选择。

    毕竟假设你仅仅有一把锤子,一切看起来都像是钉子。

    2.你具有很多其它卖点,因此你会有很多其它的工作机会。

    有时,学习另外一种语言能加倍工作机会的数量。

    然而,这取决于你所学习的语言种类。

    不管怎样,你将会有很多其它的合适机会。从而添加求职能力。

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

    4.学习是有趣的。学习新的事物会让你的头脑保持兴奋。

    这将有助于你在新领域的成长和提高。

    5.你将掌握技术动态。你了解业界的发展趋势,并能借此获利。

    你的技能也不会过时。

    6.这将提醒你为什么热爱你的「主」语言,或者怎样将事情做得更好。有时候,仅仅有尝试过新语言。才会知道主语言是何等的优秀。

    你会更加赞赏自己最爱的语言。同一时候。新语言可能会有一些惊人的特性,让你深觉相见恨晚。

    7.你会成为更加优秀的程序猿。学习新的语言。能够提高在全部语言间都通用的技术能力,比如设计和创建算法或者处理不同数据结构的能力。

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

    9.这表明你是学习能力强的人。没有不论什么事情比掌握第二语言更能证明你的学习能力。

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

    1.掌握一种语言更加简便。通常,集中精力和全心投入才干精通某一事物。假设你在不同的语言之间切换。精通一门语言的概率将减少。

    掌握一种语言也有助于你集中精力。

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

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

    4.大多数情况下,专家能提更高的薪资要求。由于人们更愿意为专家支付很多其它的薪水。

    约翰·森梅兹在其视频《我不确定成为一位专家》中谈到了为什么通才并不总是最好的。

    5.即便你仅掌握一种语言,仍有可能成为伟大的开发人员。

    开发人员的成就与掌握的语言种类没有不论什么关系。重要的是你创造的是什么。仅掌握一种语言,你能够花很多其它的时间进行创造。

    6.你仅需学习数目有限的软件开发工作。大多数语言仅仅有屈指可数的一些工具。

    切换语言往往意味着转换不同的工具。仅仅掌握一种语言,你能够更快地精通相关的工具。这将有助于提高你的生产力。

    7.这更易于推销自己。

    仅仅掌握一种语言,你事实上已经将自己细分了(即便不是通过选择)。

    8.你能够凭借不论什么一种语言解决大多数软件问题。

    不管有多少人告诉。大多数语言能够解决不论什么问题。假设解决这个问题是你的主要目标(本应当是)。掌握很多其它的语言并不一定有助于实现这个目标。

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

    这不是一个非黑即白的问题。

    和大多数问题一样。最佳的解决方法是取中庸之道——总有一片灰色地带。假设你是刚開始学习的人,那么学习一种语言。并将其应用到前十多个项目中会比較easy。在此之后。我建议你成为一位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 框架及应用server,助您高速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验。Java 监控从来没有如此简单。想阅读很多其它技术文章,请訪问 OneAPM 官方技术博客

    本文转自 OneAPM 官方博客

  • 相关阅读:
    Leetcode645.Set Mismatch错误的集合
    Leetcode622.Design Circular Queue设计循环队列
    Leetcode628.Maximum Product of Three Numbers三个数的最大乘积
    Leetcode633.Sum of Square Numbers平方数之和
    Leetcode617.Merge Two Binary Trees合并二叉树
    Leetcode606.Construct String from Binary Tree根据二叉树创建字符串
    SQL Sever实验二 交互式 SQL
    [bzoj2124]等差子序列_线段树_hash
    [bzoj4084][Sdoi2015]双旋转字符串_hash
    [bzoj1708][Usaco2007 Oct]Money奶牛的硬币_动态规划_背包dp
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7076225.html
Copyright © 2020-2023  润新知