-->

开发人员是怎么停止学习的:专家初学者的崛起

2019-10-29 19:14发布

死海之外:当优秀的软件团队变得糟糕时

最近我发表了一篇相当受欢迎的文章,叫做“如何留住你最好的程序员”,在文章中,我描述了技能熟练的程序员在一份工作中往往想要什么以及因为没有得到而离开的原因。今天的这篇文章,我将聚焦于一个软件团队,而不是开发人员个体在团队内部或团队之间的经历。由于文章篇幅的问题,我觉得至少得把它分成两部分。这是第一部分。

在我提到的上一篇文章中,我引用了布鲁斯·韦伯斯特的“死海效应”一文,这篇文章描述了一种趋势,即最有才华的开发人员往往最有市场,因此当他们受到一点委屈时,是最容易另谋高就的。另一方面,平庸的开发人员更有可能保持现状,因为他们很难说服其他公司雇用自己。这提供了一个视角,帮助我们理解为什么经常会有这样的人,他们的头衔是“超级-骗子-资深首席架构师-帅哥”,他们赚了很多钱,甚至可能拥有很多权力,但并不擅长他们的工作。但这种观点仍然关注点在个体。当我们认为一个集体很糟糕,我们会认为这是一个这个集体里都是上面这样的人(或者可能是因为条件太差,除了这些人,他人都无法忍受)。

Dale将会告诉你所谓的专业有什么问题

我相信有一种独特的过程导致了软件群体的腐坏,并不只是因为错误的外部决策导致有才华的开发人员消失。别误会——我相信布鲁斯的死海效应是这种动态的催化剂和逻辑结果,但我相信在团队内部一定有些魔力,将外部的愚蠢内化,并导致软件团队的无能。在本系列的下一篇文章中,我将描述一些软件组趋向于功能紊乱和专业化丧失的机制。在这篇文章中,我将通过描述个人怎样处于永久的平庸并从中获得回报,来为这一点做铺垫。

学习保龄球

在我谈这些之前,我想跟你谈谈我保龄球运动的历史。是的,我是认真的。

我是个相当健壮的人。在我成长的过程中,不管是什么运动或比赛,我总能占据第一/或者至少前三。我会的东西很多,但都不专精。这让我产生了一种不费吹灰之力就有资格获得技术的错觉,当我成为一名保龄球手时,这种感觉就消失了。大多数打保龄球的人都会用大拇指和两个手指卡在球里,然后小心地练习将保龄球以一种尽可能使球向中间滚动的模式抛出去。由于没有耐心学习,我发现我可以通过作弊的方法,不把手指和拇指插在在球,并且通过扭转我的肘部,把球扔到通道上。虽然不漂亮,但很管用。

事实上,我越打保龄球,效果就越好。当我开始在业余联赛中打球时,我的平均水平真的开始上升了。我从不是联盟中最好的——有好几位投球手,包括我的一位前教练,他们的平均成绩在170到200之间,但我在联盟中的几个月内就突破了130,140,一路冲到了160的范围。不太差的成绩。

但后来发生了一件奇怪的事。我不再进步了。大约160的时候,我就遇到瓶颈了。我问我的老经理我能做些什么来再次获得进步,他对我说了一些非常有趣的话。他这样说:

但凡你继续这样打保龄球,你就没有什么可以改进的了。你已经精疲力尽了。如果你想变得更好,你就必须学会正确地打球。你需要一个不同的球,一种不同的投球方式,你需要像个大男孩一样把手指放进去。最糟糕的是,在你变得更好之前,你会变得更糟,你会需要一段时间来达到然后超过你现在的平均水平。

我抵制了一段时间,但对自己缺乏进步和停滞不前感到厌烦(这是我个人的一个特点——我绝对需要精通,否则我会发疯),于是我选择了更艰难的道路。我买了一个保龄球,按惯例打好了孔,然后开始打保龄球。具有讽刺意味的是,我做了那件事之后马上就离开了那份工作,在那之后的几年里大概打了8次保龄球,但我想,这是最棒的。当我去的时候,我从来不需要租保龄球鞋,也不必在球馆里筛选适合我手指的球。

