《程序员的思维修养》读书总结

来源:互联网 发布:如何开淘宝网店 编辑:程序博客网 时间:2024/05/16 06:37

《程序员的思维修养》读书总结

弗雷德斯模型

无意中在朋友的口中了解到了本书,于是满怀好奇的读了几页。一开始以为这本书讲的无非是作为一个程序员应该怎么怎么样去学习编程,或者以怎样的心态来做好一个程序员。读了之后,显然我错了。这本书并不是我最开始认为的『鸡汤』文书籍,而是真正可以学到很多知识,能够有所成长的书籍,如果按照书上的去做,重要的是并不只适合程序员阅读,对于普通大众也很很适用。


书中在开头提出了德雷福斯模型,即:新手,高级新手,胜任者,精通者和专家的不同阶段,新手和专家有种根本的区别,他们认识世界的方式以及处理问题的方法截然不同。

  • 新手:他们非常在乎是否成功,没有多少经验,不太想学习,对于功能实现能实现就好了,不知道如何应对错误,出错时容易慌乱。(规则只能让你启程,不会让你走得更远)。
  • 高级新手:开始摆脱固定的规则,独自尝试任务,但是仍然难以解决;想要快速获取信息,根据自己的经验解决问题;开始形成一些总体原则,但不是“全貌”。
  • 胜任者:能够建立和有效地使用问题域的概念模型,可以独立解决问题,并解决新的问题,开始寻求和运用专家的意见。
  • 精通者:有全局思维,围绕某一技术寻找更大的概念框架,能纠正以往不好的工作表现,能自我改进,学习他人的经验(倾听有关失败项目的流言蜚语,观察别人怎么做),有足够的经验,知道下一步会发生什么,能运用软件模式,是初级专家。
  • 专家:有丰富的经验,不断寻找更好的方法和方式去做事,著书、写文章、做演讲,“巫师”一名,根据直觉工作。

元认知能力在弗雷德斯模型中扮演中重要角色

根据德雷福斯(Dreyfus)模型,每一个专家都是从新手成长起来,然而这个世界上大多数的人都是只是停留在高级新手的阶段。作者提到另外一个概念:元认知能力,也称之为自我认知能力。往往新手的元认知能力是比较弱的,他们总是过高的估计自己的能力,从而难以进一步的提高自己的技能阶段。只有技能阶段达到一定的程度之后,元认知能力才会有所提高,同时元认知能力又会促进技能的提高。显然元认知能力在弗雷德斯模型中起着正反馈关系。所以元认知能力在弗雷德思模型中扮演着极其重要的角色。

作者将人的大脑思考方式比作双CPU工作模式,分为L(线性)型和R(异步)型处理方式。

  • R型对于直觉,问题解决和创造性非常重要。
  • L型让你细致工作并实现目标。

两种模式都非常重要,如果要想大脑获得最佳性能,需要L型和R型协同工作。整书后面的内容围绕着L型和R型处理问题的方式来分析我们应该如何结合L型和R型方式从而提高自己思考和处理问题的能力。

SQ3R法主动阅读

书中还提到一种比较实用的读书方法,SQ3R主动阅读法。所谓SQ3R即:

  • 调查(Survery),扫描目录和每章总结,得出总体看法
  • 问题(Question):记录所有问题。
  • 阅读(Read):阅读全部内容。
  • 复述(Recite):总结,做笔记,用自己的话来描述。
  • 复述(Recite):总结,做笔记,用自己的话来描述。

如果按照SQ3R方法读书将不再是随机的捡起一本书便开始读,在读之前或者读的过程中你将会不自觉的去思考,去回顾。如此一来,不管你记住或者没有记住多少内容,你总会更自觉更有意识的去读书。我目前也正在练习这种读书方法。

精彩书摘

