`
OneAPM_Official
  • 浏览: 22513 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

你需要掌握多种语言吗?

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

我的同事们知道了我要离开公司,大多数对此表示理解。让他们不解的是,我目前就职的公司是一家 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.精通一种事物比浅尝十种事物更好。

这不是一个非黑即白的问题。和大多数问题一样,最佳的解决方法是取中庸之道——总有一片灰色地带。如果你是初学者,那么学习一种语言,并将其应用到前十多个项目中会比较容易。在此之后,我建议你成为一位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 官方博客

分享到:
评论

相关推荐

    七周七语言:理解多种编程范型

    对于每种语言,分别介绍了各自的特性、应用,以及编程入门知识和关键编程范型,还带领读者使用能够代表该语言最重要特性的技术,解决某个不寻常的问题,使其充分掌握每种语言。 《七周七语言:理解多种编程范型》...

    七周七语言_理解多种编程范型-[PDF]

    对于每种语言,分别介绍了各自的特性、应用,以及编程入门知识和关键编程范型,还带领读者使用能够代表该语言最重要特性的技术,解决某个不寻常的问题,使其充分掌握每种语言。 《七周七语言:理解多种编程范型》...

    大规模语言模型:从理论到实践

    了包括 BERT[1],GPT[6] 等在内多种模型,并在几乎所有自然语言处理任务中都表现出色。2019 年 大模型呈现爆发式的增长,特别是 2022 年 11 月 ChatGPT(Chat Generative Pre-trained Transformer) 发布后,更是...

    七周七语言:理解多种编程范型.pdf

    在这个飞速发展的信息时代,程序员仅仅掌握甚至精通一门语言是远远不够的。了解多门语言蕴涵的思维方式,在编码中互相借鉴,再挑出一两门对自己口味的语言深入学习,这些已经成为在软件行业中安身立命之本。从这个...

    七周七语言:理解多种编程范型.[美]Bruce A.Tate(超清中文版带详细书签pdf)

    《七周七语言:理解多种编程范型》共介绍了七种不同的编程语言。对于每种语言,分别介绍了各自的特性、应用,以及编程入门知识和关键编程范型,还带领读者使用能够代表该语言最重要特性的技术,解决某个不寻常的问题...

    汉语编程编辑器 计算机语言

    用汉语言编辑的计算机语言,现在还不成熟在完善中,和其它编程语言互溶互通,学习掌握易语言对掌握其它编程语言具有桥梁作用。编程理念互通。支持完全面向对象的程序开发技术和...现已有简繁中文、英文等多种语言版本。

    C#语言教程:掌握.NET下的编程艺术

    C#(读作“C Sharp”)是一种功能强大的、类型安全的、面向对象的编程语言,它是由微软公司开发并作为.NET框架的一部分而推出的。C#语言结合了C++的强大功能和Java的易用性,同时增加了许多创新的特性,例如LINQ...

    V5Shop 多国语言版电子商务系统MultiLang v8.30.0606 RC.rar

    多种语言并存,支持前台多语言切换和数据同步、库存同步、汇率转换,真正做到了一站V5Shop 多国语言版电子商务系统立足于全球化贸易往来的一款外贸类企业用户高端应用电子商务系统软件,帮助企业快速搭建网聚全球...

    七周七语言

    《七周七语言:理解多种编程范型》共介绍了七种不同的编程语言。对于每种语言,分别介绍了各自的特性、应用,以及编程入门知识和关键编程范型,还带领读者使用能够代表该语言最重要特性的技术,解决某个不寻常的问题...

    PHP语言教程&案例&相关项目资源

    无论你是想要入门PHP还是希望进一步提升技能,这些教程都能满足你的需求,帮助你逐步掌握PHP语言的精髓。 此外,文章还强调了案例学习的重要性,并提供了多种获取案例资源的途径。从书籍中的经典案例到开源项目中的...

    《如师通语言学习软件(罗赛塔石碑)》

    您急需学会某种语言?让如师通帮助您实现美好的梦想,您能做到!Dynamic Immersion Method (沉浸式强化训练法)孩提时,您完全沉浸在自己的母语环境中,在不断将看到的图像与单词、短语联系的过程中,逐渐地学会了...

    汇编语言课件+试卷.zip

    试卷部分则提供了一套完整的汇编语言考试试卷,包含了选择题、填空题、编程题等多种题型,旨在全面检验学习者的学习效果。通过完成这些试卷,学习者可以及时了解自己的学习进度和薄弱环节,从而有针对性地进行复习和...

    C#语言教程&案例&相关项目资源

    通过学习和实践这些教程,你可以逐步掌握C#语言的核心概念和编程技巧。 此外,文章还强调了案例学习的重要性,并提供了多种获取案例资源的途径。无论是从书籍中汲取案例,还是从开源项目中学习实际应用,都能帮助你...

    JAVA语言考试系统的设计与实现

    该系统适用人群为Java程序员、Java编程学习者及考试机构使用人员,使用场景包括:Java语言知识考试,Java编程学习和Java程序员认证等多种情况。该系统的目标为为用户提供一款可靠、快捷、高效、安全的Java语言考试...

    ChatGPT应用实战详情介绍之聊天机器人和智能客服还有语言交互等功能详情介绍.doc

    ChatGPT应用实战详情介绍之聊天机器人和智能客服还有语言交互等功能详情介绍.doc ...ChatGPT是一种支持多语言的技术,能够处理多种语言的自然语言处理任务。因此,在全球化应用方面有很大的优势。

    mysql 含sql_语言教程和 SQL语言艺术两本电子书

    对于每一件服务器操作都提出了多种的解决方案。对于每一种的方法,虽然不一定都是非常实用的方法,读者能通过这些方法,熟悉MySQL的特点和强大的功能。 第一章简单介绍了MySQL的历史、特点,同时对SQL的语法进行了...

    C++入门经典(第3版)

    中文名: C++入门经典(第3版) 作者: (美)霍顿 ...他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验

    Python 3.7 练习代码集合,包含Web与脚本语言交互源码

    项目包含主要语言Python,以及HTML、Shell、JavaScript和TypeScript等多种语言编写的内容。总文件数达到738个,具体包括: - Python源文件(.py):371个 - 图片资源(.png):147个 - 用户界面文件(.ui):36个 -...

Global site tag (gtag.js) - Google Analytics