程序员思维修炼
德雷福斯模型
技能获取的德雷福斯模型
共分5阶
新手到专家被分为5阶:
专家:凭直觉工作
精通者:能够自我纠正
胜任者:能够解决问题
高级新手:不想要全局思维
新手:需要指令清单
由新手到专家的转变,脱离独立与绝对化规则,进入直觉的境界并最终称为系统本身的一部分:
规则 -> 直觉
考虑各个方面 -> 关注相关方面
旁观者 -> 系统的一部分
不知道自己不知道
当你在某领域不是很擅长时,你更可能认为自己是这方面的专家。
一旦你真的称为了一名专家,你会痛苦的意识到你知道的是那么少。
知道你不知道什么
新手尽管能力差但信心十足,而专家在情况异常时会变得愈发谨慎,专家会更多的自我怀疑。
专家的直觉和模式匹配能力已经超越了他们显式的知识。
使用德雷福斯模型
勇于承担责任
高级新手只是执行命令,为了实现工作态度的转变,确实需要先提高技能。
通过模仿现有的做法,然后慢慢吸收内在的知识和经验,最终将超越模仿阶段并能自主创新。
我们需要研究如何在项目中坚持实践尽可能多的现有技能,如果实践者不长期浸淫于该领域,这些进步就根本体现不出。
警惕工具陷阱
模型是工具,而非镜子。
如果你需要创造力,直觉或者独创能力,避免使用形式方法。
不要屈服于工具或者模型的虚假权威,没有什么可以替代思考。
考虑情景
新手需要与情景无关的规则,而专家使用与情景相关的直觉。
专家喜欢说:"具体情况具体分析",他们分析依赖于很多事情,懂的去寻找、至关重要的细节,同时忽略无关的细节,情景在起作用。
学习如何学习
德雷福斯模型指导如何获取专业技能,是学习如何学习的技能。
认识大脑
大脑可以类比于计算机,包含2个CPU,共享的总线,以及内存。
双CPU模式
L CPU负责线性、逻辑思维和语言处理,称为线性模式。
R CPU更像是类似google的超级正则表达式搜索引擎,负责处理搜索和模式匹配,称为富模式。
L型让你细致工作并实现目标,R型对直觉、问题解决、创造性非常重要。
内存和总线竞争
2个CPU访问内存时需要共享内存总线,所以会互相干扰。
比如你刚要描述刚才做的梦时(R CPU),你发现梦境从你的记忆中消失了(L CPU)。
记忆必须刷新
大脑不是静态RAM,而是动态RAM,RAM需要不断刷新,否则数据就会消失。
R型不受直接控制
一个棘手问题的答案突然灵光闪现,可能是在你洗澡的时候。
这是因为R型是异步的,它作为后台进程运行,处理过去的输入,努力挖掘你需要的信息,因为它要浏览的信息非常多。
各种想法层出不穷,互相竞争,无论何时,只有胜利者才会称为你的意识。
随时(24 x 7)记录想法
R型是不可预测的,答案和灵感会独立于你的意识活动出现,而且不是总在恰当的时候,所以可以准备一些笔记本之类的记录下来。
每个人都有好点子,一旦你开始捕捉这些想法,大脑就会非常乐意给你提供比你想要的更多的东西。
L型与R型的特征
L型处理特点
L型处理令人干到舒适、熟悉而轻松,包括以下9种能力:
语言能力:使用词语来命名、描述和定义
分析能力:有理有节分析事情。
符号能力:用符号表示事物。
抽象能力:抽取小部分信息(本质),并用其表示事物整体。
时间能力:遵时循序。
推理能力:基于理智和事实得到结论。
数字能力:使用数字计数。
逻辑能力:基于逻辑(定义、明确的观点)的出结论。
线性思维能力:按照关联、依序推演问题和思考,经常会得出收敛性结论。
以上能力非常符合我们欣赏的计算机系统,但是毕加索曾经说过一句著名的话:
"计算机一无是处,它们只能给你答案"。
R型处理特点
非语言
非理性
综合
空间性
具体
直觉
分析
全面
R型是非语言的,它喜欢综合学习,集合事物形成整体。
R型注重整体,希望看到事物整体,感知整体的模式和结构,它是直觉性的、跳跃性的思维,通常基于不完整的模式、直觉、感觉或者视觉影响做判断。
思维过程是非理性或者不可重复的并不意味着它是不科学的、不负责任的、不合适的。
为什么强调R型
R型能够提供直觉,这是称为一名专家迫切需要的。
德雷福斯模型强调专家对隐性知识的依赖,这也属于R型范畴。
专家依赖观察和区分模式,这里也有模式匹配。
R型的崛起
L型是必须的,但仅有它是不够的
L型思维区分了人类和普通动物,带领人类走出森林,走进村庄城镇,坐在办公桌后面使用office word。
过度依赖L则失去了R型重要能力,为了推进人类发展的下一次革命,我们需要学习将大大忽略的R与L重新集成。
创造来自于选择和组装
选择最合适的部件,并将它们组装成最合适的表现形式,这就是创作。
美来自于选择,艺术不是来自于创造本身,而是来自于选择,从几乎无限的可选中进行选择。
选择来自于模式匹配
模式匹配是专家表现的一项关键能力,它帮助专家缩小选择范围,把精力集中到与问题相关的事物上。
R型看森林,L型看树木
如果你想发现全局、整体的模式,你需要R型。
如果你需要分析部分和细节,你需要L型。
最终两者都需要。
重塑大脑
神经具有可塑性,意味着你能够学习的最大容量或者你可以获得的技能数量不是固定的。
思想使然
没有上限,你如何认识大脑的能力直接影响了大脑内部的组织,只要想象你的大脑有更多的学习能力,就会变成那样。
这就是一个自己动手的DIY脑部手术。
脑皮层竞争
持续使用和实践的技能会逐渐占据统治地位,而较少使用的技能会失去阵地,大脑会把更多的资源用于你做的最多的事情。
想成为一名更好的程序员吗?那就多编码,深思熟虑,专注实践。
启动感官输入
利用多感官反馈
刺激你的大脑,它渴望接受额外的、新奇的刺激,多感观的反馈是增强理解和记忆非常有效的方法。
用右脑画画
绘画是R型活动,困难的不是绘画的结果,而是观察,这种可视的洞察力是一项R型任务。
认知转变,感受R型
要想获得真实的洞察力,需要关闭L型,启动R型做其最合适的工作。
分配给L型一个它不想要的工作,从而让路给R型。
建立R型到L型的转换
R型开路,L型紧跟。
思维的这两种方式天生就是一起工作的,首先运用类比方法来解决关联性、理论性的问题,然后运用分析法来验证你的想法。
R型是源头,你要给它自由、无限的空间。
结对编程
工作时,一人用L型,另一人用R型。
要想发现有用且有趣的抽象特征,相互配合是一种经得起考验、行之有效的方法。
隐喻想通
L型和R型处理过程截然不同,但是在你的大脑中它们存在一个汇合之处,一个创造力转化为新创意的地方。
L型和R型在隐喻上(也就是创建类比的过程中)相通,在潜意识和意识之间来回游戈。
隐喻例如:电脑"回收站"并不是真的"垃圾桶"。
收获R型线索
R型总是在努力工作,在背后勤勤恳恳的匹配各种事实,建立广泛的关联,从乏味的记忆泥沼中获取遗忘已久的重要数据。
一切输入都被存储
你的大脑存储着它接收到的一切输入,虽然存储着,但不一定会索引这些记忆。
你正在犯愁的问题,R型模式可能早已有了准确答案,但是如何得到它?
当你努力解决一个难题时,你的所有记忆都会被扫描,甚至是那些你没有索引的记忆(相当于SQL的全表扫描),这的确能解决问题。
许多想法是无法用语言表达的
很多出色的技能和想法是无法用语言表达的。
你很难阅读梦中出现的文字,如道路标志或大字标题。
利用图像流
通过有意观察心里意向,把注意力集中到脑海中稍纵即逝的画面中,就有可能有一些新的领悟。
利用自由日志
这也是利用R型潜意识能力的简单方法,就是书写。
写博客就很受欢迎,但是一旦开始写作就一定要注意坚持不懈,不要为了技术问题而分心,不必担心是否还需润色,先把它们都写下来。
利用散步
洗澡,刷盘子,沿着笔直的高速公路旅行,因为L型厌倦了这种常规的任务,走了神,就得以让R型自由的展示自己的发现。
你是否注意到伟大的想法和领悟可能会在最出乎意料的时候降临?
当你集中注意力时,L型就在工作。R型则不同,你不能命令它,只能邀请它,你必须有点心不在焉。
收获模式
R型只需要依据最少的模式片段,就能实施模式匹配。
R大脑非常善于在模式片段的基础上重构事实,大脑也能基于不完整的数据进行联想,它一直都在这样做,即使你没有意识到。
代码中的模式
代码排版对感知具有很强的影响,可能是好可能是坏。
请努力使用一致的排版来辅助可视化知觉,这是一个重要的团队交流工具。
换换脑子
拥有创造力和问题解决能力的关键在于寻找思考问题的不同方式。
不同的关联会强制R型发起不同的搜索,这样新的素材可能立即就会出现。
把问题倒过来看,这种视角的简单转变,从相反角度思考问题,本身是一个非常强大的技术。
不要努力去想完美的设计和流程,先做一个最差的设计方案,这将帮助你意识到什么是真正重要的。
正确理解
R型思维过程非常微妙,不能强制利用。
我们需要组织学习和思维的过程,以支持R型向L型的转换。
通过追寻细微的线索,收获R型的现有输出。
通过类似晨写、写作和非目的性的思维时间(散步等)技巧增加R型工作的机会。
最后,由于记忆是一种脆弱和昂贵的机制,所以随时记录下R型输出的精辟领悟。