解决方法

向那些依靠你完成工作的人说明:学习过程是交付软件的一部分。让他们看到你在成长。

根据社会心理学家Carol Dweck的研究,在大多数工业化社会中,“让人觉得有能力”的思想深深地植入人们的意识中。随着软件日益渗透到日常生活的每个角落,作为开发者,社会越来越依赖于你具有这样的能力。然而,因为经验不足,你有许多无知的领域。你很盲目。你周围的人——你的经理、你的客户、你的同事,更不用说你自己了——都处在交付软件的巨大压力之下。当人们问你完成特性X需要花多长时间时,你能从他们的眼中看到他们多么需要信心。你有很大的压力,想使他们安心,想打消他们的顾虑,让他们知道你很清楚他们想要什么,你将怎样、何时把结果交给他们。

软件技师通过与客户和同事的紧密联系来打造自己的名声,向难以描述的压力屈服,并对别人说他们想听的话并不是构建紧密关系的好方法。把真相告诉人们。让他们知道你已经开始理解他们想要的是什么,而且正在学习怎样把这样的结果交给他们。如果你想让他们安心,那也应该通过你的学习能力,而不是通过假装知道自己并不知道的东西。这样,你的名声将建立在你的学习能力上,而不是你已经知道的事情上。

暴露无知,最简单的方法就是问问题。但说起来容易做起来难,如果你要问的人以为你已经知道了答案,做起来就更难。别管那么多,坚持要问!当然,你可以保护自己的自尊,并通过不那么直接的途径来获得所需的知识,但不要忘了,如果采用最直接的可用途径,通往熟练工的道路就可以被缩短。经过时间和实践,直接去问团队里最明白的人会成为你的习性。在暴露无知的同时,你也向团队展现了自己的学习能力。而且,有时他们也能从回答问题的过程中对自己的知识获得新的认知。

一种“不知道”的姿态

作为家庭问题顾问,我曾了解到:要舍弃自己对别人的生活拥有专家知识的想法,采用一种“不知道”的姿态来接近人们。这是一粒必须吞下的苦药丸,不管你是一名新的家庭问题顾问还是一名新程序员。你的本能告诉你要掩饰自己的无知,装作通晓各种专家知识,但这只会阻碍你的成长,并阻止你完成正在尝试的工作。我把这种经验从一种职业带到另一种职业,这对我很有帮助。实际上,在日常工作中,我已经依赖于这种无知的感觉;它使我知道我正处在正确的位置。我正在成长。

——Dave Hoover

要习惯这种学习过程。这是一种技能。的确有一些对这种过程感到不舒服的人。这类人不会成为技师,而会变成专家(expert),即那种专长于某种平台或某一领域,并坚守这一平台或领域的人。由于他们的关注面更窄,这样的专家能在特定上下文中交付功能,而且会做得比其他人都好。让我们这个行业拥有专家当然很重要,这也是必然的事情,但那不是学徒的目标。

专家技能是我们走的这条漫漫长路的副产品,但不是目的地。在旅途中,技师的工作会接触到数不尽的技术和领域。如果,因为必须或者因为兴趣,他们“深入挖掘”,并在一种或多种这样的技术方面掌握了专家技能,那就再好不过了。这是可以期待的,正如马拉松长跑训练会锻炼出更强壮的腿部肌肉。她不是在锻炼腿部肌肉;她是在锻炼跑步。就像一个行动积极的开发者,在一个Python项目上做了两年之后,会获得对Python知识的深入掌握,马拉松运动员健壮的腿部肌肉也只是一种手段,而非目标。

有些专家不遗余力地只与单一的上下文结合,收缩学习、实践和项目的范围。技师却恰恰相反,他们在拎起一门新技术或者学习一种新领域时,需要有勇气和谦逊来放下已有的专业技能并系上“白色腰带”。

技师所拥有的重要品质之一就是学习的能力,他们能找出无知的领域并通过努力工作来减少这样的领域。无知就像草地里的秃块,不断散播知识的种子,它就会减少。通过实验、实践和阅读来浇灌你的种子吧。你也可以将这些秃块隐藏起来,因为它们的面积让你感到窘迫,你想把它们遮盖起来以保持自尊不受影响。或者,你也可以选择暴露它们,对自己和依靠你的人保持诚实,并寻求帮助。

在学徒期结束时,你会深入掌握一些技术的丝线。凭借这些丝线,你可以在少数的平台和领域中编织出健壮的软件应用。师傅则可以用无数的丝线织出一幅锦绣。他无疑会拥有自己最喜欢的丝线和最喜欢的组合,但丝线的数目是巨大的,使得师傅能适应广阔的技术环境。这就是“漫漫长路”会把你带向的地方。相对于掩饰无知以显得自己有能力,暴露然后正视自己的无知能使你更快地纺起那根原本缺失的丝线。