程序员思维修炼:从新手到专家的5个阶段

开发 后端 前端
新手在该技能领域经验很少或者根本没有经验。这里提到的经验,指的是通过实施这项技术促进了思维的改变。举个反例,可能一个开发人员声称拥有十年的经验,但实际上只有一年的经验重复了九次,那么这就不算是经验。

阶段1:新手

Novices need recipes

---新手需要指令清单。

[[148688]]

新手在该技能领域经验很少或者根本没有经验。这里提到的经验,指的是通过实施这项技术促进了思维的改变。举个反例,可能一个开发人员声称拥有十年的经验,但实际上只有一年的经验重复了九次,那么这就不算是经验。

新手非常在乎他们能否成功,没有太多经验指导他们,他们不知道自己的行为是对是错。新手不是特别想要学习,他们只是想实现一个立竿见影的目标。他们不知道如何应付错误,所以出错的时候,他们非常容易慌乱。

但是,如果给新手提供与情景无关的规则去参照,他们就会变得能干起来。也就是说,需要这种形式的规则:“当X发生时,执行Y。”换言之,需要一份指令清单。

当然,新手多面临的问题是,对于某种情景,不知道那条规则是最相关的。当一些意想不到的事前发生时,他们就会不知所措。不过,总有解决办法,可以求助一个与情景无关的规则。指令清单(与情景无关的规则)的问题在于你不能一五一十的将所有的事情解释清楚。

规则只能让你启程,不会让你走的更远。

阶段2:高级新手

Advanced beginners don't want the big picture

---高级新手不想要全局思维。

一旦经过新手的历练,人们开始以高级新手的角度看待问题。高级新手能够多多少少的摆脱固定的规则,他们可以独自尝试任务,但仍然难以解决问题。

他们想要快速获取信息。例如,当学习一门新语言或者API时,你可能会感觉到这一点,你发现自己会快速浏览文档以寻找一个方法定义或参数列表。你不想在此刻寻根问底,或者重新温习一遍基础知识。

高级新手能够根据过去的经验,逐步在正确的情境中旅采纳建议,但比较吃力。同时,他们能够开始形成一些总体原则,但不是“全貌”。他们没有全面的理解,而且的确不想有。如果你试图把一个更大的情景强加给该机新手,他们可能会认为该情景与那些原则不相关而忽略掉。

当公司CEO举行全体会议并展示销售预测图标和数据时,你可能会看到这样的反应,许多在这方面经验少的员工对这些会不加理会,以为这与他们自己的工作不相关。

当然,其实这是非常相关的,它可以帮助你判断明年你在这家公司是否还能继续干下去。但是,你看不到这种联系,因为你层次还不够,只是处于比较低的技能水平。

阶段3:胜任者

Competents can troubleshoot

---胜任者能够解决问题。

在这个阶段,从业者现在能够建立问题域的概念模型,并有效地使用它们。他们可以独立的解决自己遇到的问题,并开始考虑如何解决新的问题--那些他们之前没有遇到的问题。他们开始寻求和运用专家的意见,并有效地利用。

与更高水平者追随下意识反应不同,胜任者会探寻和解决问题,他们的工作耿作石基于谨慎的计划和过去的经验。如果没有更多的经验,在解决问题时,他们将难以确定关注那些细节。

你可能会看到,处于这一水平的人通常被认为“有主动性”和“足智多谋”。他们往往在团队中发挥领导作用(无论是否有正式的头衔)。他们是团队里的好人,既可以指导新手,也不会经常骚扰专家。

在软件开发领域,我们达到了这个水平,但是即使在这一水平,人们仍然无法按照我们希望的方式来应用敏捷方法--大家还没有足够的能力反思 和自我纠正。为此,我们需要取得突破,达到一个新的水平:精通。

阶段4:精通者

Proficient practitioners can self-correct

---精通者能够自我纠正。

