程序员的思维训练
阅读Andy Hunt 《程序员的思维修炼:开发认知潜能的九堂课》的笔记与心得感悟。
约定:本文以引用的方式来记录原书的内容,其余内容为个人的看法与认知
从新手到专家的历程
理论知识
德雷福斯技能获取模型(Dreyfus model of skill acquisition),概括了从新手到专家必须经历的5个阶段:
1. 新手(Novice)
2. 高级新手(Advanced beginner)
3. 胜任者(Competent)
4. 精通者(Proficient)
5. 专家(Expert)新手使用规则,专家使用直觉。
所以,当作为新手,要去学习一项新的技能时候,第一阶段就应该是从机械地遵从规则开始!对于一个迫切想要了解某项新知识的人来说,踏出最纯正的第一步,至关重要。
我曾经不止一次地被询问:我想要学习好算法和数据结构,请问该如何入门?于是,我总会热心地为他们推荐适合的编程语言,适合基础入门的网站与进阶的网站学习资料与实践场景。但是,我发现,很少甚至几乎没有人成功地按照了我说的入了门。由此也引发了我对一项新的技能入门第一步的思考,其实,也许我只要说:
1. 下载一个C++ IDE:Code::Blocks
2. 新建一个Console工程,打开里面的main.cpp源代码文件
3. 阅读这样一个问题第K极值
4. 了解快速排序相关知识
5. Google优秀的快速排序写法,并背诵记忆下来!
6. 写出实现这个问题的源代码,并提交
7. 到此为止,你走出了第一步,于是接下来的路再继续发布给你一系列的任务
所以你应该明白了我想要表达的意思,与其一开始就去做诸如:“分析与比较大量的编程语言,然后选出合适的入门语言;提供相关的资源网站,教他查询API;提示他写程序不要局限于IDE”这些看似更利于今后发展的行为,反不如上来就给出一系列“狭隘”的规则与指令,让他去按部就班。
因为,成长是阶段性的。当你对一件事物的看法随着时间与经验的积累,达到一定量之后,必然会产生质变:从而由最初按部就班的混沌中产生意识,学会思考,从而进阶到下一阶段!阶段是不可跨越的,因此并不需要在入门新手阶段,过多地灌注超越当前眼界的事情!
有效地使用
R&D精神(Rip off and Duplicate,偷师学艺),三个阶段:
1. 模仿
2. 吸收
3. 创新警惕工具陷阱,规则无法告诉你在某种情况下应该采取的最合适行为或者正确路线。他们充其量也就是“自行车的辅助轮”——可以帮助启动,但是却限制并大大妨碍了以后的表现。通常有如下需要注意的点:
- 混淆模型和现实
- 低估不能形式化的特性
- 规定违背个人自主性的行为
- 偏袒新手,从而疏远了经验丰富的员工
- 阐明太多细节
- 把复杂局势过于简单化
- 追求过度一致
- 忽视情境的细微差别
不知道同样的问题是否也曾经困惑过你:当模仿别人时候,总怕被人说自己没有创意,没有想法。
现在,恍然大悟,这并非是真正缺乏创意的表现,而却正是最为纯正的学习方法。因为,没有这样的天才,在第一次做事情就能和专家达到相同的水平。因此,模仿是踏出第一步的关键。而所谓创新,是真正衡量你是否已自成体系的最终环节!所以,不要因为没有能够在第一步就自创而妄自菲薄。
要获取专业技能,需要做到如下几项:
- 培养更多的直觉
- 认识到情境和观察情境模式的重要性
- 更好地利用我们自己的经验
在近日的谷歌AlphaGo与韩国围棋九段李世石的世纪大战1中,我关注到一个细节:场外的专家解说,如中国的古力九段,往往会用诸如:“这一手的杀气不够”、“这一步有点坏味道”,来形容某些失误的落子。
专家懂得去寻找至关重要的细节,忽视无关紧要的细节。这是怎样做到的?这样的直觉又是如何获取的?
这需要在阶段进阶中始终注意一个关键点:
如何从关注规则中蜕变出来,反思自己,关注情境,把自己化为情境系统的一部分。
认识你的大脑
形象的比喻
![]()
双CPU模式:1号CPU负责线性、逻辑思维和语言处理,简称为L模式;2号CPU则采用异步、综合处理风格,简称为R模式。R模式是不可预测的,你需要为此做好准备。答案和灵感会独立于你的意识活动出现,而且不是总在恰当的时候。这意味着你需要24x7随时准备记录任何灵感和想法。
L模式是令人信服的思考方式,当我们采用L模式去处理问题的时候,内心将涌出来自于类似自然科学客观规律的力量源泉。而R模式却常常被我们忽略或者轻视,因为你无法从讲道理的角度来阐述你通过R模式所带来的收益之处。也因此,忽视R模式,说不上来有什么坏处,却也的的确确因之丧失了很多其它方面的能力。
我本人是一个R模式的青睐者,也希望以此感染所有阅读本文的读者们。即便现实很残酷,我也坚信着世界很美好,坚信着努力可以克服一切困难障碍,可以划破漆黑的天空,找到属于你自己的光芒!
吸引力更有效:一些研究都表明具有吸引力的用户界面要比不具吸引力的界面更易于使用。