软件专业人士该怎么将年轻的毕业生提升到专业水准上?

计算机科班毕业生的质量一直令我颇感失望。究其原因,并不是这些毕业生不够聪明或缺乏天份,而是由于大学并没有教授真正的编程之道。


那么软件专业人士该怎么样将年轻的毕业生提升到专业水准上呢?他们该遵循哪些步骤?他们会遭遇哪些挑战?他们需要达成哪些目标?让我们从后往前看一下这个过程。


1. 大师

他们是那些已经领导过多个重要软件项目的程序员。一般说来,他们已经拥有10年以上的从业经验,曾在多个不同类型的系统、语言和操作系统上工作过。他们懂得如何领导和协调多个团队,他们是熟练的设计师和架构师,能够游刃有余地编程。组织曾为他们提供管理职位,但是他们不是拒绝就是在接受管理职位后又回去了,或是将管理职位和主要承担的技术角色整合在了一起。他们通过阅读、研究、练习、实践和教学来维持自身的技术水平。公司会把项目在技术方面的主要职责交由大师承担。想象一下,大师就像“Scotty[1]”。

2. 熟练工

他们还处在受训期中,不过已能胜任工作,而且精力充沛。在职业生涯的当前阶段,他们将会学习如何在团队中卓越工作和成为团队的领导者。他们对当前的技术都十分了解,但是对其他许多系统尚缺乏经验。他们一般只了解一种语言、一个系统、一种平台,但是他们正在不断学习的过程中。他们彼此间的经验水平差异可能很大,但是平均经验水平大约在5年左右。往上是成长十分迅速的大师,往下则是刚刚进来不久的学徒工。

熟练工在大师或者其他资深熟练工的督导下工作。很少会让资历尚浅的熟练工独立工作。他们在严格的督导下进行工作。他们的代码会被人仔细复查。随着经验不断积累,他们的自主能力也会不断增长。对其直接介入指导的地方也会变得越来越少,指导内容也会越来越趋向那些微妙之处。最终,督导活动会转为以“同行评审”的方式进行。

3. 学徒/实习生

毕业生会从学徒这一步开始他们的职业生涯。学徒没有“自治权”,他们需要在熟练工的紧密督导下工作。在一开始,他们不会单独承接任何任务,而只能作为助手为熟练工打下手。在这个阶段,应该十分密集地进行结对编程。这一时期是学习纪律并强化各项实践的阶段。各项价值观的基础也都是在这个阶段塑造成型。

熟练工会担任他们的导师。他们要确保学徒们能够了解设计原则、设计模式、各种纪律和固定的操作环节。熟练工会向他们传授TDD、重构、估算等各种技艺。他们会为学徒安排阅读、练习和实践任务,还会检查学徒们的任务进展情况。

学徒期至少应持续一年。期满之时,如果熟练工愿意接受学徒上升到他们这个层级,就会把学徒推荐给大师们。大师们则通过面谈和水平检测,对学徒们进行考核检验。如果能够取得大师们的认可,那么学徒便可晋升为熟练工。

你可能感兴趣的:(软件专业人士该怎么将年轻的毕业生提升到专业水准上?)