精通水平的从业者需要全局思维。他们将围绕这个技术,寻找并想要了解更大的概念框架。对于过于简单化的信息,他们会非常沮丧。

处于精通水平的从业人员有一项重大突破:他们能都纠正遗忘不好的工作表象。他们会反思以前是如何做的,并修改其做法,期望下一次表现的更好。到这个阶段,自我改进才会出现。

同时,他们会学习他人的经验。作为精通者,他能够阅读案例研究,倾听有关失败项目的流言蜚语,观察别人怎么做,从故事中认真的学习,即使他没有亲自参与。

伴随向他人学习的人力而来的,是理解和运用格言经验之谈的能力,这些经验之谈犹如谚语或者格言,是可以应用于当前的情景的基本原理。经验之谈不是指令清单,它们必须在一定的情境下使用。

处于精通水平的人员知道什么地方有坑内出错,或者更确切地说,什么地方非常有可能出错。他们具有经验和判断力,能够理解这句格言在情景中意味着什么。事实证明,理解情景是成为专家的关键。

同样,处于精通水平的人可以有效地运用软件模式,但是这不是较低技能水平所必须掌握的。精通者可以充分利用思考和反馈,这些都是敏捷方法的核心。相对早期阶段,这是一次巨大的飞跃。处于精通阶段的人更像是初级专家,而不是高级胜任者。

阶段5:专家

Experts work from intuition
---专家凭直觉工作

专家是各个领域知识和信息的主要来源。他们总是不断地寻找更好的方法和方式做事。他们有丰富的经验,可以在恰当的情景中选取和应用这些经验。他们著书,写文章,做巡回演讲,他们是当代的巫师。

专家根据直觉工作,而不需要理由。这带来一些非常有趣的影响,并提出了一些重大问题--到底什么是直觉?

虽然专家们非常有直觉--这一点对于我们其他人来说非常神奇,他们可能会对如何得到结论完全说不清楚。他们的确不知道,只是“觉得是正确的”。

例如,医生给病人看病。乍一看,医生说:“我认为,这病人得了Blosen-Platt综合征,***做一些深入检查。”病人做了检查,结果证明医生是正确的。你可能要问,医生是怎么知道的?但医生可能会回答:“他看上去不太舒服。”

是是是,病人只是看起来“不太舒服”、不知怎的,在医生大脑里面的各种各样的经验、判断、记忆,以及所有的其他的意识的帮助下,医生把病人身上的微妙线索结合在一起,就得出了诊断结论。也许,只是因为病人皮肤苍白,或者是病人躺下的姿势说明了问题,谁知道呢?

不过,这位专家知道。专家知道那些事无关紧要的细节,那些事非常重要的细节。也许不是有意识的,但是专家知道应该关注那些细节,可以放心的忽略那些细节。专家非常擅长做有针对性的特征匹配。

责任编辑:王雪燕 来源: 程序员思维修炼
相关推荐

2018-10-19 09:03:37

程序员管理思维

2013-12-03 10:30:28

iOS开发程序员自我提升

2009-05-21 15:39:35

程序员项目管理职场

2023-10-10 22:33:20

C++编程

2020-10-23 09:45:06

程序员能力开发

2010-01-14 13:53:52

局域网交换机选购

2020-04-01 10:02:18

程序员技术设计

2020-04-01 10:39:34

结构算法设计模式

2011-06-14 16:31:27

QT

2023-08-31 07:33:41

GopherCarolexcel

2012-07-05 09:37:04

Java程序员

2011-06-15 08:39:10

程序员

2019-05-05 11:20:23

GitHub代码Python

2014-04-23 10:15:42

程序员机器学习

2010-08-11 13:56:03

Flex程序员

2009-12-04 10:45:20

程序员职场

2011-11-24 14:20:24

Java

2009-03-31 14:28:48

程序员心里话职场

2015-08-18 15:22:59

程序员成长阶段

2009-11-27 09:07:38

程序员
点赞
收藏

51CTO技术栈公众号