最后,摘录了书中一些比较好的内容,特意分享,以此共勉:

  • 不要忘了学习的初衷

    假设有人原本去找他邻居要火,结果发现邻居那儿很暖和,于是他就继续呆在那边取暖。这就好比是,某人去向别人学习知识,却没有意识到他应该点燃自己的火焰、他自己的智慧,而只是很高兴地着迷于他人的演讲,老师的话只是触发了联想思维,就好比只是让他的两颊泛起红晕,只是让他四肢感到温暖,但是,虽然笼罩在智慧的温暖光茫下,他内心的阴冷昏暗却没有被驱散。”


  • 先实践,再学理论貌似貌似效率更高(亲身体会)

    曾经有段时间,我的妻子觉得攀岩比较有趣。很多参与者都觉得没把握——我们以前从没尝试过这个,但是大家都决心一试身手。 在现场,教练走过来,确保所有人都系好了安全带。我们都全副武装地接受检查,检查完毕之后,他走到人群的前面,我们屏住呼吸,准备聆听教诲。 但是,根本就没有什么教诲。他只是告诉我们现在开始攀爬(大体如此)。30分钟后我们再回来集合。人群中有人在嘀咕——我们为学习攀岩付了昂贵的学费,教练只是不管不顾,把我们扔给了狼群①(对于我们则是扔给了岩石)。教练扬长而去,去喝咖啡了。 ①扔给狼群(throw to wolves)英语中表示见死不救的意思。 因此,我们在岩石上胡乱爬了一会,事实上都不知道自己在干什么。半小时之后,教练出现了,开始讲课,告诉我们如何攀岩。现在,因为我们已经有了一些经验(虽然短暂),所以他的讲解更加有意义。我们可以明白他的指令所针对的一些情境:当他提到通过某种方式转移身体重心,我们明白其用意。这比他一开始直接讲课要清楚得多。 事实上,回想一下,教练的确做得对:他为我们提供了一个探索攀岩运动的安全环境(请注意,他首先确保所有的安全带都系好)。首先让我们经历了多感官的、亲身实践的情境,帮助我们有了初步了解。然后,他再进行一次传统的、充满针对性的授课。

    1. 生命中没有什么是恒久不变的,只有死鱼才随波逐流。
    2. 但单纯的“实践”并不是成功的保证,你需要从实践中学习其中的价值,而一些常见障碍会让这个过程很艰难。
    3. 可能一个开发人员声称拥有十年的经验,但实际上只是一年的经验重复了九次,那么这就不算是经验。
    4. 规则只能让你启程,不会让你走得更远。
    5. 专家知道哪些是无关紧要的细节,哪些是非常重要的细节。也许不是有意识的,但是专家知道应该关注哪些细节,可以放心地忽略哪些细节。专家非常擅长做有针对性的特征匹配。
    6. 专家并不总是最好的老师。教学是一门技能,你在某个领域是专家,这并不能保证你可以把它教给别人。
    7. 如果你感到惧怕,不想尝试某些东西,那么这些恰恰就是你应该首先尝试的。
    8. 一旦开始写作,一定要注意坚持不懈。不要为技术问题而分心。不必担心有些话是不是还需要润色,先把它们都写下来。
    9. 黑天鹅现象警示我们不要把未观察到的或者罕见的事件认定为不可能。
    10. 像我这样==好,不像我这样==坏。(我自己曾经有这样的行为)
    11. 一切事情非善即恶。你这一方总是好的,另一方固然是坏的。
    12. 深深地呼气,摆脱变味的空气。深深地吸气。数到十。记住你是高级动物。让蜥蜴式的响应过去,请新大脑皮层来处理问题。
    13. 在当今技术和文化环境下,学习能力可能是成功的最重要因素。它决定了你是“大获全胜”还是“勉强通过”。
    14. 技术本身并不重要,持续学习才是最重要的。
    15. 学习不是强加于你的,而是需要你主动做的事情。 仅仅掌握知识,而不去实践,没有用。 随机的方法,没有目标和反馈,往往会导致随机的结果。
    16. 一个你无法达到的目标不是目标,只是一种疯狂、吸食灵魂的自我挫败。
    17. 没有期限,目标会逐步衰退,永远被每天更紧急的事情所排挤。这样它永远都不会实现。
    18. 制定计划是实现任何目标的一种非常有效的步骤。我们大多数人常常陷入一种默认的学习日程表:等到有空时再花时间学习一门新语言或者新函数库。不幸的是,把你的学习活动流放到“空闲时间”去,这就等同于失败。
    19. 接下来,写下你想要弄明白的所有问题。这项技术如何解决这个问题?我是要学习如何使用这项技术吗?或者这项技术实际是指向另一个源头吗?把各章节的标题改写成问题,这些都是你期望这本书回答的问题。
    20. 如果文档没有提供价值,就不要记录。为了文档而写文档是浪费时间。
    21. 学习某项事物的最简单和有效的方法是尝试教别人。
0 0
原创粉丝点击