paint-brush
先生们,选择你的武器!你应该(不?)学习的编程语言经过@shcherbanich
219 讀數

先生们,选择你的武器!你应该(不?)学习的编程语言

经过 Filipp Shcherbanich7m2024/09/03
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

在快速发展的编程世界中,开发人员必须决定是采用新语言还是坚持使用成熟的语言。本文讨论了这两种方法的优缺点,强调了实际应用和职业目标在做出这一选择时的重要性。

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 先生们,选择你的武器!你应该(不?)学习的编程语言
Filipp Shcherbanich HackerNoon profile picture
0-item
1-item

俗话说,生活中没有什么比带刀去打枪更糟糕的了。作为一名经验丰富的开发人员,我可以告诉你,这对于编程世界来说也是 100% 正确的。你必须在一个变化速度比我写这篇文章更快的行业中保持相关性。此外,你还有很多不同的任务要做。所以,在这种环境中生存多年后,我总是把我最喜欢的玩具放在身边并装好。对于一份安静而精确的工作,我信任的C++ 。如果我想做一个大数据爆炸,我会选择 R,有点奢侈,但功能强大。但如果事情变得非常混乱,我会把我的JavaScript从墙上拿下来:它让我在过去活了下来,它仍然可以承受更多的滥用。没有一种语言对每个人都是好或坏的。这取决于你和你必须做的工作。所以让我们讨论一下你是应该一直跟上潮流还是坚持老一套。这个问题比看起来要棘手一些……

每天都是一个新的开始吗?

鉴于科技的创新性,讨论是否要学习另一门语言可能听起来很愚蠢。事实上,如果世界停滞不前,我们仍然会使用泥板和算盘。值得庆幸的是,创新的愿望带来了持续的进步,需要不断升级技能。例如,在 20 世纪 60 年代,与计算机通信需要在纸上打孔并将其送入机器。今天,计算机可以装进我们的口袋,我们遇到的唯一漏洞就是购买计算机后的预算。想象一下 60 年代最先进的开发人员试图保持相关性而不发展他们的技能。


编程语言的发展速度比其创造者更快。新的需求、想法和工具以惊人的速度出现,它们彻底改变了传统的方法和实践。忽视这一事实的专家会像他们坚持使用的语言一样过时。一个典型的例子是 COBOL,尽管它在 60 年代的商业应用中很受欢迎,但随着技术的进步,它已经几乎过时了。


学习新编程语言的另一个原因是职业前景。一些专家认识到,掌握最新技术越多,获得高薪工作的机会就越大,因此他们积极学习新语言。这种努力是合理的:了解新技术无疑会拓宽就业机会。有时,即使语言本身仍然适用,但公司改变了其技术堆栈,新技术也是必要的。在这种情况下,员工必须适应或找到新工作。通常,他们会选择学习新技术。


学习新语言不仅对实践有益,而且对创造力也有好处。它可以为熟悉的任务提供新方法,扩大视野和潜力。例如,流行的 PHP 框架 Symfony 的灵感来自基于 Java 的 Spring 框架。许多开源库开发人员都从其他语言实现的库中汲取了灵感,而您可能就是下一个创新者。

…或者是旧的真金?

但为了真实起见,让我们反过来看看我们在上一章讨论过的所有事情。你知道最后一次使用打孔卡是什么时候吗?猜一猜吧……除非你现在就用谷歌搜索答案作弊,否则你的猜测可能是错的。正确答案是 2014 年。那一年,最后一批打孔卡被使用在美国大选期间,爱达荷州的投票机上,投票率很高。或者以 COBOL 为例,我们在前几段中指出,这种语言已经过时了。那么,截至 2017 年,根据路透社,43% 的银行系统基于 COBOL;80% 的面对面交易采用 COBOL,并且有 2200亿行用 COBOL 编写的代码仍在使用。因此,一种语言与现代系统无关与其普遍过时之间实际上存在一条(不那么细的)界限。


