俗话说,生活中没有什么比带刀去打枪更糟糕的了。作为一名经验丰富的开发人员,我可以告诉你,这对于编程世界来说也是 100% 正确的。你必须在一个变化速度比我写这篇文章更快的行业中保持相关性。此外,你还有很多不同的任务要做。所以,在这种环境中生存多年后,我总是把我最喜欢的玩具放在身边并装好。对于一份安静而精确的工作,我信任的C++ 。如果我想做一个大数据爆炸,我会选择 R,有点奢侈,但功能强大。但如果事情变得非常混乱,我会把我的JavaScript从墙上拿下来:它让我在过去活了下来,它仍然可以承受更多的滥用。没有一种语言对每个人都是好或坏的。这取决于你和你必须做的工作。所以让我们讨论一下你是应该一直跟上潮流还是坚持老一套。这个问题比看起来要棘手一些……
鉴于科技的创新性,讨论是否要学习另一门语言可能听起来很愚蠢。事实上,如果世界停滞不前,我们仍然会使用泥板和算盘。值得庆幸的是,创新的愿望带来了持续的进步,需要不断升级技能。例如,在 20 世纪 60 年代,与计算机通信需要在纸上打孔并将其送入机器。今天,计算机可以装进我们的口袋,我们遇到的唯一漏洞就是购买计算机后的预算。想象一下 60 年代最先进的开发人员试图保持相关性而不发展他们的技能。
编程语言的发展速度比其创造者更快。新的需求、想法和工具以惊人的速度出现,它们彻底改变了传统的方法和实践。忽视这一事实的专家会像他们坚持使用的语言一样过时。一个典型的例子是 COBOL,尽管它在 60 年代的商业应用中很受欢迎,但随着技术的进步,它已经几乎过时了。
学习新编程语言的另一个原因是职业前景。一些专家认识到,掌握最新技术越多,获得高薪工作的机会就越大,因此他们积极学习新语言。这种努力是合理的:了解新技术无疑会拓宽就业机会。有时,即使语言本身仍然适用,但公司改变了其技术堆栈,新技术也是必要的。在这种情况下,员工必须适应或找到新工作。通常,他们会选择学习新技术。
学习新语言不仅对实践有益,而且对创造力也有好处。它可以为熟悉的任务提供新方法,扩大视野和潜力。例如,流行的 PHP 框架 Symfony 的灵感来自基于 Java 的 Spring 框架。许多开源库开发人员都从其他语言实现的库中汲取了灵感,而您可能就是下一个创新者。
但为了真实起见,让我们反过来看看我们在上一章讨论过的所有事情。你知道最后一次使用打孔卡是什么时候吗?猜一猜吧……除非你现在就用谷歌搜索答案作弊,否则你的猜测可能是错的。正确答案是 2014 年。那一年,最后一批打孔卡
你所了解或将要学习的编程语言在短期内变得过时和无用的可能性有多大?这个问题没有真正的答案,只有猜测。一些作者估计编程语言的平均生命周期在任何地方
换句话说,存在时间足够长的语言可能会继续存在几十年。相反,新奇的东西也有可能很快过时——但这还有待观察。一种语言每活跃一年,其存活时间就会增加一年。
那么我们应该怎么做呢?学习一门语言?一门新语言还是旧语言?学习本身总是好的。研究表明,近一半的开发人员考虑学习一门新语言。根据 JetBrains 的“
例如,大多数 COBOL 程序员
如果你更喜欢创业公司的活力或科技巨头的力量,那么你应该选择更现代、更有前途的东西。看看其他人在做什么可能会给你一些提示:例如,查看编程语言的最新排名
如果不加以实际应用,所获得的知识很快就会过时。因此,仅仅为了打勾而学习一门新语言是没有意义的。相反,你应该考虑如何在你目前的工作中使用它。如果你的公司已经使用了这项技术,那么它可以成为学习的极大动力。只需让你的经理或团队负责人给你分配与之相关的任务,让你通过实践巩固你的知识。如果你的工作使用固定的技术栈,没有机会学习新的东西,你可以随时创建自己的副项目,独立探索新的边界。只要确保在这样做的时候不要违反你的雇佣合同。
即使你刚刚开始开发,策略也是一样的:选择一种你可以在现实生活中使用的技术(在工作中或在业余项目中)。选择一种前景光明的语言,而不是开发者社区避之不及的语言。由于你才刚刚开始你的旅程,没有高薪和专家期望的负担,如果你学习的第二门语言比第一门语言更吸引你,你可以轻松快速地改变你的技术栈。你在选择上拥有更大的灵活性,值得利用这一优势。但不要过度:过于频繁地改变你的技术栈和压倒性的知识流可能会有害。在你想要的和你能管理的之间找到平衡,你一定会取得成功。
对于一些开发人员,尤其是那些拥有多年经验的开发人员来说,我的建议似乎显而易见。但俗话说,“重复是学习之母”,没有人能反驳这句明智之言的真理。我希望我的文章能鼓励那些一直想做却懒得采取行动的人,并激励那些热切的新手。我希望我的建议能证明是有用的,甚至可能激发进一步的职业成长。