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

摘自:《程序员的思维修炼:开发认知潜能的九堂课》

阶段1:新手

Novices need recipes

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

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

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

但是,如果给新手提供与情景无关的规则去参照,他们就会变得能干起来。也就是说,需要这种形式的规则:“当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综合征,最好做一些深入检查。”病人做了检查,结果证明医生是正确的。你可能要问,医生是怎么知道的?但医生可能会回答:“他看上去不太舒服。”

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

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

时间: 2024-10-12 22:22:24

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

程序员如何修炼管理思维

程序员如何修炼管理思维 1.从个人到团队转变,包容同事,出问题不是指责而是引导:培养人,给每个同事锻炼的机会.以人为中心而不是机器. 2.从专心做好一件事到同时处理多个任务转变,拥抱混乱但不要陷入其中,做好个人的时间管理,把杂乱的任务理清楚才是进步. 3.从关注点到关注面转变,先设计再开发. 4.从说是什么到为什么转变,追根溯源,发现本质. 5.从追求完美到掌握平衡转变.放弃完美是走向完美的路.项目经理最需要平衡,追求完美成本不可控,保持平衡的同时保持迭代,完美是迭代优化出来的. 原文地址:ht

《程序员的修炼之道:从小工到专家》的读书准备工作

创造是主动的,完成是被动的 创造是艺术,完成是任务 创造是激情,完成是无奈 当细品这三句话时,我就突然把它联想到了我和我这个专业的关系;大概在家里憋了7天吧,我还是在前天爆发了,在不断的挣扎.纠结.和自我否定等消极情绪中,这三句话点通了我,我试着将恐惧.压力.惰性以及侥幸全部转化为行动以及对我这个专业的不断认识中.去百度.知乎.简书等学术网站寻找软件工程这个专业对我自身的意义与价值,同时也在搜罗着看哪本书能够让自己快速认可我的这个专业,并在这个专业上有所图(当时分流时因为导师的一句话就迷迷糊糊的

《程序员的修炼之道——从小工到专家》读第一章有感

         九月份,我读了<程序员的修炼之道--从小工到专家>这本书,虽然只是读了其中小小的一章,却让我收获了许多,收益匪浅.     从<程序员的修炼之道>这本书的介绍部分可以看出,该书是一本很棒的作品,该书由一系列独立的部分组成,讲述了许多富有娱乐性的奇闻轶事.有思想性的例子.以及有趣的类比,内容丰富多彩,并且本书还阐明了软件开发的许多不同方面的最佳实践和重大陷阱,无论是初学者还是有经验的编程员,都能从中获益.书中更是例举了许多程序员对这本书的看法,从他们的介绍中让我认识

《程序员的修炼——从优秀到卓越》

<程序员的修炼--从优秀到卓越> 基本信息 作者: (美)Jeff Atwood 译者: 陆其明 杨溢 出版社:人民邮电出版社 ISBN:9787115347824 上架时间:2014-4-15 出版日期:2014 年5月 开本:16开 页码:207 版次:1-1 所属分类:计算机 > 软件与程序设计 > 综合 > 综合 更多关于>>> <程序员的修炼--从优秀到卓越>   编辑推荐 <高效能程序员的修炼>姊妹篇 Coding Hor

如何区分一个程序员是“老手“还是“新手“?

除多年编程经验之外,还有什么能区分一个程序员是“老手”还是“新手”?编程技巧当然是一部分,但它绝非是全部. 聪明的程序员可能比他们的同行拥有更出众的编程技巧,但那不足以说明他们就是“老手”.同样,仅仅因为拥有10年编程经验也并不意味着他们就是高手.在工作岗位上,拥有多年编程经验也不能说明问题.即便没被炒鱿鱼,那也不能提升你的价值. 下面列举的事情是大多数高级程序员都会做的. 1.至少掌握一门编程语言 我相信有些优秀的程序员只懂(并精通)一门编程语言,但在某种程度上而言,这其实会限制一个人的思维.

《高效程序员的修炼》读后感

本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 首先非常感谢陆经理的赠书,如有想购买的同学,可到京东购买,地址:http://item.jd.com/11279666.html 这本书讲的并不是通常市面所见到:教你如何使用一个类,研究它的内存与引用之间的关系:也不会教你如何实现一个功能或者一个界面:其实这本书是面对一个技术总监的书,如果你有志于CTO,那么我可以负责任的告诉你:你可以去购买它! 这是stackflow创始人jeff atwood

《程序员的修炼——从优秀到卓越》读书笔记(二)——运营和项目管理

运营企划: 1.如果没有失败(以及很多经历) ,那就算不上是真正的实验,也不可能有创新 2.重要的创新和改进可能会在任何时候以自下而上的方式来自于公司的任何人--它们不会总是按照神奇的总体规划上预定的间隔自动蹦出来(高手在民间) 3.用Memtest86+测试内存稳定性,用Prime95测试CPU稳定性.有时候确实是硬件的问题.(电源和散热设备也会影响设备的稳定性) 4.建立一种异常和错误报告机制.80%的客服问题在修复了用户报的最多的20%的BUG之后就能得到解决.异常日志才是用户反馈的根本.

《程序员的修炼——从优秀到卓越》读书笔记(三)——人员管理和人生经验

人员管理: 1.如果你想要影响别人,你必须有能力说服他们.(行政手段,利益刺激同样可以说服人,但是在面对技术人员时更需要让他们相信你的权威,技术人员特别是高级的技术人员都脾气比较像知识分子,行政手段的刺激经常会产生相反的效果) 2.说服他人的"草根"方法:1.从总体上说,他的观点是相当出色的:2.他的做事方式是自下而上的,而不是自上而下的 3.他总是能带头亲自去做事,以赢得别人的信任 4.他拥有足够的耐心去等待机会的到来(在没有足够的地位和权力之前,怀柔政策是可以采用的) 3.真正起到

突破程序员思维

突破程序员思维 来源:技匠的简书 过去我曾一直认为程序员是依靠他们的技术在编程,也是因为技术使得程序员的水平有高低之分,但随着我写代码的时间越来越长,也接触到更多的程序员,我渐渐发现程序员们其实是依靠他们所特有的程序员思维在进行编程的,而他们中的佼佼者正是那些有着更高思维成熟度的优秀程序员们. 什么是程序员思维 那么,什么是程序员思维呢?我曾读到过一些文章,试图给它下一个明确的定义,比如,具备抽象和逻辑思维的能力,拥有面向对象编程和设计的能力等等.我对这些所谓定义有些不以为然,因为,我所体会的程