德莱弗斯,快速回归,发展停滞

1980年,一对姓德雷弗斯的兄弟提出了一种技能习得模式,这种模式对学习、过程和实践的讨论产生了相当大的影响。后来,他们继续出版了一本基于这篇论文的书,在那本书中,他们对模型进行了一些改进,使其更符合当前的形式,如维基百科所示。该模型列出了技能习得的五个阶段:新手、高级初学者、胜任者、熟练者和专家。显然有很多内容,因此需要一整本书来描述它,但它的要点是,技能获得者从“教条主义地遵循规则和缺乏大局”转向“直觉超越规则和完全理解大局”。

如果每个阶段之间间距相同,人们可能会认为在这些阶段有某种自然的、线性的进步,比如提升空手道的段位或者在商业领域积累财富。但事实上,由于观念和态度的双重原因,并不是这样。当一个人开始获得一项技能的时候,他是完全不能胜任的,这会引发一段最初的沮丧期,在等待某个人,比如一个教练,给自己手把手教学(或者,就像德莱弗斯和德莱弗斯所说的那样,他们“就像一个婴儿,通过模仿和试错习得“)。然而,一个初学者通过练习就能入门,在这个阶段技能提高的速度很快。然而,一旦尝到了甜头,改进速度不能持续下去,并会有所降低,从那时起,进一步提高熟练程度变得相对困难。我已经创建了一个描述这个的图表(这实际上花了我很长时间,因为我在绘制logistic 1/(1+e^-x)函数的变体上做了手脚,而不是像正常人一样在绘画中画一条线)。

实际上,这正是我的保龄球比赛从不称职到某种程度的能力所遵循的路线。我很快就提高到了胜任的程度,然后稳定下来了。在我的例子中,水平达到了一个局部的最大值,然后完全停止,因为我太忙了,以致于无法继续我的学习路径,或者无法继续完善技术。这是一个例子,在这篇文章中,我将称之为“停滞发展”。(我知道与一个充满负荷的心理学术语重叠,但在我们这里,请忘记这个定义。)在技能习得的角度上,一个人通常会意识到技术水平停滞发展是由于以下两个原因之一:天赋使然或不再有继续改进的意愿。

在本文和本系列的剩余部分中,让我们放弃第一种可能性(因为大多数专业程序员在达到最低胜任标准之前或达到最低胜任标准时都不会用尽天赋),并考虑一个有趣的问题,第二种情况的具体例子是:由于自信已达到专家地位而自愿停止改进,因此不可能进一步改进。这种无限期平庸的选择是技能习得的一个斜向阶段,我称之为“专家初学者”。

专家初学者

当你考虑dreyfus模型时,你会注意到随着时间的推移,有一种趋势,从关注规则,对大局不了解,到非常直观,完全掌握大局。高级初学者阶段是最后一个不了解大局的阶段。因此,这是学习者可能将自己与专家混淆的最后阶段。一个称职的人自以为在大局上有很多见解就把自己和专家混为一谈,他自以为知道自己不了解的事情。这在高级初学者阶段是不正确的,因为高级初学者是在邓宁-克鲁格效应结束的“非熟练”阶段,概括地说,“如果我不明白,它一定很容易。”

因此,高级初学者可以通过两种方式之一取得突破:他们可以走向称职,开始掌握大局和自己在大局中的位置;或者他们可以通过假设自己已经成为专家而“毕业”成为专家初学者。这并不像听起来那么荒谬。让我们回到我以前的保龄球生涯,想想如果我是球馆里唯一或最好的保龄球手,会发生什么。我一开始会做得很差,然后很快就摘下了技能树的低垂果实,迅速前进。 根据邓宁-克鲁格效应,我可能已经合理地得出结论,我有相当好的保龄球资质,因为我的技能水平增长迅速。我也可能会有点理性地(如果有点傲慢的话)得出这样的结论:我已经达到了保龄球技术的顶峰。毕竟,我周围没有比我更好的人,并且我认为我已经达到了精通的水平。

