新手适用规则,专家使用直觉。 知道自己不知道什么 。
专家不等于老师
专家并不总是最好的老师,教学只是一门技能,你在某个领域是专家,这并不能保证你可以把它准确地教给别人。专家与众不同之处是他们使用直觉和在情境中识别模式的能力 。这并不代表新手没有任何直觉或者胜任者根本不能识别模式,但是专家的直觉和识别模式的能力已经超越了他们显性的知识。
直觉和模式匹配能力超载了显性知识。
--- Intuition and pattern matching replace explicit knowledge.
关于实践,积极地实践需要四个条件:
□ 需要一个明确定义的任务。
□ 任务需要有适当难度 ------ 有挑战性但可行。
□ 任务环境可以提供大量反馈,以便于你采取行动。
□ 提供重复犯错和 纠正错误的机会。
一通百通法则,一旦成了某个领域的专家,在别的领域成为专家就会变得更容易。
至少你已经拥有了现成的获取知识的技能和模型构建能力。
软件开发的职业特征:
□ 程序员大多数时候会认为自己是一种工具,从而漠视工作。(也许在别个眼里,他们只是执行训练有素的分析师的指令,人们不期望他们对项目的设计和架构有所创见)
□ 由于薪酬不一,专家级程序员争先恐后离开一线编码工作,通过管理、教学或者巡回演讲赚更多的钱。
□ 很多人认为正规的实践模式是最好的教育方式,这个有效的想法确实适合于大多数人。
□ 人们在行动的时候往往会更多的关注自己的薪水钱财(这本就无可厚非),但他们忽视了自己的初心,无论采取任何过程或者方法,无论谁参与项目,结果是什么?项目成功了吗?在不断进步吗?还是相反?
“我只是执行命令!” 是无用的。
"I was just following orders!" doesn't work.
情境假设:
一项实验中:一名研究人员在病房中假扮一名医生,命令护士为患者服用某种药物,命令的发布并不周全:
□ 电话沟通,没有手写处方。
□ 所需药物不属于病房核准可用的药物。
□ 使用的剂量超出标签剂量的几倍多。
□ 这个“医生“是个陌生人,护士和其他人并不认识。
即使在如此明显的情况下,接听电话的护士还是服从了命令,去药房取指定剂量的药,然后......,当然研究人员会阻止护士这么做,这本身就是虚假的命令。
程序员经常实现一些他们明知是错误的东西,忽略了明显的警示信号。(类似于护士行为)程序员对负责架构、需求甚至业务流程的相关人员的反馈要么没有,要么被严词拒绝。“我只是执行命令”这样的说辞本身就是推脱责任。
要想成为胜任者层次,可以先从新手层次提炼出高级新手层次,有助于实现这个目标的主要方法是在环境中有一个高级的榜样。人天生善于模仿,小孩子的行为能说明这些。
观察和模仿
没有实践就没有技能
小号手(虚拟人物)学习音乐的秘密是经历个阶段:
◆ 模仿 ◆ 吸收 ◆ 创新
模仿(原模原样) 吸收(从模仿中感知和领悟其中的意义和目的, 理解更加贴切)
创新(意味着超越,超越意味着不同)