美文网首页
[译]开发者如何停止学习。专家级初学者的崛起

[译]开发者如何停止学习。专家级初学者的崛起

作者: 傍阳光 | 来源:发表于2020-07-12 05:57 被阅读0次

原文地址:https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/)
原文作者:https://daedtech.com/about
发布时间:2012年9月30日

类别:程序员的生活
标签:专家初学者软件的隐喻软件管理

死海之外。当好的软件集团变坏时

我最近发布了一篇名为 "如何留住你最好的程序员 "的文章,结果很受欢迎,在这篇文章中,我描述了大多数技术熟练的程序员在一份工作中往往想要什么,以及为什么他们在没有得到这些的情况下会离开。今天,我想写一篇文章,致力于关注组织中的软件组,而不是关注开发人员在组织内部或组织之间流动时的个人历程。这篇文章在我写的时候变得很长,我觉得至少要分成两部分。这是第一部分。

在我提到的上一篇文章中,我链接了Bruce Webster的 "死海效应 "的文章,它描述了一种趋势,即最有天赋的开发人员往往是最有市场的,因此当事情变得有点不顺时,他们最有可能离开去寻找更美好的牧场。另一方面,最没有天赋的开发人员更有可能留在原地,因为他们很难说服其他公司雇用他们。这可以作为理解为什么常见的 "超一流的高级主管-总裁-伙计-架构师-大神 "这样的头衔的人,他们赚了很多钱,甚至可能掌握了很多权力,但并不擅长他们的工作。但这种观点仍然关注个人。只有当我们假设一个糟糕的群体是由许多这样的个人碰巧在同一个地方工作的结果(或者可能是条件太差,以至于除了这些人之外,他们把所有人都赶走了),它才能解释这个群体。

戴尔会告诉你所谓的专业ORM有什么问题。

我相信,有一种独特的群体动态形成并导致软件群体的腐烂,这种动态无法用糟糕的外部决策导致天才开发者蒸发来解释。毫无疑问,我相信Bruce的死海效应既是这种动态的催化剂,也是这种动态的逻辑结果,但我相信,在小组内部必须发生一些神奇的事情,才能将外部的愚蠢行为转化为内部的、普遍的软件小组无能。在本系列的下一篇文章中,我将描述一些软件群体趋向于功能失调和职业毒性的机制。在这篇文章中,我将通过描述个人如何选择永久平庸并因此获得回报来奠定基础。

学会保龄球

在我说这些之前,我想先给你讲讲我打保龄球的历史。是的,我是认真的。

我是一个相当有运动天赋的人。在我成长的过程中,我总是被选为至少在前1/3左右的人,对于任何运动或游戏,不管它是什么。我是一个各行各业的千斤顶,无一不精。这在我身上激发了一种轻微的不恰当的感觉,不需要付出很多努力就能掌握技能,所以当我成为一名保龄球手时,也就这样了。大多数打保龄球的人都是把一个大拇指和两个手指放进球里,认真地培养抛球的模式,使球的起点宽,勾到中间。在没有耐心学习的情况下,我发现我可以很好地假装,不把手指和大拇指放进球里,有点扭动肘部,把球扔到球道上。虽然不好看,但很管用。

image.png

我打得越多,效果就越好,而且,当我开始在下班后的联赛中打球取乐时,我的平均杆数真的开始上升。我并不是联赛中最好的--有几个保龄球手,包括我的一个前经理,他们的平均杆数在170到200之间,但我在参加联赛的几个月内就突破了130、140,一直到160杆。不算太寒酸。

但后来发生了一件奇怪的事情。我停止了进步。就在160左右的时候,我的成绩达到了顶峰。我问我的老经理,我该怎么做才能回到进步的轨道上,他对我说了一句很有意思的话。转述一下,他说的是这样的。

只要你继续这样打球,你就没有什么可以改进的了。你已经到了极限。如果你想变得更好,你就必须学会正确地打球。你需要一个不同的球,不同的投球方式,你需要像个大男孩一样把手指放进去。而最糟糕的是,在你变得更好之前,你会变得更糟糕,要想恢复到并超过你现在的平均水平,还需要好长一段时间。

