您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 【读书笔记】程序员的思维修炼(开发认知潜能的九堂课)
程序员的思维修炼——开发认知潜能的九堂课[美]AndyHunt著崔康译人民邮电出版社PragmaticThinkingandLearningRefactorYourWetware第一章绪论1.Wetware词源wet+software指人脑细胞或思维过程,与计算机系统相对应。也就是说,利用计算机模型类比人类的思维过程。2.始终关注情境,切忌随波逐流第二章从新手到专家的历程1.德雷弗斯模型(Dreyfus)a)新手:需要指令清单对某一领域的理解仍不够好,无法有其自己的想法,甚至是在特定情况下去质疑某一规则是否适用。b)高级新手:不想要全局思维通常能够摆脱各种规则,并能独立尝试任务,但是难以解决问题.比较缺乏全局观念.c)胜任者:能够解决问题能独立解决遇到的问题,并开始尝试解决新的问题,开始主动寻求专家的帮助和建议,并加以运用.d)精通者:能够自我纠正有全局观念,能反思并纠正以往的工作表现,能自我改进,在下一次能做的更好,并能从他人的失败案例中吸取经验教训.f)专家:凭直觉工作总是选择更佳的方式做事,他们有丰富的经验,并根据具体的场景选择和运用这些经验.2.模型只是工具,不要过分依赖。3.新手需要与情境无关的规则,专家使用与情境相关的直觉。思考:当前处在哪一级别,到达下一级别需要做什么?第三章认识你的大脑1.大脑的思维可以分为:线性模式(L型)和富模式(R型)2.随时记录自己的想法,并在恰当的时候付诸行动成功3.积极的情感对思维有非常关键的作用,处于高兴的状态可以扩展你的思维过程,激活更多的大脑物质。第四章利用右脑第五章调试你的大脑第六章主动学习1.教育(Education)来自拉丁文educar,字面意思是“被引出”,即引导出某样东西。而现实中的教育却是“羊浸式培训”。2.瞄准SMART目标具体的(Specific):将事情具体化可度量的(Measurable):度量目标任务,采取增量步进的方法“写一部小说就像在黑夜里开车。你只能看到车灯照亮的部分,但是你却可以走完整个旅程。”——E.L.多克罗多(E.L.Doctorow)可实现的(Achievable):从现在所处的情况着眼,让每一个目标都可实现。相关的(Relevant):目标需要相关,需要在掌控之中时间可控的(Time-boxed):设定一个最后期限实践:列举最重要的三个目标,对每个目标提出一些实现步骤,确保每个步骤都符合SMART特性。3.建立务实的投资计划“时间是无法创造和销毁,时间只能分配。Timecan’tbecreatedordestroyed,onlyallocated.”制定具体计划:设定不同时间段需要完成的计划,这些计划要与自己的目标保持一致。多样化:要有意识的投资不同领域,如语言、环境、技术、行业和非技术领域(管理、公共演讲、人类学、音乐、艺术等)。“所有知识投资都有价值Allknowledgeinvestmentshavevalue.”主动投资:用发展的眼光重新修改目标或者实施步骤。定期投资(成本平均法):将知识投资作为一种习惯,并长期坚持。实践:a)写下现在、短期和长期的具体目标b)增加两个新的学习领域,让你的知识投资变得多样化。c)每周设定时间来实施投资。d)设定提醒,让自己定期、阶段性地重新评估投资计划。哪些发生了改变,哪些已经没有意义,现在你要做什么?4.很多教育家把学习者分为三类:视觉型、听觉型和动觉型。找到自己的最佳学习方式,同时扩展其它学习方式。5.增强的学习方法a)使用SQ3R法主动阅读调查(Survey):扫描目录和每章总结,得出总体看法。问题(Question):记录所有问题。阅读(Read):阅读全部内容复述(Recite):总结,做笔记,用自己的话来描述。回顾(Review):重读,扩展笔记,与同事讨论。b)使用思维导图步骤:①准备一张很大的无格白纸②在纸中间写上标题,用圆圈框起来。③对每个主要的子标题,从圆圈引出线,添加标题。④重复执行其它层次的节点⑤对于其它单独事实或想法,从合适的标题引出线,写上标题。工具:NovaMind)以教代学学习某项事物的最简单和有效的方法是尝试教别人。可以买一只橡皮鸭,尝试对它说出你的理解。第七章积累经验1.尽可能的将你整个人都参与到学习过程中,即语言、视觉、音乐、数字、肢体活动、手指活动等等。这一切都帮助你真正感受到那些资料并更有效地学习它。2.把问题分解为大脑可以容纳的几部分(Trymind-sizebites)从相似点中学习,从差异中忘却。3.情景反馈是一种主要的内在诀窍技术,让你消除干扰,学习更有效率。4.通过想象扩大自己感官第八章控制注意力1.增强注意力通过冥想提高注意力的步骤:1)寻找一个安静的地方,摆脱干扰或中断。2)舒适、清醒地坐着,挺直背。让你的身体放松下来,就像一个玩具娃娃。花点时间感受体内的任何紧张情绪,将其释放。3)闭上眼睛,将注意力集中在呼吸上——空气进入和离开你身体的这一点上。4)注意呼吸节奏,吸气的长短和质量,吸气后屏气的短暂间歇,呼气的质量,呼气后屏气的短暂间歇。不要试图改变它,只是感受。5)将思维集中于呼吸。不要说话。不要描述你的呼吸或其它任何想法。不要与自己交谈。这是一个困难的部分。6)你可能发现自己在思考一些问题或与自己交谈。每当你注意力游荡开去,就要抛弃这些想法,轻轻将注意力回到呼吸上。7)即使你的思维经常游荡,这个练习能使你发现自己的注意力在游荡,并且每次都能自己回来,这对你是很有帮助的。提示:不要睡觉,你需要放松自己的身体和平静自己的思维,但是要保持清醒,事实上,你要非常清醒地专注在呼吸上。对于一个困难的问题,先不要管他,将其放到脑子里“浸泡”。2.管理你的知识大脑之外的思维支持工具会成为你思维头脑的一部分(Externalsupportispartofyourmind)通过wiki整理自己的知识。优化当前情境情境的交换会将会需要更多的时间恢复到原来状态。在Mac上可以使用Think!①屏蔽焦点以外的所有程序,或是是DeskTopple②,它可以隐藏你的桌面图标,替换你的墙纸,并定时自动隐藏应用程序的窗口。②=7013②处理问题要点:1)仅扫描输入队列一次2)顺序地处理每组工作3)不要在头脑中保留清单积极地管理干扰:制定项目交流规则、放缓电子邮件、延长情境持续时间(提高进出情境的成本)、启用可屏蔽中断、保持情境堆栈(写下一些关键词语)。第九章超越专家1.管理有效的改变的建议1)制定计划制定一段时间的计划,使用外部信息系统记录进展,感觉做的不够时重新审视自己的结果。2)“不作为”是敌人,而“错误”不是危险不在于做了错事,而在于根本没去做事情。3)给新习惯适应的时间4)信念是真实的相信自己可以改变。5)采取步步为营的细小步骤开始时目标设低一些。当你实现时奖励自己一下,再设立下一个步骤。一步一个脚印,脑子里记住你的最终目标,但不要试图把所有步骤都想明白。只关注下一步,一旦你到达这一步,再继续为实现下一个目标而努力。【需要精简】2.下一步的建议1)开始承担责任,不要害怕问“为什么”,也不要害怕问“你怎么知道的”或者“我怎么知道的”,同样要大方的回答“我目前还不知道”。2)挑两件帮助你维持情境,免受干扰的事情,立即实施。3)创建一个实用投资计划,设定SMART目标4)弄清楚你在所属领域中所处在的位置(从新手到专家)和你期望的位置。保证诚实。你需要更多的诀窍还是更多的情境?更多规则还是直觉?5)实践,某段代码遇到问题了吗?尝试用五种不同的方式编写。6)允许犯更多的错误——错误是被许可的,要从中学习教训。7)携带一个笔记本(最好不带横线)。涂鸦,做思维导图,记笔记。让你的思维自由地流动。8)打开心扉接收美感和其他的感官输入。不论是你的房间、桌面还是代码,关注他们是多么赏心悦目。9)开始在私人wiki上记录你感兴趣的事情。10)开始写博客。为你读过的书写评论。阅读更多书,你会有更多可写的东西。使用SQ3R和思维导图。11)让散步成为你每天生活的一部分12)启动一个读书小组。13)再拿一个显示器,开始使用虚拟桌面。14)回顾每章的“实践单元”,尝试去做。一、直觉是专家的基本特征,但直觉难以驾驭1、一个开发人员声称有十年的开发经验,可能实际上是一年的经验重复了九次,那么这个就不能算经验。2、有别于菜鸟和大牛这种简单的区分,我们按以下划分:初学者:对某一领域的理解仍不够好,无法有其自己的想法,甚至是在特定情况下去质疑某一规则是否适用。高级新手:通常能够摆脱各种规则,并能独立尝试任务,但是难以解决问题.比较缺乏全局观念.胜任者:能独立解决遇到的问题,并开始尝试解决新的问题,开始主动寻求专家的帮助和建议,并加以运用.精通者:有全局观念,能反思并纠正以往的工作表现,能自我改进,在下一次能做的更好,并能从他人的失败案例中吸取经验教训.专家:总是选择更佳的方式做事,他们有丰富的经验,并根据具体的场景选择和运用这些经验.3、自信往往来自于无知而不是知识。4、现实的情况告诉我们,大多数开发人员都停留在高级新手阶段,只能完成现阶段的任务,并根据新需求学习新的任务,而缺乏全局观点。5、相信直觉,但要验证。二、认识你的大脑。1、随时记录你的想法,如果不记录你的想法,你就不会意识到你拥有它们。2、积极的情感对思维有非常关键的作用,处于高兴的状态可以扩展你的思维过程,激活更多的大脑物质。3、短暂接触一下苹果公司的商品会使人更具有创造力。4、已知的问题如果不加改善,就会像病毒一样扩展,并造成更大的破坏(破窗理论)。三、主动学习1、学习的过程,重要的不是记忆和学会,而是先适应它,理解其思想,掌握其主旨.。2、理性是主动的,通常发生在你集中精力的时候,感性是被动的,你不能命令它,只能邀请它。3、拥有创造力和解决问题的能力的关键在于寻找思考问题的不同方式。4、技术本身并不重要,持续学习才是最重要的。5、SMART代表具体的、可度量的、可实现的、相关的和时间可控的。对于任何目标,你都需要制定一个计划,定出一系列帮你实现目标的任务。每一个任务应该具有SMART特性。目标的具体性:我想学习Erlang是不够的,应该把事情具体化,比如我想用Erlang编写一个可以动态生成内容的web服务器。可度量性:为了努力实现目标任务,不管采用什么方法,你必须能够度量它。可控性:稳扎稳打,采取循序渐进,比较细小的里程碑。当实现后,你会更有动力去实现下一个里程碑。6、不仅有每周任务来实现目标,而且还会指定一些很小的任务甚至5分钟的任务,以确保能达到目标,任务的长度通常是一天,当遇到麻烦时,可以创建5分钟或10分钟的任务来开始。7、设定目标只是第一步,下一步行动是创建小任务帮助你每天或每隔一段时间都能达到某种程度,小任务越多,越能看清你与目标的距离。8、制定计划是一种非常有效的步骤,而大多数人通常会等到有空闲的时候去学习一门新语言或者新技能,而你会快会发现,你根本没有空闲时间,时间就像硬盘空间,很快就会填满。时间无法创造和销毁,只能分配!主动的安排你的学习,合理的安排你的时间,这样会使你更有效率。9、要为不同的时间段设置不同的目标,比如现在的目标、5年后的目标、10年后的目标。10、计划是会变的,但是必须与目标保持一致。11、任何刚刚诞生的技术可能是高风险同时也高回报的。12、知识投资和金融投资有一个区别是:所有的知识投资都是有价值的。有些技术可能不会在工作中用到,或者直接在当前工作中产生价值,但是会影响你思考和解决问题的方式。13、并非每天的学习都有效,但是只要定期安排学习,长期看来一定会成功。最重要的是要养成一种学习的习惯。14、相对于其他学习方式,阅读是效率最低的学习方法。(这句话有点不理解?)15、SQ3R阅读法:调查(Surve
本文标题:【读书笔记】程序员的思维修炼(开发认知潜能的九堂课)
链接地址:https://www.777doc.com/doc-7885816 .html