程序员缺乏经验的 7 种表现

作者 | Lokajit Tikayatray;策划 | 李俊辰;来源 | InfoQ
知道这些表现 , 你才能在自己的程序员职业生涯中不犯相同的错误 。
软件行业的工作经验和你从事这个行业的工作年限直接相关 。这句话在某种程度上是对的 , 但是你从事这项工作的年限 , 并不一定代表你获得了相同年限的工作经验 , 正如一句话所说:“我们以为我们是工作了十年 , 其实却只有一年的工作经验 , 只不过又重复用了九年” 。
有一些人虽然工作了很多年 , 但工作表现就像刚入行的新人 。他们几乎不学习软件开发的基础知识。除了最初几年有所成长 , 后期一直停滞不前 , 而且他们不明白为什么 。
与此同时 , 我也曾与一些只有几年工作经验的开发人员共事 , 他们表现出惊人的增长潜力 。他们工作态度端正 , 并且明白如何避免不称职的行为 。
根据开发人员的某些习惯 , 可以非常明显地分辨出谁更专业 , 谁更业余 。让我们深入剖析下业余程序开发人员的 7 种表现 , 每个程序开发人员都应该引以为戒 , 这些错误会阻碍我们的职业发展 。
1. 一次性提交大量代码
回忆下 , 你是否碰到过一次性提交大量代码的人 , 你都不想给他做代码评审 。是的 , 不专业的开发人员就会这样做 。他们会在一次代码评审请求中包含多个模块的修改 , 而且会催促你优先评审他们的代码 。是啊 , 能不急吗 , 排到后边 , 还需要解决代码冲突的问题 。这个问题在很多高级开发工程师中也存在 , 他们在功能开发期间不做任何提交 , 只有在功能彻底完工后 , 才会提交所有修改 , 于是代码评审中的任何意见都会引起大量的修改 。
当我碰到这种代码评审请求时 , 我首先做的是要求提交者按功能模块将其拆分成多个小的请求 。我只会对 issues(任务管理系统)中的第一个功能需求评审 , 然后将其转回提交者 。如果我有时间 , 我会和提交者连线进行代码实时评审 。
你能做什么:

  • 进行小的代码提交 。一个好的做法是:每个工作日都进行代码提交 。
  • 不要提交没有编译或者会导致构建失败的代码 。
2. 代码写的很烂
缺乏经验的开发人员写不出漂亮的代码 , 他们写出的代码会很混乱 , 而且分布在代码库的各个部分 。
当你尝试阅读这类代码时 , 会感觉自己身处一座迷宫之中 。你会逐渐忘记自己是从什么地方开始的 , 要寻找什么以及这段代码完成了什么功能 。
有经验的开发人员知道代码如何设计 。除非要开发的功能显而易见 , 首先需要在纸上写出你对需求的理解并画出流程图(简化版的规格需求说明书) , 在脑海里对这段代码进行一个完整的构思 。除非你彻底弄清楚了如何修改 , 否则不要开始代码编写 。
如果你不遵守以上的规则 , 当你回顾自己完成的代码时会非常痛苦 。以后如果需要修正问题或者增加功能 , 也会变得非常棘手 。
你能做什么:
  • 编写代码之前 , 对你要实现的功能有个清晰的了解 。为了清楚地理解需求 , 你需要尽量多问问题 。
  • 让你的代码简洁而优雅 。其他团队成员可以读懂代码并理解它打算做什么 。
3. 同时开展多项工作
缺乏经验的开发人员不知道什么时候开始一项任务、如何推进、什么时候结束 。他们试图并行处理多项任务 。他们不知道如何将一项大任务分解为小的模块 , 从而减轻实现的难度 。
当他们收到一项任务时 , 并不是第一时间和上级确认需求 , 而是立刻就开始编程 , 而且在做任务期间 , 也不会和上级就任务进度进行沟通 。只有当任务完成时 , 他们才会向你反馈 。到那个时候 , 你只能祈祷他们完成的功能就是你想要的 。
缺乏经验的开发人员的另一个表现是同时推进多项任务 , 他们会同时处理多项事情 , 如:实现多个没有太大联系的功能点、解决生产环境问题、协助其他同事工作等 。
最终 , 从他们那里得不到有效的产出 。虽然他们的态度和出发点是好的 , 但对整个团队造成的后果是灾难性的 , 浪费了很多的时间 , 导致团队得日夜赶工 。


推荐阅读