《程序员的思维修炼》读书笔记

[align=center][img]http://img3.douban.com/lpic/s4548399.jpg[/img][/align]

这本书讲的内容比较多, 从能力模型开讲, 然后是理性思维和感性思维的关系. 算是交叉学科(软件开发与大脑思维)的总结.

然后论证了一些敏捷开发的做法的合理性, 即为什么这么做, 因为这么做是可以更合理的利用人类大脑的思维.

其中最重要的部分是如何学习, 更准确的说是有效的学习.

比如怎么看书, 怎么做笔记
怎么动手实践,
怎么用思维导图
怎么避免大脑的一些思维偏见
怎么集中注意力,提高工作效率

内容是好的, 不过翻译一般.比较生硬.

================================我是读书笔记的分割线===========================

直觉是专家的基本特征, 但直觉难以驾驭

专家的行为通常很难用语言解释清楚, 他们的很多行为已经熟练到无意识, 他们大量的经验都是通过大脑的非语言区和无意识区, 这让旁人难以观察, 专家本人难以描述

一个开发人员声称有十年的开发经验, 可能实际上是一年的经验重复了九次, 那么这个就不能算经验.

各种规则只能让你启程, 不能让你走的更远.

初学者:对某一领域的理解仍不够好,无法有其自己的想法,甚至是在特定情况下去质疑某一规则是否适用。

高级新手: 通常能够摆脱各种规则, 并能独立尝试任务, 但是难以解决问题. 比较缺乏全局观念.

胜任者:能独立解决遇到的问题, 并开始尝试解决新的问题, 开始主动寻求专家的帮助和建议, 并加以运用.

精通者:有全局观念, 能反思并纠正以往的工作表现, 能自我改进, 在下一次能做的更好, 并能从他人的失败案例中吸取经验教训.

经验不是简单的任务清单, 必须更具体的场景关联.

敏捷中的反馈: 敏捷开发就是在一个高度协作的环境中, 不断的根据反馈进行自我调整和完善, 因此只有较高技能水平的人才能实现.

专家:总是选择更佳的方式做事, 他们有丰富的经验, 并根据具体的场景选择和运用这些经验.

专家的数量大概是1~5%

专家根据直觉工作, 不需要理由.

专家能区分哪些是无关紧要的细节, 哪些是非常重要的细节, 而且做出这些选择通常是无意识的, 并能根据具体场景下的细节跟自己以往的经验进行匹配.

自信往往来自于无知而不是知识.

直觉是专家的看家本领.

新手遵守规则, 专家相信直觉.

敏捷开发是一个非常高效的工具, 但不适用一个由完全新手和高级新手组成的团队.

根据不同的研究表明, 开发人员之间存在20:1或40:1的差异.

现实的情况告诉我们, 大多数开发人员都停留在高级新手阶段, 只能完成现阶段的任务, 并根据新需求学习新的任务, 而缺乏全局观点.

google已经成为现代IDE的一部分.

自我认知只有在高层次的人群中才具有, 这导致处于较低层次的从业者往往高估自己的能力.

新手能力差但信心足, 专家在异常情况下会更谨慎, 并自我怀疑.

教学是一门技能, 即使你是某个领域的专家但并不能保证你可以把它交给其他人.

积极实践的四个条件
需要一个明确定义的目标
目标需要有适当的难度(有挑战并可行)
目标可以提供大量的反馈, 以便能采取下一步行动.
允许犯错并纠正错误的机会.

一旦成为某个领域的专家, 在别的领域成为专家会变得相对容易.

小屁孩很少照你说的做, 而更多的是模仿你的行为.

没有实践就没有技能.

规则无法告诉你在某种场景下采用最合适的的措施和行为, 充其量也就是自行车的"辅助轮", 可以帮助你启动, 但是却限制了以后的发展.

对规则的过度依赖会导致羊群效应而贬低个人创造力.

对新手可以创建一套规则, 对经验丰富的成员建立一套恶劣的规章制度则会直接导致离开.

规则只是针对典型情况, 而不是特殊情况

如果你需要创造力, 直觉或者独创能力, 那么必须打破规则.

