我对多语言程序员的定义。编程这一术语

全文共2600字,预计学习时间9分钟。

“编程忍者”、“摇滚明星开发者”、“程序员”、“开源专家”、“多处理大亨”、“服务器大师”……一些奇怪术语的狂热分子称多语程序员。

我对多语言程序员的定义是不同的。韦氏词典将“多语言”定义为语言或术语的混合或混淆。听起来像是警告,对吧?

通常,多语言编程一词被认为是 Neil Ford 在 2006 年的一篇博客文章中创造的。2010 年,Dean Wampler 在他的演讲中更详细地解释了 Ford 的论文,他在演讲中重申了不同语言在不同领域的优势,程序员应该使用最适合工作的语言工具。

多语言编程的想法起源于 2000 年代中期,在 Java 生态系统的程序员社区中。

那时 Java 语言已经停滞不前,但 Java 虚拟机 (JVM) 是蓬勃发展的“非 Java”语言社区的基础。2003 年的 Groovy、2004 年的 Scala 和 2007 年的 Clojure 就是很好的例子。

这些语言都提供了Java没有的特性,高阶函数是最明显的一种。借助这些新特性,程序员显然可以轻松完成这些事情:使用 Groovy 实现可扩展标记语言 (XML),或使用 Scala 实现嵌套结构,等等。

10多年过去了,多语言程序员的概念仍然方兴未​​艾。

具体来说,多语言程序员至少精通三种不同的编程语言。理想情况下,混合语言提供强度、深度和多样性,关键是“不同”。

从技术角度来看,精通 Java、C++ 和 ABAP 的人可能被认为是多语言程序员。但是,由于上述三种语言具有相似的、面向对象的概念和结构,因此即使将三种语言都学完也没什么用。

正如加州大学欧文分校信息学高级讲师 Richard Pattis 所说:“编程语言不仅是用于不同工作的工具,而且是一种塑造你对编程看法的技术。学习一门类似的编程语言可能对你的思维进步没有多大贡献。”

为了拓宽思路,Pattis 建议掌握多种编程语言的程序员从不同的语言范式中学习,无论是面向对象的语言(如 C++/Java),还是函数式语言(如 ML 和 Haskell),脚本语言(如 Lisp 和 Python)、基于逻辑的语言(如 Prolog)或低级语言(如 C、Java 虚拟机或机器语言)。关键不是语言流利,而是要掌握方法论,以新的方式解决问题。

优秀的程序员不仅会编写代码,还会继续学习帮助他们以新方式解决问题并找到最有效解决方案的关键概念。

在我看来,成为一名多语言程序员有很多好处。以下内容足以上诉。

让你在职场中更具魅力

精通多种编程语言不仅可以增加你的简历,还可以表明你灵活、适应能力强,并且能够使用最好的工具来完成工作。

它为您提供更多机会,让您轻松应对行业低迷。拥有探索多种编程范式的能力,你会感到快乐和富有成效,这将反映在你的编码风格中。

通过利用行业中的所有最佳实践,您将开发出更好的代码编写方法。多语言程序员能够尝试不同的语法并了解不同的社区——这种不断的探索是任何程序员都能拥有的最佳体验之一。

掌握多种语言还可以帮助您经营自己的业务。当客户找到您并需要您的专业知识来解决他们的问题时,您的“工具库”中有更多工具可供选择并为他们带来最大价值。

做最好的问题解决者,而不仅仅是程序员

图片[1]-我对多语言程序员的定义。编程这一术语-老王博客

如何最简洁地定义程序员的工作?那就是“解决问题”。优秀的程序员不只是编写出色的代码,他们使用手头最好的工具来解决业务问题。

你可能不同意;“嘿,我是一个很棒的 Java 人,我知道如何用 Java 解决所有问题”。如果你这么认为,你可能患有“锤子和指甲”综合症。

综合症是,如果你有一把锤子,每一个问题对你来说都像是钉子。在这种情况下,您只有一把锤子(即Java),最终,您的思想将仅限于寻找用Java解决它的最佳方法,无论问题是什么。换句话说,如果 Java 不能解决您的问题,您可能会陷入困境。

在现实中,你会遇到以前从未解决过的问题,你可能的解决方案可能不够高效,但这是你知道的唯一方法。

学习一门新语言为解决问题开辟了思路。您的思想将摆脱特定语言的束缚,并开始从不同的角度看待事物。这将显着提高您使用当前语言的能力,并且您可能会发现自己想出了新的想法来更有效地解决问题。

进入学习模式

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

您将深入研究书籍,消化示例代码,并尝试各种示例。您会发现论坛、本地团体、同事或其他任何在使用新语言方面更有经验的人,可以帮助您正确学习该语言。这些人可以帮助指导学习过程中的思维过程。您将开始活跃于社区论坛并开始定期提问。

简而言之,您将立即进入学习模式。这就像在健身房锻炼一样。最初从机器语言程序员看,肌肉会酸痛,但一段时间后,肌肉会适应运动周期,不再像以前那样酸痛了。随着肌肉的增长,耐力和力量也会增加。

学习对你的大脑也是如此。一旦大脑适应了一个新概念的学习曲线,比如一种新的编程语言,它最终会让大脑变得更加敏捷和适应性强。这将帮助您在日常工作中更有效地完成任务从机器语言程序员看,并更轻松地适应您每天使用的各种技术的细微差别。

例如,掌握 ABAP 等业务语言的 Java 开发人员可以轻松地将共享对象概念与业务术语相关联并使用。

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

预防措施

学习多种编程语言虽然有很多好处,但也带来了很多挑战。

在 JavaScript: The Language of Digest 中,Douglas Crockford 讨论了 JavaScript 的优缺点。每种语言都有自己的挑战,如果你学会经常切换编程语言并且没有花足够的时间深入研究它们,你最终可能会成为“多面手”。

如果你没有达到精通一门新语言的程度,那么多语言能力很可能会成为你的致命弱点。不断学习和适应新语言和技术的过程也可能让开发人员不知所措。很难同步所有技术,而且您可能会发现自己在学习道路上四处奔波,却一无所获。

关键是要以中等难度学习,专注于你能消化的东西,当你达到学习极限时停止。一旦你为工作选择了最好的工具,并且你已经取得了最好的表现,你就可以停止学习并专注于建立你所学的东西。一切都应该适度,不要过度。

正如 Alan Perlis 所说,“如果一种语言不会影响你对编程的看法,那么你就不需要学习它。”

请记住,智慧在于了解学习一门新语言的成本,而从中获得的收益应该永远大于成本。

留言点赞并关注

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

请登录后发表评论