本文转载自公众号“读芯术”(ID:AI_Discovery)。
“经验是最严厉的老师。它上来就把你考倒,尔后才授教于你。”奥斯卡·王尔德这句话用来形容新手程序员的生活很贴切。程序员要从实践中学习。在实践中,你会犯错误,但只要你能从错误中吸取教训,就能获得成长。
来回顾一下吧,你的哪些特征曾“透露”出这是一个新手。
结构混乱的代码
新手开发人员编写的代码常常结构混乱,如果有轻量级结构就已经很不错了。而造成这点的原因在于他们过于关注代码的运作,经验丰富的开发人员知道,作为一名开发者,你还有更多的工作要做。
编写代码并使其运作只是开发人员工作的一小部分,新手开发人员却把它当成了重中之重。随着经验的积累,你会意识到你的大部分工作是维护项目,而不是从头开始构建新项目。意识到这一点之后,你将以完全不同的方式进行编码。这会使代码更容易维护,更易于其他开发人员理解。
如果没有意识到这一点,就会出现函数堪比一篇文章大小的情况。很多问题也随之而来,例如可测试性。你要如何测试堪比论文的函数,而且它还要实现五个不同的功能?
如果只是想让代码运作起来,在大多数情况下,这样的代码都是没有经过深思熟虑的,代码质量会因此受到影响。这种类型的代码通常看起来像过程代码,不遵循诸如单一功能原则这样的编码原则。当进入维护阶段,你就会意识到代码质量欠佳会带来多大的问题。
图源:unsplash
乱枪除错
新手开发人员遇到问题时,常常会开始胡乱调试,想到哪里试哪里。在不知道实际问题是什么的情况下,随机修改代码中的一些内容,希望瞎猫碰上死耗子,成功解决问题。
很明显,这在大多数情况下是行不通的,这样做只会引入更多的bug。开发人员应该做的不是胡乱调试,而是收集有关问题的更多信息。
首先要做的是找出重现问题的方法。在更改代码之前收集信息是很重要的,这样就可以了解到底是什么导致了bug。打开日志文件是调试之旅的一个良好开端。看看能否找到一些有用的信息,指引你找到正确的方向。
找到了bug的出处并修复之后还不算完,如果真的想把事情做好,至少应该为修复程序编写一个测试,以便在未来出现问题的时候得到保护。
过于关注技术
新手开发人员仍在学习技术的阶段。因此,他们关注的重点通常是掌握自己的技术栈。这也说得通,因为如果你想成为一个出色的开发人员,就需要掌握相关技术栈。但是开发人员应该关注的不仅仅是技术。
当了解了技术栈的所有细节后,不应该把业务抛在脑后。因为这就是你做这份工作的原因。你是在为公司创造价值,还是在一些与公司无关的事情上花费了太多的时间?这是一个应该一直问自己的重要问题。
作为开发人员,你不能仅仅专注于工作的技术方面,还需要牢记业务和经济因素才是评判你工作价值的关键因素。
做事的差别
团队工作中的一些小细节也会“暴露”新手开发人员,他们常常喜欢用自己的方式做事,而不是和团队中的其他人保持一致。有时这种情况是无意中发生的,新手开发人员不能认识到解决方案中的某些模式。
为了与团队成员统一步调,你可以查看创建好的所有pull请求。不必全部都看,只要确保了解其他开发人员是如何解决某些问题的就可以了。他们的解决方案和你解决问题的方式是否相似?如果不是,问问他们为什么选择这种解决方案,以及是否考虑过你的解决方案。
别担心,每个优秀的程序员都是从菜鸟时期走过来的。转变思路,汲取经验,你离告别新手期并不太远。