真正可耻的是,一些并非完全不合理的推论会让我产生一种错误的成就感,然后促使我选择放弃进一步的进步。当我的保龄球生涯还在继续的时候,我从乐观的自我评估变成了逻辑谬误:“我知道我做得对,作为一个专家,我几乎做了所有定义正确的事情。”(对逻辑谬误爱好者来说,这是循环推理/乞求问题)。看上面的图形,您会注意到它描述了dreyfus模型的状态机,正如您所期望的那样。在每一个阶段,一个人要么前进到下一个阶段,要么停留在当前阶段(除了新手或高级初学者,我觉得他们不能在不放弃练习的情况下真正停留在那个阶段)。不同的是,我也在图表中添加了专家初学者。

专家初学者无处可去,因为更高的进步需要一种信念:他有很多工作要做。你会注意到专家级初学者的位置略高于高级初学者,但并不是能力水平上。这是因为他没有足够的能力去把握大局并认识到自己处境的讽刺,但他比高级初学者略胜一筹,主要是因为,嗯,作为一个初学者,他进行了广泛的练习。如果你听过“十年经验或同一年十倍经验”这句格言,专家初学者就是后者的缩影。这位专家级的初学者通过一周又一周地做完全相同的事情,在300分中得到160分,从而完善了保龄球的技术,没有明显的偏离常规或实验的欲望。这是因为他相信160是最好的分数,因为事实上,他已经做到了。

软件专业初学者

毫无疑问,软件不像保龄球。在保龄球运动中,反馈周期是以分钟计算的,而在软件中,反馈周期往往是以月计算的,如果不是以年计算的话。我所说的软件不是编译、运行或单元测试的反馈周期,那往往就是几分钟或几秒钟,而是项目。正是在项目的整个生命周期中,开发人员获得了编写代码、源代码控制、修改代码、测试代码以及在维护阶段处理以前的设计和架构决策的经验。根据我刚才所描述的一切,一个开发人员有幸在不到六个月的时间里进行了第一次尝试,这意味着,在这个行业工作了五年之后,他们在应用程序开发方面可能有十条路径。(这是平均值——有些人会一直坚持一个,而其他人则会有几十个。)

这意味着软件开发人员的快速获取阶段——高级初学者——将持续数年而不是数周。在这几年里,软件开发人员跳槽并获得晋升。当他们轻轻松松地完成快速学习时,他们也轻轻松松地完成了软件工程师I和II,然后可能是“助理”和“高级”,也许最终会成为“领导者”、“架构师”和“组长”。因此,在邓宁-克鲁格理论和高级初学者的阵痛中,他们获得了听起来很专业的头衔,并被招聘人员告知他们是“摇滚明星”和“忍者”等等,尤其是在当今的经济形势下。唯一阻止他们进入专家入门阶段的是同行评审和与整个开发社区的交互。

但是,当高级初学者不太关心与更广泛的社区互动,并且无论出于什么原因与同龄人没有太多互动时,会发生什么呢?每天的世界贸易基金会都有这样的例子。即使他们确信失败是别人的错,但这个游戏的本质就是这样的,责备别人很容易,也很容易缓解任何认知上的不和谐。他们得出的结论是,他们很快就达到了专家的地位,无处可去。他们已经正式成为专家级的新手,他们已经准备好在一个组织的某个利益市场站稳脚跟,领取巨额薪水,因为他们周围没有人,包括他们,意识到他们可以做得更好。

内容前瞻

因此,我们记录了专家初学者的崛起:他们来自何方,为什么停止前进。在本系列的下一篇文章中,我将探讨一个或多个专家初学者创建一个退化处境的机制,在这种情况下,他们会导致有才华的成员或健康的群体的恶化和腐坏。


英文原文:https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/

译者:QL

文章来源: https://www.toutiao.com/group/6753042183122584075/