[译]你应该雇佣老程序员的五个理由

栏目: IT资讯 · 发布时间: 5年前

内容简介:译者简介:ASCE1885,原文链接:

译者简介:ASCE1885, 《Android 高级进阶》《Android 高级进阶(源码剖析篇)》 作者

原文链接: https://joshondesign.com/2017/07/02/hire_old_programmer

[译]你应该雇佣老 <a href='https://www.codercto.com'>程序员</a> 的五个理由

你应该雇佣老程序员,我没开玩笑!当然,年长的程序员不会像大学毕业生那样能够工作那么多个小时。他们有孩子和配偶,要还抵押贷款,而且还要参加垒球比赛。他们不会在办公室通宵玩 XBox 和乒乓球,也不会每周工作 80 个小时,实际上他们将会享受属于他们的假期时间。当然相比年轻程序员,他们的薪资待遇更高。尽管你有这么多理由不去雇佣老程序员,但你别无选择。最简单的一个原因是:他们值得你的付出。我知道这一点,我就是这样一名老程序员。

老程序员也许不会像 25 岁时那样在大脑中能装下那么多代码,但我们有着非常丰富的经验。我们知道,不管你的脑袋有多大,每个系统的代码规模都将会变得远远超过你大脑中所能容纳的量,所以大脑能装下多少代码并没有你想象的那么重要。相反,我们理解模块化的设计思想,我们是传说中的 10X 程序员,当然不是因为我们写的代码比其他人好得多,而是因为我们已经经历过了一切。在过去这些年,我们已经使用过很多编程语言,因此我们可以很容易学会任何新的语言。我们知道语言间的共同点,编程语言的概念一次又一次兴起,拥有着多年的经验,我们可以发现语言的相似之处并指出差异的地方。

“The bitterness of poor quality remains long after the sweetness of low price is forgotten.”

“在廉价所带来的甜蜜被遗忘后,劣质所伴随的苦楚将依然留存。”

— 本杰明·富兰克林

老程序员拥有判断力。他们知道在何处可以将系统进行模块化拆分,并保证是可靠和可测试的。他们可以从架构图中看出系统可能的瓶颈在哪里。(你是拥有大量的数据还是大数据?这一点很重要)。他们知道如何为特定项目选择哪种技术,以及如何优化可靠性,性能和开发速度(三者中任选二)。他们知道如何做出权衡。即使他们从来没有为你的项目实际写过一行代码,但老程序员还是很有价值的。他们懂得如何建立质量保证,从长远来看,高质量意味着更低的维护成本。

知识的深度

“True knowledge comes with deep understanding of a topic and its inner workings.”

“真正的知识来源于对某个主题及其内部工作原理的深刻理解”

— 阿尔伯特·爱因斯坦

老程序员对特定领域有深刻的理解。这些知识使得他们知道从哪里可以找到系统的 bugs,以及如何完全避免这些错误。例如,我非常熟悉 GUI 工具包,过去这些年我用过很多种,我待过三个核心工程团队(Swing,JavaFX 和 SubArctic)。出于兴趣,我曾经四次从零开始构建过自己的 工具 包,我甚至可以写一个过去四十年 GUI 工具包发展的详细历史(也许我应该在某个时候把它写出来)。

我可以立即投入到新的 GUI 系统上并开始工作。如果我看到三个按钮都向右移动了 68 个像素,那么我可以立即判断出 bug 位于三个位置其中之一(可能是全局到局部转换代码的问题)。如果你想创建一个新的组件,我可以确切的告诉你需要哪些扩展点。对于 GUI 工具包工作原理的深入理解,意味着我真的可以比别人更快的构建应用程序。我有 25 年的肌肉记忆做支撑,我掌握了 UI 工具包的深层知识,对于其他人来说,他的深层知识可能是内核驱动程序,或者数据库索引,或者编译器等。关键在于,深层知识相比能花多长时间编写代码和纯粹的编码能力更重要。

知识的广度

“A small team of A+ employees can easily out perform larger teams of B and C employees.”

一个由 A+ 员工组成的小型团队可以轻松击败由 B 和 C 员工组成的大型团队。

— 史蒂夫·乔布斯

老程序员涉猎都很广,虽然我专注于应用程序和前端开发,但整个开发技术栈我都玩过。我曾为无界面的内存受限系统编写过代码,还编写过解析器,数据库和固件程序,甚至写过一个非常糟糕的内核驱动程序。我写过画图相关的 demos,生成过千兆字节的测试数据等等。当然,你不应该聘请我来建立一个数据库,编写固件程序或者设计你的下一个网站,但我由于有足够的涉猎因此了解这些系统是如何工作的。这意味着我可以和数据库专家或者固件专家很好的交流,我知道如何有效的和其他领域的人交流。正是这种沟通能力使得我成为一个富有成效的团队成员,而不仅仅是编写代码的。

沟通技巧

任何一个四十多岁的程序员都必须具备良好的沟通技巧。这些能力和他们的编程能力一样有价值。一个新的 API 如果不能有效的传达给它的使用者,那么它是毫无价值的。大多数大型软件项目的失败不是因为代码不好,而是因为沟通相关的问题。

没错,老程序员需要花费更多的薪资,而且看起来工作时间更少,但实际上我们完成了更多的工作。我们可以正确的评估并按时发布代码。我们能够构建出更少 bug 的系统,同时拥有合适的性能。我们可能写的代码更少,但产出更多的商业价值。这就是我们值得高薪资的原因。

[译]你应该雇佣老程序员的五个理由


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Security Testing Cookbook

Web Security Testing Cookbook

Paco Hope、Ben Walther / O'Reilly Media / 2008-10-24 / USD 39.99

Among the tests you perform on web applications, security testing is perhaps the most important, yet it's often the most neglected. The recipes in the Web Security Testing Cookbook demonstrate how dev......一起来看看 《Web Security Testing Cookbook》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具