我抵制了一段时间,但对自己的毫无进步和停滞不前感到厌烦(这是我的个人特质--我绝对需要努力掌握,否则我就会发疯),于是认命地选择了更难的课程。我买了一个保龄球,请人定制钻了个洞,开始好好打保龄球。具有讽刺意味的是,我在做完这一切后几乎立即离开了那份工作,此后的几年里大概打了八次保龄球,但我想,这就是生活。当我去打保龄球的时候,我再也不用租保龄球鞋,也不用在巷子里筛选适合我手指的球了。

德雷福斯、快速回归和停止发展

1980年,一对姓德雷福斯的兄弟提出了一个技能习得模型,这个模型对关于学习、过程和实践的讨论产生了相当大的影响。后来,他们又根据这篇论文出版了一本书,在这本书中,他们将这个模型一点点完善到现在的形式,如wikipedia上所示。该模型列出了五个技能学习阶段。新手,高级初学者,胜任,精通和专家。这里面显然有很多内容,因为需要一整本书来描述,但它的要点是,技能习得者从 "教条地遵循规则,缺乏大局观 "到 "直观地超越规则,完全理解大局观"。

在所有条件都相同的情况下,人们可能会认为,这些阶段有某种自然的、线性的进步,就像在空手道中获得腰带或在企业界获得金钱一样。但实际上,由于观念和态度的原因,它并不是这样摇摆的。在开始获得一项技能的那一刻,一个人是完全不称职的,这就会引发最初的挫折和受阻期,同时等待有人,比如教练,把流程步骤勺子式地喂给获得者(否则,就像德雷福斯和德雷福斯所说的那样,他们 "像婴儿一样,通过模仿和蹒跚学步来学习")。然而,在经历了一个相对较短的阶段,成为一个完整的启蒙者之后,就会达到一个点,即通过练习,技能的习得成为可能的单独活动,重新焕发活力的习得者在采摘 "低垂的果实 "时,开始相当迅速地提高。然而,一旦所有的果实都被摘下,不可持续的快速提高速度就会有所减弱,从那里开始,进一步的熟练程度就会变得相对困难。我做了一张图来描述这个问题(其实我花了很尴尬的时间,因为我用对数1/(1+e^-x)函数的变体来绘制,而不是像正常人一样用Paint画一条线)。

快速掌握技能

这其实正是我从保龄球无能到一定程度的保龄球能力的道路。我迅速提高到能力的地步,然后完全平复下来。在我的案例中,改进达到了局部的最大值,然后完全停止了,因为我太忙了,无法按原样继续我的道路,也无法跟进我的重新调整。这是一个例子,在本篇文章中,我称之为 "被捕的发展"。(我明白这与一个负载的心理学术语有重叠,但为了我们这里的目的,请忘记这个定义)。在技能习得的意义上,一般来说,一个人意识到了被捕的发展,并且由于以下两个原因之一而保持在一个静态的技能水平上:最大限度地发挥了能力或者某种意愿停止有意义的改进。

在这篇文章的剩余部分和这个系列中,让我们抛弃第一种可能性(因为大多数职业程序员不会在最低能力上或之前达到最大限度),而考虑第二种有趣的、具体的例子:因为相信专家地位已经达到,因此不可能进一步提高,所以自愿停止提高。这种选择无限期的平庸,就是进入了技能习得的一个斜向阶段,我称之为 "专家初学者"。

专家入门

专家之路......

和专家初级当你考虑德雷福斯模型时,你会发现,随着时间的推移,有一个趋势,即从重规则、不了解大局到极度直观、完全掌握大局。高级初级阶段是技能习得者对大局没有理解的最后一个阶段。因此,这是最后一个阶段,在这个阶段,胜任者可能会把自己和专家混为一谈。一个胜任者对大局的把握太大,不会把自己和专家混为一谈:他知道自己不知道的事情。在高级初学者阶段,情况并非如此,因为高级初学者处于邓宁克鲁格效应的 "不熟练 "端,他们往往是 "如果我不懂,就一定很容易 "这一观念的缩影。

因此,高级初学者可以从两种方式中选择一种进行突破:他们可以进入胜任阶段,开始把握全局和自己在全局中的位置;或者他们可以通过假设自己已经毕业到Expert Beginner来 "毕业"。其实这并不像听起来那么立马可笑。让我们回到我以前的保龄球生涯,想想如果我是巷子里唯一或最好的保龄球手,可能会发生什么。我一开始会做得很差,然后迅速选择低垂的技术习得果实来迅速提升。尽管有Dunning-Kruger的说法,但随着我的技术水平迅速提高,我可能会理智地得出结论,我对保龄球有很好的天赋。而我也可能会有些理性地得出结论(如果相当傲慢的话),认为我水平的提高说明我已经达到了保龄球技术的巅峰。毕竟,我没看到身边有谁比我强,一定有什么高明之处,所以我想我已经到了。