新手需要与场景无关的规则, 高手采用与场景相关的直觉.

认识你的大脑
随时记录你的想法, 如果不记录你的想法, 你就不会意识到你拥有它们

积极的情感对思维有非常关键的作用, 处于高兴的状态可以扩展你的思维过程, 激活更多的大脑物质.

短暂接触一下苹果公司的商品会使人更具有创造力.

当你害怕或生气时(充满消极情绪), 你的大脑也开始提供更多的资源, 并为反抗或者逃跑做准备.

已知的问题如果不加改善, 就会像病毒一样扩展, 并造成更大的破坏(破窗理论)

如果你的想法过早的受到束缚, 那么你的创造力就会被扼杀

研究显示, 多使用感官技术可以让学生的学习效果提高5倍

对于一个开发团队来说, 通过增强感官刺激可以提高项目成功几率, 这里的工具不是UML这样的建模工具, 而是玩具积木或者乐高积木.

学习的过程, 重要的不是记忆和学会, 而是先"适应"它, 理解其思想, 掌握其主旨.

结对编程: 工作时, 一个用理性思维, 一个用感性思维.

隐喻是一种激发创造力的强大工具

幽默是一种思维, 学习, 创造的重要能力, 它与联系有关.

急中生智能够发现无关事物之间联系并突破思维限制, 一种值得在团队实践, 锻炼和提倡的技能.

历史上一些灵感通常来自于一些无聊的事情, 比如洗澡, 除草以及刷盘子等活动, 一种合理的解释是, 理性思维有些厌倦了这些常规的活动, 走神了, 这是感性思维开始发挥它的作用了.

理性是主动的, 通常发生在你集中精力的时候, 感性是被动的, 你不能命令它, 只能邀请它.

源代码阅读的次数多于编写的次数. 因此值得花一些时间让其变得适合阅读.

对于代码规范, 新手会很容易遵守, 高级初学者多半会拒绝, 抱怨这是一种浪费, 专家和精通者则因为很难发现其中惯用的模式, 而认为其十分糟糕.

当习惯了阅读几行代码的方法, 对于多行代码的方法, 你会不习惯, 认为是错的.

对代码采用一致的格式, 这不是浪费时间的愚蠢修饰, 而是一种重要的交流工具.

拥有创造力和解决问题的能力的关键在于寻找思考问题的不同方式.

黑天鹅理论告诉我们, 很少并不意味着没有

推迟下结论, 推迟选择, 以便有更好的抉择, 提高成功的机会

如果还没有准备好, 就不要急着确定细节, 要适应你不知道的事实

世界上大多数数据都存储在只有90天保质期的硬盘里.

相信直觉, 但要验证.

反馈是敏捷软件开发的关键所在, 因为软件开发主要靠人, 而人是有缺陷的. 虽然我们的初衷是好的, 但是我们需要自己检查自己和别人.

随着你在某个领域越来越专业, 获得自我反馈能力越强, 这件事儿做起来才会越来越轻松.

主动学习

技术本身并不重要, 持续学习才是最重要的.

最可悲的是把教育当成一种被学习者被动接受的事情--灌输, 而不是引导.

正确的学习培训观点:
学习不是强加于你的, 而是需要你主动做的事情
仅仅掌握知识而不去实践, 没有用
随机的方法, 而没有目标和反馈, 往往会导致随机的结果.

大脑不是用来灌输的容器, 而是一个随时需要点燃了的火焰.

SMART代表具体的, 可度量的, 可实现的, 相关的和时间可控的. 对于任何目标, 你都需要制定一个计划, 定出一系列帮你实现目标的任务. 每一个任务应该具有SMART特性.

目标的具体性: "我想学习Erlang"是不够的, 应该把事情具体化, 比如"我想用Erlang编写一个可以动态生成内容的web服务器"

可度量性:为了努力实现目标任务, 不管采用什么方法, 你必须能够度量它.

可控性:稳扎稳打, 采取循序渐进, 比较细小的里程碑. 当实现后, 你会更有动力去实现下一个里程碑.

