Biaobiaoqi的博客

《程序员的思维修炼》

| Comments

别鄙视方法论

曾经很长时间里,我这么认为:方法论的东西没什么实际的用处,不过是其他人按照自己的喜好来处理事物的途径而已,何必照着他人的思路。比如,作为一只不靠谱的程序猴子,在一些偏颇的思维习惯的影响下,我甚至对许多图形化的东西比较反感,自以为文本信息已经足以表达清楚事实且更有效率,从而本能的回避能造成视觉冲击的事物。直到后来,发现自己每每定下的计划都无法完整实施,自然也是没有收到预期的效果。我开始关注到方法本身是否合理,寻找那把平衡效率和体验的钥匙。

这本书给出了一个很好的答案。

虽然标题上赫然是“程序员”几个大字,但其实并没有这么局限。这是一本谈论思维习惯的书,对所有想了解大脑认知过程以更好的发觉其潜能的读者而言,都是可以参考的。虽然自己只是看完了这本书,而没有长期实践的效果证明,但从以往的经验来看,它的观点总能让我信服。

下面是我印象最深刻的观点的总结:

德雷福斯模型(Dreyfus)

技能获取领域的模型。这个模型针对于某个技能而言,是一个情景模型。他将技能的掌握分为 5 个阶段:

  • 新手 -> 高级新手 -> 胜任者 -> 精通者 -> 专家

新手和专家最主要的区别在于【直觉】:新手需要与情景无关的规则让他们高效工作,而专家则相反,他们更多的使用【情景】相关的直觉。(我不觉得需要记住所有这五个阶段,只需要知道,这是一个不断积累知识、培养思维习惯的过程。)

认识大脑

大脑的配置是双 CPU,单主机总线的。

  • 线性模式的 L(左脑):主要负责线性、【逻辑思维】和【语言处理】。它按部就班的处理指令,相对缓慢,使用了大脑中较少的一部分资源。
  • 富模式的 R(右脑):大脑的 Google,负责搜索、模式匹配。它是异步执行的,【非理性】的。可能某个想法几天后才突然跳出来。它不做任何语言处理,这意味着它的结果也不是语言能表达的。它的处理只能邀请,不能强制命令 。我们可以时常记录各种想法,让它运转,以激发它的活跃状态。

这两个 CPU 共享通过内存核心的总线(意识),每次只有一个 CPU 可以访问内存。

值得注意的是,积极的情感对学习和创造性思维非常关键。处于“高兴”的状态可以扩展你的思维过程,激活更多的大脑物质。

理解了大脑的工作模式,以及它们的不同和对实际思考能力的作用,就大概知道了平时应该怎么使用它对自己而言更有效。

充分利用右脑

需要强调 R 的功能,因为它关系着【直觉】,而这正是成为专家的必经之路。

  • 多感官的输入,能获得更高的效率。比如软件工程中使用 CRC 卡片做设计,或者使用积木、乐高玩具做架构设计。

  • 大脑善于适应变化的环境。因此,要定期改变环境,满足你的大脑。任何一种感官的参与都可能是有益的。(当年还强迫自己不间断的工作,既累又不讨好><…)

  • 在学习技能时,可以用 R 型探路,掌握全局,而后用 L 型紧跟,两者配合好。(举例参见读书的 SQ3R 方法)

  • 隐喻是一种激发创造力的强大技能,它能很好的沟通好 L 和 R 型处理能力。幽默感正是这种从不同的想法中创造新奇的联系的方式,幽默感可以建立更强大的隐喻。

  • 大脑在处理不同的输入时,差别并不大。记忆不是永远不变的,每次提取记忆,也会重构记忆。我们可以通过提供给自己有益的暗示,来促进自身进步。

  • 一切输入都会被存储。如果被存储的事物之间有好的区分度, 那就更容易在查询时被检索到。举个编程的例子,源代码的阅读次数远远多于它的编写次数,所以通常应该花更多功夫把代码变得适合阅读,让代码风格和注释更易于阅读,会事半功倍。

  • 晨写和无目的的散步这种方式,能活跃右脑,增加 R 型工作的机会。

调试大脑

