实用方法
《程序员的思维修炼》英文版书名为《pragmatic thinking and learning》。pragmatic,指实用、实务、有效处理当前情境中的问题,是全书书眼。书中抛出实用锦囊若干,帮助读者更加有效地学习、思考、处理问题。
1 能力定位:德雷福斯模型
身在山中,容易自满自足,不知山外有山。若望高山,而不知山,则只有望山兴叹,缩回自己的小山头。德雷福斯模型展开了一幅能力进阶的群山图,新手、高级新手、胜任者、精通者、专家,盘踞一处。这幅图,可鸟瞰,与群山比拼,知晓高低。这幅图,可细察,拨开迷雾,把高山看个清楚。
从新手到专家,隔了几座山?新手与专家眼中的问题
截然不同。新手只看得到眼前的问题,并急于解决它。专家不仅分析问题还分析问题所在的情境
;能把问题关联到更深入的模型
;能主动预测
问题。董振磊老师在分享会里介绍的芒格,就是建立跨学科模型,使用模型解决问题的专家。新手与专家解决问题的方法
也不同。新手需要行动指南,手把手指点。专家则依赖基于大量经验的直觉解决问题。另外,专家有更强的元认知和反省能力,他们不止步于解决
问题,他们致力于寻找更好的解决办法
。
作者在书的开篇即介绍德雷福斯模型,用意是让读者评估自己的能力阶段,找到与高阶者的差距。然而,模型仅仅是对事物的一般抽象,会有疏漏、偏差、过时。正如作者在警惕工具陷阱一节中也提到,如果一昧依赖模型,将会忽略现实,忽略情境,过度简化事物。德雷福斯模型也不会例外。了解模型之余,不妨把目光投向自己所在领域,观察领域中的低阶者和高阶者,再分析、比较、归纳出自己领域里的能力进阶图。
2 善用大脑:大胆直觉,小心debug
大脑有两种加工模式*:模式1,线性加工,运行速度慢,逻辑思考、语言加工都靠它。模式2,直觉、整体式加工,非语言加工,不受意志控制,问题解决、创造力需要它。一般观念里会更加倚重模式1,但是模式2同样重要,专家的直觉和创造力,来自模式2。高效的学习和思考,两种模式缺一不可。
开启模式2,激发直觉:
- 具像化
将抽象的文字,转化为图像,调动多种感官,使之可看、可摸、可听、可闻。 - 隐喻
找到事物之间的联系。以具象的事物隐喻抽象,便于理解抽象概念。把看似不相干的事物连接起来,需要创造力。 - 散步
把模式1关掉,出去走走
直觉会犯错,不想被直觉带坑儿里,切换到模式1,小心debug:
- 认知偏差
了解认知谬误,并避免之;极端值里可能存在有价值的信息,别轻易扔掉;忍受不确定性,别轻易做决断 - 个体与背景
了解自己、了解时代精神 - 反向思考
想象自己观点的对立面
3 实战升级:learn by doing
通过构造来学习,而不是通过学习来构造
学习是主动求索、创造,而不是像海绵一样贪婪地吸收信息。学习需要在情境中实战,持续输出,不怕犯错,根据反馈不断改进。一个高效的学习流程应该是什么样?
- 目标
参照制定目标的SMART原则:specific
,measurable
,achievable
,relevant
,time-boxed
- 计划
继续参照SMART原则,制定短、中、长期计划 - 执行
- 打造学习环境
- 版本管理(git + github)
能保存历史版本,可回溯任一历史版本,保证可大胆尝试而不怕写坏写废 - 能提供即时准确的反馈(学习小组、师徒制的优势)
- 减少干扰
- 版本管理(git + github)
- 专注
- 管理知识
- 养成做笔记的习惯,随时记录想法
- 建立个人wiki
收集案例,记录观点,建立信息间的连接
群友推荐使用gollum,有时间的话试试(参考阳志平老师的网志。另,感觉阳老师是万能的……)
- 反馈、迭代、改进
4 小结
这本书最让我获益的点:
德雷福斯模型
这个模型让我对解决问题能力的差距模模糊糊的感觉和认识,清晰了许多,实实在在看见了问题解决能力之间的差距。借助德雷福斯模型,我更加了解身边的牛人,牛在哪里,而自己跟他们的差距又在哪里。模式2与直觉、创造力和专家的联系
我对这种双加工模式并不陌生,但从来没有把它与专家技能、问题解决和创造力关联起来。冥冥之中,知识跟知识贯穿联系的感觉很奇妙。构建式学习,learn by doing
去年一次自学python的经历,让我意外实践了一把构建学习。当时的目标非常明确(被逼无奈),1-2个月内,编出实验程序,能够用键盘移动屏幕上的物体,能够记录正确率和反应时。在实战中学习的好处是,任务本身会创造需要解决的问题,在解决问题的过程里,掌握新知识。学习者一直处在积极学习,积极发现问题、解决问题的环路里,搭建自己的知识网。若是在平常课堂上学习知识,学习顺序是颠倒过来的,先学习知识,再通过练习巩固知识,这样的学习过程,被动太多,远没有构建式学习,苦中有乐,学得扎实。
读罢《程炼》,如果让我回到1年前,我会做的改进是:不要独自学习,找到学习小组,找到导师,获得更加即时的反馈(互相吐槽,舒缓下焦虑的情绪,也是极好的)。使用版本控制系统,当时搞了n个.py文档,完全分不清每个文档都做了哪些改动,还不敢删。建立个人wiki,或者以写一本编程入门手册的思路来学习,如果这样做了对概念的理解,对概念之间的联系,应该会更加明晰。
这本书让我比较失望的地方是结构松散,论述也有混乱,有时候找不到小节之间或者论据与中心句之间的联系。实用方法太丰富,以至于想实践都不知道从哪儿开始,这有违‘pragmatic’的宗旨呢!
5. 关于读书会
从来木有读一本书,读书笔记打卡10次,再加一篇大笔记,实在是巨大挑战。幸好有同读一本书的小伙伴互相敦促,以及热心负责的组长,每天在群里吆喝。很喜欢读书群的氛围。速来是个爱潜水的人,竟然会很有安全感地在群里说几句话,对我也是不容易的事 o_O。
最后,开智第一次读书会,让我学习到,读书笔记应该分摊在平时做。开智第二次读书会,让我学习到,除了读书笔记,最后的大笔记也应该分摊到平时思考总结。。。
能一直学些什么的感觉,很好!
*. 本书将大脑的两种加工称之为L模式和R模式。L和R很容易联想到左脑和右脑,让人误认为左脑和右脑分工不同,独自工作(尽管作者自己也有在文中澄清,大脑的左右半球是协同合作的)。为避免混淆,这里用模式1和模式2指代这两种模式。