主页 关于 链接

02 Oct 2014
程序员的思维修炼(笔记)


程序员的思维修炼


切忌随波逐流。 “Only dead fish go with the flow.”


  • 需要一个明确定义的任务。
  • 任务需要有适当难度——有挑战性但可行。
  • 任务环境可以提供大量反馈,以便于你采取行动。
  • 提供重复犯错和纠正错误的机会。”

“代码,一次编写,多次阅读。 Code is write-once, read-many.”


  • 坚持晨写至少两周。
  • 培养快速的洞察能力。寻找不相关事物之间的关系或类比。
  • 面对难题时引入更多感观。哪些对你而言最有效果?
  • 阅读一些有别于平常的东西,比如小说,但不是科幻小说,等等。
  • 尝试不同类型的电影、假期、音乐或者咖啡。
  • 点一些你喜欢的餐馆里从未吃过的菜。
  • 逆向思维。你会看到什么?”

  • 使用乐高积木或者办公用品做一种设计〔44〕。
  • 学习一门有更多R型思考方式参与的课程或者培养一种类似的兴趣,并天天坚持。
  • 使用双人行机制,让同伴激励你,讨论你的进展。
  • 想想能否用一个隐喻或者一套隐喻来大致描述你当前的项目(用某种有形的东西来思考将会更有帮助)。尝试使用隐喻或者夸张的手法来说一些笑话。
  • 观察你认识的专家。有什么“奇怪”的习惯现在让你觉得更能理解?
  • 什么单词可以加到你的工作词汇中?”

  • “禅宗心印”
  • 主动改变清晨事项的常规顺序或者其他一贯的做法。
  • “心印是指在佛教禅宗中,以似是而非的形式出的谜语,能帮助思索,同时也是获得直觉性知识的一种手段。——编者注”

  • 直觉是伟大的,除了当它不伟大的时候。
  • 我们不是理智的生物。
  • We are not rational creatures.
  • 尊重不同人的不同性格。
  • 当你想与人争辩时,请想一想这点。

“只是看到一个数字就会影响你随后对数字的预测和决定。举例来说,如果我不断地提到有100本书等待出售,那么我就向你灌输了一个数字。现在我卖给你一本书85美元,你就会停留在刚才的数字100上,而85听起来就好像很便宜。”


  • “极其不可能的巧合事件其实每天都在发生。”
  • “在你出生时,世界上的任何事情都是平凡的,都是世界运转的天然组成部分。当你在十五岁到三十五岁之间时,世界上创造出的任何事物都是新鲜的、令人振奋的、革命性的,你可能以此为职业。三十五岁之后创造出的任何事物都是有悖于事物的自然顺序的。”
  • “为了实现你的愿望——在职业生涯和个人生活中学习和成长,你需要设定一些目标。但是目标本身并不能保证你成功。 目标是很美好的事情,你可能会有许多目标:减肥、找到一个更好的工作、搬进一个更大的房子(或者更小的房子)、写本小说、学习演奏电吉他、编写一个超级Rails应用程序或者完全掌握Erlang。”

制定具体计划 制定计划就是巨大的进步。计划要具体,要运用SMART目标理念,要为不同时间段设计不同层次的目标。例如:

  • 现在(你下一步的行动)
  • 明年的目标
  • 五年后的目标

  • 写下现在、短期和长期的具体目标。
  • 增加两个新的学习领域,让你的知识投资变得多样化。
  • 每周设定时间来实施知识投资。
  • 设置提醒,让自己定期、阶段性地重新评估投资计划。哪些发生了改变,哪些已没有意义,现在你要做什么?”

“首先,一个目标任务应该是具体的。也就是说,只说“我想学习Erlang”是不够的。应该把事情具体化,例如“我想要用Erlang编写一个可以动态生成内容的Web服务器”。”

“知识投资也是一样。你需要定期投资最低限度的时间量。养成一种习惯,如果需要的话。躲到你的家庭办公室里去或者走进有无线网络的咖啡厅。并非每期学习都同样富有成效,但是只要定期安排学习,长期来看一定会成功。如果你一直在等待空闲时间或者等待灵感的突现,那么它永远都不会发生。”

  • 增强注意力
  • 管理你的知识
  • 优化当前情境

  • 寻找一个安静的地方,摆脱干扰或中断。这个可能是最难的一步。
  • 舒适、清醒地坐着,挺直背。让你的身体放松下来,就像一个玩具娃娃。花点时间感受体内的任何紧张情绪,将其释放。
  • 闭上眼睛,将注意力集中在呼吸——空气进入和离开你身体的这一点上。
  • 注意呼吸节奏,吸气的长短和质量,吸气后屏气的短暂间歇,呼气的质量,呼气后屏气的短暂间歇。不要试图去改变它,只是感受。
  • 将思维集中于呼吸。不要说话。不要描述你的呼吸或其他任何想法。不要与自己交谈。这是另一个困难的部分。
  • 你可能会发现自己在思考一些问题或在与自己交谈。每当你注意力游荡开去,就要抛弃这些想法,轻轻将注意力回到呼吸上。
  • 即使你的思维经常游荡,这个[…]”

  • 定期做冥想。开始时,每天选取几个容易想起的时刻进行三次深度放松的“冥想”呼吸练习,例如,在起床时,在午餐、晚餐时,或参加会议之前。
  • 最好在每天的同一时刻,尝试持续20分钟的冥想练习。你能够开始平静内心的想法了吗?”

“不是每天都是富有成效的一天。如果事件变得混乱,接受事实并意识到你不会进入最佳状态,这样可能会更有效。首先处理紧息状况,然后在办公室享受比萨饼,并期望有一个更美好的明天。”


“采取步步为营的细小步骤 开始时目标设低一些。当你实现时奖励自己一下,再设立下一个小步骤。一步一个脚印,脑子里记住你的最终目标,但不要试图把所有步骤都想明白。只关注下一步,一旦你到达这一步,再继续为实现下一个目标而努力。”


  • 开始承担责任,不要害怕问“为什么”,也不要害怕问“你怎么知道的”或者“我怎么知道的”,同样要大方地回答“我目前还不知道”。
  • 挑两件帮助你维持情境、免受干扰的事情,立即实施。
  • 创建一个实用投资计划,设定SMART目标。
  • 弄清楚你在所属专业领域中所处的位置(从新手到专家)和你期望的位置。保证诚实。你需要更多的诀窍还是更多的情境?更多规则还是更多直觉?
  • 实践。某段代码遇到问题了吗?尝试用五种不同的方式编写。
  • 允许犯更多错误——错误是许可的,要从中学习教训。”

  • 携带一个笔记本(最好不带横线)。涂鸦,做思维导图,记笔记。让你的思想自由地流动。
  • 打开心扉接收美感和其他的感官输入。不论是你的房间、桌面还是代码,关注它们是多么地赏心悦目。
  • 开始在私人wiki上记录你感兴趣的事情。
  • 开始写博客。为你读过的书写评论〔2〕。阅读更多书,你会有更多可写的东西。使用SQ3R和思维导图。
  • 让散步成为你每天生活的一部分。
  • 启动一个读书小组。
  • 再拿一个显示器,开始使用虚拟桌面。
  • 回顾每章的“实践单元”,尝试去做。”


每天进步一点点.