真正可耻的是,几个并不完全不合理的推论让我产生了虚假的成就感,然后刺激我选择放弃进一步提高。随着保龄球生涯的继续,我从乐观的自我评价变成了逻辑上的谬误。"我知道我做得很对,因为作为一个专家,我做的每件事都是正确的。" 对于你们这些逻辑谬误爱好者来说,这是循环推理/诱导问题)。看上面的图形,你会注意到,它描绘了一个德雷福斯模型的状态机,正如你所期望的那样。在每一个阶段,可能会进入下一个阶段,也可能会停留在当前阶段(新手或高级初学者除外,我觉得不能真的停留在这个阶段而不放弃活动)。不同的是,我把专家级初学者也加到了图中。

专家级初学者无处可去,因为进阶需要了解他有很多工作要做,而这不是一个现成的结论。你会注意到,专家初学者的定位略高于高级初学者,但不在能力等级上。这是因为他的能力还不足以把握全局,认识到自己的处境是铁板一块,但他的能力比高级初学者略高,主要原因是,大量的实践是初学者。如果你听过 "十年的经验或同样的一年经历十次 "的箴言,专家初学者就是后者的缩影。专家型初学者通过周而复始地做完全相同的事情,没有明显的偏离常规,也没有实验的欲望,从而完美地掌握了在300分中打出160分的保龄球的技巧。这是因为他相信,160分是他凭借的最好成绩。

软件方面的专家入门

毫不奇怪,软件和保龄球不一样。在保龄球中,反馈周期是以分钟为单位,而在软件中,反馈周期往往是以月为单位,甚至是以年为单位。而我所说的软件,不是编译或运行或单元测试的反馈周期,也不是几分钟或几秒钟,而是项目的反馈周期。在一个项目的整个生命周期中,开发者才会积累写代码、源码控制、修改、测试的经验,并在维护阶段与之前的设计和架构决策共存。在我刚才所描述的一切情况下,一个开发人员的第一次尝试不到六个月是很幸运的,这意味着,在这个行业工作五年后,也许他们在应用开发上有十次尝试的机会。这是平均水平--有些人会一直停留在这一次,而有些人会有几十次)。

这意味着,一个软件开发人员的快速获得阶段--高级初学者主义--将持续数年而不是数周。而在这些年里,软件开发人员都在跳槽,赚取升职机会,尤其是这几年。当他们在快速获得的同时,他们也在轻而易举地获得一级和二级软件工程师这样的头衔,然后可能是 "Associate "和 "Senior",也许最终会一直到 "Lead "和 "Architect "以及 "Principal"。因此,当他们处于Dunning-Kruger和Advanced Beginnerism的阵痛中时,他们被赋予了听起来像专家的头衔,并被招聘人员告知他们是 "摇滚明星 "和 "忍者 "什么的--尤其是在当今的经济形势下。唯一阻止他们自然而然地迈入专家初级阶段的,是同行评审和与整个开发社区的互动。

但是,当高级初学者不屑于与广大社区互动,也不知道出于什么原因,与同行的互动不多,怎么办?每天的WTF都充斥着这样的例子。他们在失败的同时也坚信失败是别人的错,而游戏的本质就是这样,指责别人很容易也很方便,可以缓解任何认知上的失调。他们得出的结论是,他们很快就达到了专家的地位,而且无处可去。他们已经正式成为专家级初学者,他们已经准备好在组织中的某个利基中巩固自己的地位,并领取巨额的薪水,因为他们周围的人,包括他们在内,都没有意识到他们可以做得更好。

下次再来

因此,我们已经记录了专家型初学者的崛起:他们从哪里来,为什么他们停止进步。在本系列的下一篇文章中,我将探讨一个或多个专家级初学者造成退化的机制,他们积极地造成有天赋的成员或本来可以健康发展的团体的动态中的溃烂和腐烂。

接下来是:软件组是如何腐烂的:专家入门者的遗产


通过www.DeepL.com/Translator(免费版)翻译

相关文章

网友评论

      本文标题:[译]开发者如何停止学习。专家级初学者的崛起

      本文链接:https://www.haomeiwen.com/subject/uzebcktx.html