全文共1827字,预计学习时长4分钟程序员
图片来源:Unsplash/摄影NESA by Makers数据库
软件工程师的技能发展都会经历一个天然的过程——经验从无到有,最后变成老手。而一旦到了经验丰富的阶段,他们对代码就不那么感兴趣了。偏偏相反,他们会把更多的精力放在文件设计和代码重构上。编程
奇怪的是,无论任职于哪家公司,大多数经验丰富的工程师都会表现出一样的特色。他们缺少对代码的关注,和其余工程师相比,他们写代码的速度较慢。这是由于和仅仅编写代码相比,他们会将更多的时间花在设计上面。微信
从一个新手到经验丰富,这个转变过程不是一蹴而就的。但通常而言,这些工程师会用几年甚至几十年的时间,逐渐成为领域内资历很高的人。框架
他们彷佛在每一个公司都是同样的——不断地处理新出现的需求,进行没必要要的繁忙工做——这无疑会让他们感到沮丧。本文将指出工程师们可能表现出的一些抑制其发展的特征。函数
1. 在代码重构上浪费时间oop
@techleadhd做为目前在世的经验最丰富的工程师之一,在推特上透露了他关于编写代码的真实想法。学习
他显然不相信编写代码的意义。相反,他暗示称删除和重构代码是有价值的。编码
但这项工做并非软件清理,而是作软件工程。人工智能
这就意味着工程师须要设计代码,而不是维护代码。维护代码是其余人的工做,兴许实习生就能作到。
软件工程师们应该花时间对那些陈旧低效的代码进行编程,而不是试图改进旧的基础结构。只要工做正常运做,就还能够用尚有不足的代码。然而,很多经验丰富的工程师彷佛认为维护旧代码具备很重要的意义。
2. 关注总体状况而不是代码
值得明确的一点是,总体状况和业务方面的事情并不重要,重要的是代码!
经验丰富的软件工程师有一个坏习惯,就是把注意力集中在总体状况而不是代码自己。他们喜欢提出这样的问题,好比“这个项目将对谁产生影响”“最终用户将如何与代码交互”以及“工程师将如何维护代码”。
他们花费不少时间试图去了解项目的范围以及它对于公司的影响。有时,他们甚至会用他们认为的“更好的解决方案”来挑战领导阶层。那么,当他们专一于诸如“影响”和“优先次序”之类的杂事时,他们如何抽出时间来完成全部代码?
把全部的时间都花在会议、巩固、度量跟踪和代码审查上,会致使代码编写再也不纯粹。
优秀的程序员不该该质疑他们正在作的事情。相反,不管是什么请求,他们都应该低下头来编码。在任什么时候候,企业都确切清楚什么样的行为将会对公司产生影响。做为程序员的工做职责,就是作好本职工做,而不是弄清楚他们作的事情是否值得,或者是否符合公司的战略。
但愿经验丰富的工程师们记住:你是程序员,而不是领导者。
3. 老是想要一个设计文档
出于某种缘由,经验丰富的软件工程师们老是想要一个设计文档。其实,在不考虑设计文档的状况下,不管项目规格多大,直接开始编写都要快得多。
人们不会用一个稍微不一样的对象或任何东西去重复功能。那么,为何经验丰富的软件工程师偏要如此在乎呢?
最后,若是不须要花时间考虑设计文档,工程师极可能将以快十倍的速度编写代码。
4. 不喜欢“复杂性”和“设计过分的工程”
在某种程度上,有些资历颇深的工程师再也不愿意深思其余人的代码。
所以,当建立一个模块时,他每每把在学校学到的全部知识都融合到一个面向对象记忆体中,并一般声称这是过分设计的代码。
其实他们只是不想深思别人的杰做。
花时间去理解如何从对象B中获得对象A,而后调用函数C,调用函数D,有时选项F和选项G从配置文件E提取,配置文件E用函数F从数据库G中来解析数据,而后将日志存储在Hadoop、 CouchDB和S3中,这会很困难。
人们开始抱怨,说代码太简单,或者设计太复杂。懒惰使得精心设计的代码很容易停产。
5. 他们都被困在将来
事实上,咱们如今所了解的框架每每是一辈子中所须要了解的惟一框架。
然而,经验丰富的工程师彷佛花费了大量的时间去学习新的框架和语言,最起码去研究新的设计原则,但这每每并不是是必需要作的事情——不少事情并不是是越多越好的。
图片来源:unsplash.com/@k8_iv
事实上,从这一点来考虑的话,经验丰富的软件工程师可能正是阻碍社会发展的因素之一。
随着对代码重构、设计文档和学习所提出的源源不断的需求,他们不断地推动着软件的迭代。咱们甚至能够这么想:若是没有那些经验过分丰富的工程师,如今说不定已经出现比咱们更智能的飞行汽车和机器人了!
留言 点赞 关注
咱们一块儿分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一块儿讨论最新鲜的人工智能科技哦~)