你是否遇到过自称“多语种程序员”的人?|策划

作者|拉维·拉詹

翻译 | 王强

规划 | 张小南

你见过自称“多语言程序员”的人吗?他们能够掌握多种编程语言。

在程序员的世界里,很多编程高手都会被称为各种头衔,其中一些听起来很“狗血”,比如:

《密码忍者》

“摇滚明星开发商”

《电力程序员》

“开源专家”(Open Source Pundits)

“多处理大亨”

“服务器僧侣”等等……

相比之下,多语言程序员这个词就很正常了。

Merriam-Webster 将“多语言”定义为编程语言或术语的混合或融合。

人们普遍认为,多语言编程一词是由 Neal Ford 在 2006 年的一篇博文中创造的。Dean Wampler 在 2010 年的演讲中补充了 Neal 的观点,重申不同的编程语言在不同的领域有自己的优势,程序员应该使用最好的工具来完成这项工作。

1

不一定精通每一种语言,但掌握方法论

多语言编程的想法起源于 2000 年代中期 Java 生态系统中的程序员之间。当时 Java 语言的发展停滞不前,但 JVM 是蓬勃发展的“非 Java”语言社区的基础。2003 年的 Groovy、2004 年的 Scala 和 2007 年的 Clojure 就是很好的例子。所有这些语言都提供了 Java 没有的特性,高阶函数就是最明显的例子之一。借助这些新功能,程序员显然很容易采用它们:将 Groovy 用于 XML,或将 Scala 用于嵌套结构从机器语言程序员看,等等。

这么多年过去了,多语言程序员的想法依然方兴未艾。

具体来说,精通多种编程语言的程序员必须至少精通三种不同的语言。理想情况下,他们能够很好地掌握这些语言的功能、深度和多样性。

这里举个例子:从技术上讲,精通 Java、C++ 和 ABAP 的开发人员可能被认为是多语言程序员,但是由于这三种语言都具有相似的面向对象的概念和结构,因此即使学习这三种语言也没有用。

正如加州大学欧文分校信息学高级讲师 Richard Pattis 告诉我们的:

编程语言不仅仅是工具,它们是塑造你编程思维的技术。如果你只是沉迷于学习很多类似的语言,它可能对你的思考没有多大帮助。

为了拓宽编程思维,Pattis 建议想要掌握多种编程语言的程序员学习不同的语言范式,特别是面向对象的语言(如 C++ 和 Java)、函数式语言(如 ML 和 Haskell )、脚本语言(如 Lisp 和 Python)、基于逻辑的语言(如 Prolog)或低级语言(如 C、Java 虚拟机或某些机器语言)。

图片[1]-你是否遇到过自称“多语种程序员”的人?|策划-老王博客

关键不是一定要精通每一种语言,而是要掌握以新的方式解决问题的方法论。优秀的程序员不只是写代码,他们不断地学习和探索,帮助他们以新的方式解决问题,找到最有效的解决方案。

2

多语言程序员的优势

但在我看来,成为一名多语言程序员,或者至少朝着这个方向努力,肯定会有所回报。

让你在职场中更具魅力

精通多种编程语言不仅能让你的简历增光添彩,还能向雇主展示你灵活、适应能力强,能够使用最适合工作的工具。

它为您提供了很多工作机会,至少,它可以让您在行业低迷时期有所帮助。因为你能够探索多种编程范式,你会感到快乐和充满活力,这也会体现在你的编程风格上。您可以以更好的方式编写代码,以利用业务中所有最好的东西。多语言程序员可以尝试不同的语法并了解不同的社区,这种不断的探索是程序员可以拥有的最佳体验之一。

另一个激动人心的时刻是当客户来找您并需要您的专业知识来解决他们的问题时,您的工具库中有更多工具可供选择,您可以为他们带来最大的价值。

成为最好的问题解决者

如果我用一句话来定义程序员的工作,那就是“解决问题”。优秀的程序员不一定要写出优秀的代码。他需要使用他掌握的最好的工具来解决业务问题。

在这里你可能会争辩说:“嘿,我是 Java 语言的高手,我知道如何使用 Java 解决所有问题。” 如果你这么认为,那么你就有了“锤子和钉子”综合症。这种综合症的症状是,如果你有一把锤子,每一个问题都对你来说就像是钉子。在这个例子中,你所拥有的只是一把锤子(也就是 Java),而你的想法最终是,不管是什么问题,找到用 Java 解决它的最佳方法。这种说法其实很客气。说白了,如果 Java 不能解决你的问题,你可能会陷入困境。

虽然这种糟糕的情况并非每天都会发生,但在现实生活中确实会发生在你身上,你正在处理与以前处理过的问题不同的问题。您可能会想出一个低效的解决方案,因为该语言是您唯一知道的语言。

所以学习一门新语言可以扩展你解决问题的能力。你的思想将摆脱特定语言的束缚从机器语言程序员看,你将开始能够从不同的角度看待事物。这种感知上的差异将显着提高您使用当前语言的能力,并且您可能会发现自己对如何更有效地解决问题有了新的想法。

增强学习能力

当你开始学习一门新的编程语言时会发生什么?

你会浏览书籍;你会思考示例代码;你会尝试很多例子;您会在社区中找到许多志同道合的人。

简而言之,您将立即进入学习模式。这就像在健身房锻炼一样,一开始你的肌肉会因为疼痛而尖叫,但过了一段时间,它们会根据你的日程调整自己,这样你就不会像一开始那样感到疼痛了。肌肉开始增长,这反过来会增加你的耐力和力量。

学习对你的大脑也是如此。一旦你的大脑习惯了新概念(如新编程语言)的学习曲线,它最终会变得更加灵活和适应性强。这意味着您的大脑将帮助您提高日常工作的效率,并更轻松地适应您每天使用的各种技术的细微差别。例如,精通 ABAP 等业务语言的 Java 开发人员可以轻松地将共享库的概念与业务术语联系起来并使用。

最终的结果是你的学习能力得到了增强。随着时间的推移,你学习新事物会变得更容易和更快。

3

多语制也可能是致命弱点

虽然学习多种编程语言有很多好处,但这种不断学习也带来了一系列挑战。

Douglas Crockford 在他的书 JavaScript: The Good Part () 中谈到了 JavaScript 的优缺点。同样,每种语言都有自己的挑战要面对。如果你经常切换编程语言,却没有花足够的时间去深入研究它们,你最终可能会成为“万事通和万事通”。如果你没有掌握一门新语言所需的技能,你理解多种语言的能力可能反过来成为你的致命弱点。

不断学习和适应新的语言和技术也可能让开发人员不知所措。很难跟上所有的技术,你可能会发现自己到处乱跑,一无所获。关键是专注于你能顺利消化的东西,当你达到极限时停止。一旦你为工作选择了最好的工具并获得了最好的性能,就停下来专注于巩固你已经取得的成果。一切都不要过度。

记住,一定要权衡你付出的和得到的。我们从多语言编程中获得的好处应该总是超过成本。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论