你所了解或将要学习的编程语言在短期内变得过时和无用的可能性有多大?这个问题没有真正的答案,只有猜测。一些作者估计编程语言的平均生命周期在任何地方14至18.5岁。 其他的对于主流语言来说,它需要 25 年左右的时间,而对于更小众和奇特的工具来说,则需要 5-6 年的时间。但也有另一个观点值得一提的是,它看起来已被历史充分证明。它基于林迪效应,纳西姆·尼古拉斯·塔勒布在他的书中对此进行了最详尽的描述《反脆弱:从混乱中获益》“如果一本书已经出版了四十年,我可以预计它还会再出版四十年。但是,这就是主要的区别,如果它再存续十年,那么预计它还会再出版五十年。这简单地告诉你为什么存在了很长时间的东西不会像人一样“衰老”,而是反向“衰老”。每过一年而不灭绝,预期寿命就会增加一倍。这是某种坚固性的指标。物品的坚固性与其寿命成正比!”


换句话说,存在时间足够长的语言可能会继续存在几十年。相反,新奇的东西也有可能很快过时——但这还有待观察。一种语言每活跃一年,其存活时间就会增加一年。

考虑职业而不是语言

那么我们应该怎么做呢?学习一门语言?一门新语言还是旧语言?学习本身总是好的。研究表明,近一半的开发人员考虑学习一门新语言。根据 JetBrains 的“ 2023 年开发者生态系统状况”调查中,超过 40% 的受访者表达了这种愿望。使用 JavaScript (49%)、PHP 和 Python (45%) 以及 C++ (44%) 的开发人员对学习新东西表现出最大的兴趣。选择你想学习的语言实际上取决于你的职业轨迹。如果你正在考虑一份可以持续很长时间(但不是永远)的稳定工作,你可能会选择一些旧的和经过验证的东西。这样的机会可能出现在科学、制造业和传统银行,即拥有长期昂贵的机器和/或严重依赖遗留代码的基础设施的机构。


例如,大多数 COBOL 程序员45 至 55 岁之间2017 年。加上研究发表以来的七年,你会发现许多 COBOL 开发人员都进入了退休年龄。如果 COBOL 的寿命像预期的那样长,这可能是你成为稀有高价值专家的机会。但请记住,这样的选择需要非常深厚的知识和完美的技能。此外,如果出现问题,除非你决定改变你的职业,否则你未来的工作选择可能会非常有限。


如果你更喜欢创业公司的活力或科技巨头的力量,那么你应该选择更现代、更有前途的东西。看看其他人在做什么可能会给你一些提示:例如,查看编程语言的最新排名红蒙克或者互联网金融。不要太认真,因为任何可以想象的排名都是基于某种程度的简化,但它们仍可能让您大致了解正在发生的事情。此外,JetBrains 的上述调查显示哪些语言是最常学习的。这样,你一定能学到一门有前途的语言。

永远务实

如果不加以实际应用,所获得的知识很快就会过时。因此,仅仅为了打勾而学习一门新语言是没有意义的。相反,你应该考虑如何在你目前的工作中使用它。如果你的公司已经使用了这项技术,那么它可以成为学习的极大动力。只需让你的经理或团队负责人给你分配与之相关的任务,让你通过实践巩固你的知识。如果你的工作使用固定的技术栈,没有机会学习新的东西,你可以随时创建自己的副项目,独立探索新的边界。只要确保在这样做的时候不要违反你的雇佣合同。


即使你刚刚开始开发,策略也是一样的:选择一种你可以在现实生活中使用的技术(在工作中或在业余项目中)。选择一种前景光明的语言,而不是开发者社区避之不及的语言。由于你才刚刚开始你的旅程,没有高薪和专家期望的负担,如果你学习的第二门语言比第一门语言更吸引你,你可以轻松快速地改变你的技术栈。你在选择上拥有更大的灵活性,值得利用这一优势。但不要过度:过于频繁地改变你的技术栈和压倒性的知识流可能会有害。在你想要的和你能管理的之间找到平衡,你一定会取得成功。


对于一些开发人员,尤其是那些拥有多年经验的开发人员来说,我的建议似乎显而易见。但俗话说,“重复是学习之母”,没有人能反驳这句明智之言的真理。我希望我的文章能鼓励那些一直想做却懒得采取行动的人,并激励那些热切的新手。我希望我的建议能证明是有用的,甚至可能激发进一步的职业成长。