毫无疑问,软件开发部门的管理者和软件开发人员本人都希望快速提高软件开发人员的编码技能。
那么,如何提高软件开发人员的编码技能呢?
卖油翁给出了答案:唯手熟尔!
答案真的很简单,就是要做大量的练习。就像钢琴家朗朗,就像东京奥运会封神的苏,他们取得了今天的成绩,都是私下做大量的练习。
然而,有效的练习并不那么简单。
第一,练习应该是主动的,而非被动的。
软件开发人员在工作中接受的一个又一个开发任务也可以认为是一种练习,但这种练习是被动的,练习频率太慢。如果只靠这个练习,软件开发人员工作十年八年后的编码技能会有很大的提高。
然而,这不是我们想要的。我们希望软件开发人员能够快速提高编码技能,工作一年甚至几个月就能独立承担开发任务。然后,软件开发人员需要更积极地练习,更频繁地练习,更有针对性地练习。
第二,有方法练习。
就像学拳击一样。如果你想学拳击,教练会让你先练习基本动作——直拳、勾拳、摆拳。这些技能熟练后,你会自由练习攻防,这样你就有望成为大师。
编程练习也有类似的方法。
我们可以先练习写一个固定的程序,比如一个算法。通过不断的练习,你可以快速正确地写出程序中的任何函数,而不用大脑思考。这将大大提高你的编码效率。
这种练习可以一个人进行。
另外,需要很多人的练习叫做编程柔道场。编程柔道场需要组织很多人参与,一个人写测试代码,第二个人写代码通过测试,然后写另一个测试代码;下一个人继续……正如擂台争霸赛一样,有人出招,有人破解,循环往复。它能迅速提高你的编程能力。
因此,如果软件开发部门想要快速提高软件开发人员,就应该安排一些固定的程序在正常件开发人员安排一些固定的程序进行练习,并定期组织编程柔道场让软件开发人员自由练习。
这正是:
要提高编码技能,大量练习是必不可少的
不仅要固定招,还要自由练习
参考书目:代码整洁:程序员的专业素质,作者:(美)罗伯特C.马丁(RobertC.Martin),出版社:人民邮电出版社
作者简介:王小双,长期从事GJB5000推广、实施、评价、改进工作,创建软件工程之思微信公众号,共享软件工程之思GJB5000、CMMI软件工程的知识与感悟。现在致力于GJB5000咨询和软件流程改进和软件工程能力提高的研究工作。