没有任何一个目标是孤岛, 目标必须在更大的背景下才有意义:家庭, 事业, 社区, 环境.

不仅有每周任务来实现目标, 而且还会指定一些很小的任务甚至5分钟的任务, 以确保能达到目标, 任务的长度通常是一天, 当遇到麻烦时, 可以创建5分钟或10分钟的任务来开始.

设定目标只是第一步, 下一步行动是创建小任务帮助你每天或每隔一段时间都能达到某种程度, 小任务越多, 越能看清你与目标的距离.

制定计划是一种非常有效的步骤, 而大多数人通常会: 等到有空闲的时候去学习一门新语言或者新技能, 而你会快会发现, 你根本没有空闲时间, 时间就像硬盘空间, 很快就会填满. 时间无法创造和销毁, 只能分配, 主动的安排你的学习, 合理的安排你的时间, 这样会使你更有效率.

要为不同的时间段设置不同的目标, 比如现在的目标, 5年后的目标, 10年后的目标.

做计划比计划本身重要得多.

计划是会变的, 但是必须与目标保持一致.

任何刚刚诞生的技术可能是高风险同时也高回报的.

知识投资和金融投资有一个区别是, 所有的知识投资都是有价值的. 有些技术可能不会在工作中用到, 或者直接在当前工作中产生价值, 但是会影响你思考和解决问题的方式

并非每天的学习都有效, 但是只要定期安排学习, 长期看来一定会成功. 最重要的是要养成一种学习的习惯.

人最初的智力和性格只代表人的一种可能性. 一些性格和智力测试的结果只是代表你的默认设置, 你可以自己通过选择来做不同的设置, 当你没有注意到这些的时候, 使用的就是默认设置. 因此必须发现你的最佳学习方式, 改进你的默认设置.

成年人的学习:
能满足自身的学习兴趣和需求才会主动学习
学习内容与现实生活相关
主要采用经验分析法
老师需要引导, 自己需要与他人交流.
不同的个体之间会有学习的差异.

最有效的学习方式是观察和模仿他人.

相对于其他学习方式, 阅读是效率最低的学习方法.

SQ3R阅读法:
调查(Survey)扫描整本书的目录和结构以及总体看法, 提纲挈领.
问题(Question)记录所有问题
阅读(Read)阅读全书
复述(Recite)总结做笔记, 用自己的话描述
回顾(Review)重读, 与他人讨论, 分享.

比如看一本Ruby的书, 先翻一下目录, 看看主要内容, 可以知道里面有一些语法的解释, 然后列举了几个项目, 以及一些目前还不感兴趣的高级特性; 接下来是提问, 它是多继承还是单继承?迭代器在ruby是如何用的?如何创建和管理包以及模块?性能如何? 接下来就是看书, 有时间多看些, 没时间少看些; 最后是复述和改写里面的例子.

短时间学习大量信息不是很有效率.

可以通过间隔你的测试时间来增强你的记忆, 比如2-2-2-6模式, 在两个小时, 两天, 两周和6个月之后重新测试.

思维导图

线性大纲是一种层次结构, 往往阻碍了人的创造力, 因为有些想法并不适合采用这种层次结构.

思维导图通过不同的颜色和符号, 来增加表达的丰富性, 并且通过非线性的空间结构向你传达信息, 更强调事物之间的线索和关系.

建议手工绘制思维导图, 可以更好的实现头脑风暴, 学习和探索性思维.

听讲座记笔记可以帮助我们记忆讲座的内容, 即使这些笔记再也没有看过.这里更强调的是记笔记的过程

思维导图也是一样, 开始画一个草图, 然后重画, 在重画的过程中形成更多的关联.

当你不确定你会发现什么时, 思维导图是最有效的.

如果你在解决一个问题, 却不知道该如何做, 思维导图可以帮助你.

思维导图不需要完整的长篇大论, 以关键词为标题即可, 重要的线索采用粗体, 次要的关联采用细线, 将所有已知的内容展现出来即可.

思维导图的最重要的作用就是帮我们理清思路, 尤其当你陷入馄饨状态的时候, 用思维导图来帮我们指引方向.

