如何提高软件开发人员的编码技能?
毋庸置疑,不管是软件开发部门的管理者,还是软件开发人员本人,都希望能够快速提高软件开发人员的编码技能。
那么,如何提高软件开发人员的编码技能呢?
《卖油翁》已经给出了答案:唯手熟尔!
答案确实很简单,就是要进行大量的练习。就像钢琴家朗朗,就像东京奥运会封神的苏炳添,他们取得如今的成绩无不是私下进行大量的练习。
但是,要进行有效果的练习却也没有那么简单。
首先,练习应当是主动的,而不是被动的。
软件开发人员在工作中接受的一个又一个开发任务也可以认为是一种练习,但是这种练习是被动的,而且练习的频率太慢,如果仅靠这种练习,工作了十年八年之后软件开发人员的编码技能也会有很大提升。
但是,这并不是我们想要的。我们希望软件开发人员能够快速地提升编码技能,工作一年甚至几个月就能够独立承担开发任务。那么,软件开发人员就需要更加主动地进行练习,更高频率地练习,更有针对性地练习。
其次,练习是有方法的。
就像学习拳击那样。如果你要学习拳击,教练首先会让你练习基础动作——直拳、勾拳、摆拳,这些熟练之后,会进行自由攻防的练习,这样你才有望成为高手。
编程练习也有类似的方式。
我们可以先练习编写固定的程序,比如某个算法。通过不断的练习,你可以不用大脑思考就可以快速、正确地写出程序中任何一个函数。这会大大提高你的编码效率。
这种练习可以一个人进行。
另外需要多人进行的练习被称为“编程柔道场”。编程柔道场需要组织多人参加,一个人编写测试代码,第二个人编写代码通过测试,再编写另一段测试代码;下一个人继续……这就像擂台争霸赛,有人出招,有人破解,循环往复。这会快速提高你的编程能力。
所以,如果软件开发部门希望快速提高软件开发人员,就应该在正常的工作任务之外,安排一些固定的程序给软件开发人员练习,并且定期组织“编程柔道场”让软件开发人员自由练习。
这正是:
编码技能要提高,大量练习不可少
不仅不仅固定招,自由练习也得搞
参考书目:代码整洁之道:程序员的职业素养,作者:(美)罗伯特 C. 马丁(Robert C. Martin),出版社:人民邮电出版社