程序员经验过剩的典型特征#幽默#讽刺
照片由NESA by Makers在 Unsplash上拍摄
软件工程师似乎有一个自然的进步过程。
他们从经验不足,到中级,再到经验过剩的工程师。一旦软件工程师达到经验过剩的阶段,他们对代码的兴趣就会减少。相反,他们会被设计文档和重构旧代码所吸引。
奇怪的是,无论你在哪家公司工作,大多数经验过剩的工程师都会表现出同样的特征。他们对代码缺乏关注,导致每位工程师的代码编写速度变慢,因为相比于编写代码,他们把更多的时间浪费在了思考设计上。
从新手工程师到经验过剩工程师的转变并非一朝一夕就能实现的。然而,经过几年甚至几十年的时间,这些工程师逐渐进入了经验过剩的行列。
他们似乎在每家公司都一样,不断地处理他们的所有要求和不必要的繁忙工作真是令人沮丧。
如果您是初级工程师,甚至是经验丰富的工程师,这篇文章将有助于指出您可能表现出的阻碍发展的特质。
他们浪费时间进行重构
在最近的一条 Twitter 帖子中,@ techleadhd(可以说是当今最有经验的工程师之一)透露了他对编写代码的真实想法。
他显然不相信编写代码。相反,他似乎暗示删除和重构代码是有价值的。
但这不叫软件清理,而叫软件工程。
这意味着您需要设计代码,而不是维护代码。
维护代码是别人的工作。也许实习生可以做。
软件工程师应该把时间花在围绕低效的旧代码编写代码上,而不是试图改进旧的基础架构。只要代码能正常工作,使用胶带代码也没问题。未来的工程师肯定会绕过我们的工作来编写代码。我们对此束手无策。然而,经验过剩的工程师似乎认为维护旧代码很重要。
他们希望关注全局而不是代码
让我们明确一点:事情的全局和业务方面并不重要,只有代码才重要!
经验过剩的软件工程师有一个坏习惯,就是只关注全局,而忽略了代码本身。他们喜欢问诸如“这个项目会影响谁”、“最终用户将如何与代码交互”以及“我们将如何维护它”之类的问题。
他们浪费大量时间试图了解项目范围及其对公司的影响。有时,他们甚至会用自认为“更优的解决方案”来挑战领导层。我们甚至不确定,当他们专注于“影响”和“优先级”等琐碎事务时,他们是如何抽出时间完成所有代码的。
将所有时间都花在会议、站立会议、指标跟踪和代码审查上,会导致编写代码的纯粹性丧失。
我们并不惊讶,经验过剩的工程师有时会失去经验不足的工程师身上那一丝希望。经验不足的工程师只专注于代码,按照指令行事,即使范围可能过于复杂。
这是因为优秀的程序员不应该质疑自己正在做的事情。相反,无论需求是什么,他们都应该埋头苦干,坚持编码。业务部门始终清楚地知道什么会对公司产生影响。作为程序员,我们的工作是实现目标,而不是去琢磨我们能做的事情是否值得做,或者它是否符合公司战略。
我们需要帮助经验过度的工程师记住他们是程序员,而不是领导者。
他们总是想要一份设计文档
出于某种原因,经验丰富的软件工程师总是想要一份设计文档。
无论项目规模大小,直接开始编程都会快得多,无需考虑设计文档。您可以跳过思考需要哪些对象或代码将要执行哪些操作场景的步骤。
从我们的角度来看,只要在脑子里记住所有事情就容易多了。即使有数千行代码,管理起来也不那么困难。
这并不意味着我们会用稍微不同的对象或任何东西来重复功能。
我们不会使用多个对象创建重复的功能。
那么为什么经验丰富的软件工程师如此关心这个问题呢?
最后,如果我们不需要花时间思考设计文档,我们编写代码的速度将提高十倍,并且能够更有效地产生影响。
他们不喜欢“复杂性”和“过度设计”
在某个时候,我认为有些工程师不再想考虑其他人的代码。
因此,当您创建一个模块,利用您在学校学到的所有知识,并将其与面向对象的记忆技术结合起来时,他们就会声称代码是过度设计的。
就个人而言,我们只是认为他们不想思考别人杰作的精彩之处。
花时间去理解对象 A 如何从对象 B 继承,调用函数 C,然后调用函数 D,有时调用选项 F 或 G 从配置文件 E 中提取信息,使用函数 F 解析数据库 G 中的数据,然后将日志存储在 Hadoop、CouchDB 和 S3 中,这有多难。
他们开始抱怨代码太优雅,或者过度设计。他们的懒惰导致那些设计精良、易于维护的代码无法投入生产。相反,他们试图强迫年轻的工程师编写过于简单的代码。
当然,它看起来似乎很容易理解。但作为工程师,我们并不专注于简化。我们解决的是复杂的问题,并创造复杂的解决方案。
他们被困在未来
我现在所知道的框架是我从现在直到我死去唯一需要知道的框架。
然而,经验过于丰富的工程师似乎花费大量时间学习新的框架和语言,或者至少阅读新的设计原则。
这一切看起来都像是在浪费时间。作为一名工程师,你应该足够聪明,大学毕业后就能掌握所有你需要知道的知识。之后的事情显然都不重要。有些人甚至还在练习Leet代码题,学习,仿佛他们即将参加面试一样。软件工程师又不必担心被解雇。
难道不是每个人都仍然使用他们在大学里学到的语言来编程吗?
经验过于丰富的软件工程师阻碍了社会的发展。
他们不断地需要代码重构、设计文档和学习,阻碍了软件的重大进步。我们几乎可以肯定,如果不是因为这些经验过剩的工程师,我们现在肯定已经拥有比我们更聪明的飞行汽车和机器人了。然而,我们却只能忍受着280个字符的推文和亚马逊广告,这些广告不停地试图向我推销我上周买的马桶盖。
编辑:你读完整篇文章了吗?恭喜!我加了这篇文章是为了节省大家的时间。对于那些热爱编程的人来说,你们现在可能热血沸腾。你们可能把这篇文章的每一个字都读了一遍,然后以为是某个傲慢的年轻程序员写的……因为说实话……我们都知道至少有一个程序员真的这么想。这篇文章本来是想讽刺一下的。所以我真的希望你们喜欢它。
对于年轻的软件开发人员,请不要太过认真!
如果您想阅读一些有关数据科学和编程的更严肃的文章,请查看下面的文章!
Hadoop 与关系数据库
算法如何变得不道德和带有偏见
十大商业智能 (BI) 实施技巧
面向未来的五大大数据工具 - 从 Hadoop 到 Cassandra
使用 Python 创建 3D 打印 WiFi 访问二维码
数据工程师面试学习指南