如果文档不能提供价值就不要提供.

写文档的过程比文档本身更重要.

学习某项事物最简单有效的方法就是尝试教别人.

通过向他人解释某个复杂的东西的过程也是练习从听众的角度观察问题, 并创建隐喻的好机会.

积累经验
波利亚解题方法
解决问题先提问:
未知量是什么
已知量是什么
条件是什么

从相似点中学习, 从差异中忘却.

"我不知道"是一个良好的开端

种菜时, 如果长得不好, 你不会责怪菜, 而是寻找其他理由.

正确的反馈利于学习.

不要急于将精力放在纠正一个个细节上, 只需要先建立意识即可.

最后期限会使大脑恐慌.

当面对时间压力时, 人最没有创造力.

在经历过一段混乱, 惊慌失措的危机时刻之后, 需要一段整顿时间, 即释放压力.

当大脑受到压力, 他会主动停止一些思考, 眼界会变窄, 不再考虑可能的选择. 真糟糕的时候会决绝感性思维, 理性思维会主导一切.

如果失败是有代价的, 就不会允许实验, 没有风险, 也就没有收获.

大脑对于不同的输入源分辨率非常低.

妻子换了新发型而丈夫却根本没有注意到, 这主要是因为丈夫看到的内容更多还是基于过去的信息, 而不是目前的事实. 这也是大脑的工作方式.

想象自己成功被证明是一种达到成功的有效方法.

控制注意力

注意力是一种稀缺资源. 当自制力很差的时候, 一些无关紧要的事情会分散我们的注意力.

我们并不是没有时间, 只是我们的注意力不够用而已.

冥想训练可以提高人的注意力.

冥想训练:
找一个安静的地方
舒适的坐立, 背挺直
闭上眼睛, 将注意力集中在呼吸

如果你不能给出一件事情出错的三种方式, 或者提供一个问题的三种解决方式, 那么你的思考还不充分.

不要在头脑中填满能轻易找到答案的信息和知识.

wiki是一种基于文本的思维导图

多任务处理会耗费20~40%的生产力.

试图将注意力分配到几件事情上, 意味着你在每件事情上都不会做到最好.

不停的中断手头上的事物而去处理邮件或回复即时消息, 你的智商会下降10分.

无论你做什么, 都不要同时做.

当你有一个想法时, 最好把它放在合适的地方, 无论是待办事项还是电子邮件, 然后回到你正在做的事情上.

不要在头脑中保留清单, 尽量用外部系统来帮你维护更新.

坚持持续做正在处理的事情直到完成, 避免上下文切换.

每个人在一天中应该有一段时间是效率最高的, 必须尽量避免在这段时间内被干扰.

少发邮件, 你就会少收邮件.

减少上下文切换的一个不错的做法就是提高上下文切换的成本(防止犯罪, 就是提高犯罪的成本)

为了减少你随时打开笔记本上网的诱惑, 直接将笔记本关闭而不是休眠. 从而提交开机的时间成本.

如果打扰不可避免, 那么最好留下一些线索, 这样有利于更好的返回到当前的状态, 继续处理.

比如在写邮件的时候, 有人来打扰, 最好几下几个关键字, 保留接下来的想法, 以便结束打扰之后能马上回到写邮件的状态.

多使用一台显示器, 可以提高20~30%的生产力. 因为多一台显示器可以减少上下文切换.

alt+tab是生产力杀手.

随时集中注意力, 随时意识到自己要集中注意力做什么.

超越专家

将一种新的行为变成习惯至少需要三周, 请给这个新的行为足够的机会

你的想法会改变你大脑的机能和化学成分, 如果你认为自己会失败, 你的预感就是实现.

开始目标设低一些, 当完成时, 奖励一下自己, 但是脑中只要记住最终目标, 然后一步一步去实现, 不需要一次全部想清楚.

人总是喜欢安于现状, 当尝试改变时, 总会有一种惯性阻碍这种改变, 因此我们需要克服这种惯性的阻力.

尽量保持桌面和代码的美感, 通过让大脑接受美的事物, 来提高感性思维能力.

让散步成为你每天生活的一部分.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值