大脑有一些固有的偏见,比如自以为是。我们需要对这些点予以关注。

  • 每个人个性倾向不同,处理事儿的方式也不相同。(推荐 MBTI 测试,这里是我的测试结果。)

  • 重要的是要认识到:在某种情况下,别人的反应行为和你所设想的不一样时,他们并不是疯了、懒惰或者非常难以相处。你也不是。

  • 遇到问题,深呼吸,包托变味的空气。深深吸气。数到十。记住你是高级动物。让蜥蜴式的相应过去,请新大脑皮层来处理问题。

  • 既然性格和技能水平各异,可能奖励措施也应该各式各样才对。否则奖励反而让获奖人感到不自在。

  • 大脑会偷懒,很多时候,我们的看法是基于预测的。

主动学习

SMART 方法

学习过程中,使用目标激励的方式会很有效(早年自己没目标,还老找借口说没目标自己也会不断努力的…汗颜)遵循 SMART 方法(这么多条,没必要全记住,核心就在用目标激励前进):

  • Specific:将目标具体化
  • Measurable:让目标能度量
  • Achievable:目标不能是空想,要能够实现
  • Relevant:要与自己足够相关,才能更大化其效益
  • Time-boxed:时间上可控,有最后期限
学习方式分类

每个人对学习方式的敏感度不一样,学习者分三类:

  • 视觉型:需要看到学习资料和老师,对图片,图表,老师的肢体语言和面部表情敏感。
  • 听觉型:需要听到学习材料,对讲座、研讨会、播客敏感
  • 动觉型:通过活动和触摸来学习,需要亲身感受来学习材料

每个人都有自己的默认属性,比如倾向于视觉型或者其他。有时候,尝试不同的学习类型,或许会带来灵感。

SQ3R

书面指令的传递一般是最无效的,大脑处理语言相关部分很小,除此以外,大脑整个剩余部分都不懂语言。常规的阅读方式效率很低,这里推荐一种主动阅读方式,大家可以按需参考。

SQ3R 主动看书法:

    1. 调查(Survey):扫描目录和每章总结,得出总体看法。
    1. 问题(Question):记录所有问题
    1. 阅读(Read):阅读内容
    1. 复述(Recite):总结
    1. 回顾(Review):重读,拓展笔记,与同事讨论。
思维导图

思维导图是一种图表,显示各个主题和它们之间的关系。

  • 思维导图的颜色信息、形状信息大大增加了表达的丰富性,让人更容易接受,易于理解。

  • 多次迭代思维导图图,可以充分利用起 R 型的思维。

  • 当陷入没有明确思路的混沌状态时,思维导图有助于理清思路,指引方向。

  • 另外,跟思维导图一样,记录文档也是不错的选择。或许文档不会有人看,但记录的过程,能促进思考。

经验

  • 在最后期限面前,对 L 型活动可能有激励,但对 R 型活动是一种灾难。压力扼杀了认知。

  • 我们是天生的模仿者,如果身边的人技能水平高,那么我们一般会潜移默化的向他们学习,继而提高自身水平。

  • 语言描述不是一个最好的教学方式。人脑只有很少计算资源在做语言处理。用更多形象的,比如声音、图形、动过可以更好的促进学习。

注意力

保持注意力的三点:

  • 1.学会安抚喋喋不休的 L 型思维。
  • 2.主动在前进中思考和增强思想,即使是不成熟的。
  • 3.明确情景切换的昂贵代价,尽可能避免。

注意力修炼:冥想

  • 寻找一个安静的地方,舒适、清醒的坐着,挺直背
  • 闭上眼睛,集中注意力到呼吸上
  • 注意呼吸节奏,不要试图改变它,只是感觉。不要与自己交谈。每当发现自己在思考一些问题或与自己交谈,及时抛弃这些想法,轻轻将注意力回到呼吸上。

查邮件等会打扰工作状态,这种打扰,会让之后的二十分钟甚至更长无法进入工作状态。这是一种情景切换,大脑不善于情景切换。

超越专家

做到有效的改变很难。以前的习惯依然存在在大脑里。当回到某个旧习惯时,不用懊恼。承认它,大脑就是这样工作的。当意识到它的出现时,重新回到正确的道路上去。

即使成为专家,也要意识到局限性:可能创新不足,过于相信意识等。