你需要掌握多种语言吗?
我刚刚断送了我的事业。嗯,别人就是这么对我说的。
我的同事们知道了我要离开公司,大多数对此表示理解。让他们不解的是,我目前就职的公司是一家 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 官方博客
相关推荐
这个“DevExpress多种语言包”显然提供了DevExpress组件的多语言支持,使得开发者能够创建多语言应用,满足全球用户的需求。 1. **DevExpress组件库** DevExpress提供了一系列强大的开发组件,包括UI控件、报表...
在本项目中,我们主要探讨的是如何利用PHP技术来实现一个系统的多语言自动替换功能,同时支持语言包的自动生成,以及从中文转换为多种其他语言的机制。这个项目适用于那些需要多语言支持的Web应用,例如网站、电商...
了解和掌握这些编程语言,对于机器人研发人员来说至关重要。不同的项目和应用场景可能需要不同的语言,因此多元化技能对于适应不断发展的机器人技术领域至关重要。例如,四轴机器人的编程可能涉及实时控制和运动规划...
学习编程语言需要有耐心、恒心和毅力,需要选择合适的语言和集成开发环境,掌握基本的编程概念和知识,需要大量的实践和练习。只有通过不断的学习和实践,才能真正掌握编程语言的精髓。 六、总结 本文总结了当前...
在选择编程语言时,我们需要考虑多种因素,包括学习曲线、应用领域、性能需求以及社区支持。C、C++、VB(Visual Basic)、Java和C#都是广泛应用的编程语言,每种都有其独特的优势和适用场景。 C语言是基础且强大的...
每种编程语言都有其特定的用途和适用场景,因此掌握多种编程语言对于成为一名全面的开发者至关重要。本资源提供了多种编程语言的学习路线思维导图,包括JAVA、C、C++、JavaScript(JS)、PHP、Python、Swift以及...
该项目是一个基于多种编程语言的CommonCode学习自测设计源码,主要使用Python语言开发。项目共包含1470个文件,涵盖了Python、C、...这些杂七杂八的学习自测代码旨在帮助用户掌握多种编程语言的基础知识和应用实践。
通过阅读《七周七语言:理解多种编程范型》,你将能掌握各种编程思想的精髓,学会如何在不同场景下选择合适的编程范型,从而提高编程效率和代码质量。这本书不仅适合初学者拓宽视野,也适合经验丰富的开发者深入理解...
1. 语言支持:Win7 语言包支持多种语言,但需要用户选择合适的语言包。 2. 软件工具:用户需要下载微软官方网站提供的语言包安装工具。 3. 安装时间:安装语言包需要等待 20 分钟左右。 4. 重新启动电脑:安装完成后...
在 Java web 项目开发中,需要掌握多种技术,包括 Java 语言、面向对象分析设计思想、设计模式和框架结构、XML 语言、网页脚本语言、数据库、应用服务器、集成开发环境等。 Java 语言 Java 语言体系比较庞大,包括...
对于每种语言,分别介绍了各自的特性、应用,以及编程入门知识和关键编程范型,还带领读者使用能够代表该语言最重要特性的技术,解决某个不寻常的问题,使其充分掌握每种语言。 《七周七语言:理解多种编程范型》...
掌握了C语言之后,学习其他高级语言会相对容易,许多编程思想和概念在不同语言间是相通的。 6. 广泛的代码库和社区支持:由于C语言已经存在了很多年,拥有庞大的用户和开发者社区。这意味着在遇到问题时,可以方便...
- WinCC_flexible支持多种项目语言的管理与翻译功能,允许用户轻松地在不同语言之间切换。 #### 二、创建多语言项目 **2.1 用中文创建项目** - 创建一个基础的中文项目,包括至少一个画面,其中含有文本域和用于...
3. **技能多样化的重要性**:作为程序员,掌握多种编程语言能够增强自身的职业竞争力。 #### 五、总结 通过对以上三个故事的分析可以看出,编程语言的选择不仅反映了个人的技术偏好,还涉及到团队合作、项目管理等...
《七周七语言:理解多种编程范型》是一本旨在帮助读者理解和掌握多种编程范型的书籍。作者Bruce A. Tate通过介绍七种不同的编程语言,引导读者深入了解各种编程风格和思维方式,旨在提升程序员的技能多样性。这本书...
R语言提供了多种数据类型,如 numeric、logical、character、complex、integer 等。 2.1.1 基本数据类型 R语言的基本数据类型包括numeric、logical、character、complex、integer 等。 2.1.2 查看与转换对象的...
Java Web 项目开发需要掌握的技术栈 ... Java Web 项目开发需要掌握多种技术,包括 Java 语言、Web 服务器、数据库连接、网页设计、脚本语言等。只有掌握了这些技术,才能开发出高质量的 Java Web 项目。
* 高级语言程序员需要具备的汇编语言知识 * 如何使用汇编语言来优化高级语言代码 本书第二卷的主要内容是运用底层语言思想编写高级语言代码,帮助程序员更好地理解编译器的输出和汇编语言程序,提高编程能力和水平...
学习汇编语言可以帮助我们更好地理解计算机的工作机理,掌握计算机的内部工作机制。 为什么要学习汇编语言 学习汇编语言可以从多方面提高我们的计算机知识和技能。首先,汇编语言可以帮助我们更好地理解计算机的...
在未来五年内,程序员需要掌握多种技能以适应不断变化的技术潮流和市场需求。以下是十项关键技能,涵盖编程语言、互联网 Rich Application、Web 开发、Web 服务、软实力、动态/函数编程语言、敏捷开发方法、开发修养...