解决方法
选出一种技能、工具或技术,积极地填补跟它有关的知识空白。
采用一种对你最有效的方法来做这件事。对于某些人,最好的方法可能是阅读能接触到的所有文献和FAQ,来获得知识概览。其他人则可能觉得直接动手构造一个“质脆玩具”才是理解一样东西的最有效途径。不管哪种方法适合你,都不要忘了问问周围的“同道中人”和指导者,看是否有人已经掌握了这项技能并愿意分享所学。有时其他人也可能在学习这项技能,跟他们一起工作你会获得更快的进步。到某个时刻,你将在这个新领域达到令人满意的能力水准,这时你就可以做决定了,是继续深入挖掘下去更有成效呢,还是应将注意力转到其他的技能空白上。每天只有24小时,你无法将每项技能都研磨到很高水平,因此你必须学会在它们中间做必要的权衡。
这一模式与“暴露无知”紧密相关,但实施它的过程却不会对你的自尊形成那么多挑战,因为它可以私下完成,不会有人发现你不懂的东西。然而,作为一名有志于精通技能的学徒,你也要有“暴露无知”的意愿。单独运用这一模式(即正视自己的无知但不暴露它)是有风险的,那样会怂恿一种不接受失败和学习的文化,因为每个人都在秘密地学习。记住,公开地学习是学徒开始向熟练工跃进的途径之一。在人们能看到的地方学习,到可以向别人传授技能,其间只差一小步。
即使你成功运用了这一模式,也会有不好的副作用。如果因为想学习如何构造复杂的并行系统,你就用Scala语言[1]亲手写了一套消息系统,而没有使用现成的产品,维护你代码的程序员可能不会对此大加赞赏。如果他们无法向你提问,因为你正在参加一次学术会议,那他们就更不高兴了。最后,如果因为你的学习需要而妨碍了项目的成功发布,你的老板也不太可能谅解你。总之,你需要保持足够的警觉,不能让你的学徒期成为团队的问题。工艺方法的一个重要方面就是要有一种意愿:把更大的团队利益置于个体利益之上,而不是利用团队和客户来促进个人成长。
另一方面,也有可能你正视了自己的无知却没有“暴露无知”。如此行事的人在面对自己的无知时只会无辜地耸耸肩,像是在说“就是这样。”这会导致一辈子的谦卑、无知,并过度依赖团队中的其他成员。最后,它会导致这样的团队:每个成员都维护着自己的一丁点知识储备,当问题延伸到另一个人的知识领域时就耸耸肩。
因此,在该模式和“暴露无知”之间精心地维持平衡非常重要。仅仅正视无知会导致自负的食知动物(infovores),最终一事无成;而仅仅暴露无知却不视之为需要解决的问题则会导致过度的谦卑和无能。
[1]一种多机制的编程语言,支持函数式和面向对象编程。