程序员的思维修炼

一本值得再次阅读的书,一本需要反复实践的书。

2016年9月19日

程序设计其实就是解决问题,它需要发明、创造和灵感。不论你从事什么职业,可能都需要创造性地去解决问题。

这挖暖是我们自己的错误造成的。我们自身往往增加了程序设计的难度。随着软件行业的不断发展,我们似乎失去了做为一名软件开发人员所必须的最基础、最重要的技能。

软件并不是在集成开发环境(IDE)或其他工具上设计出来的,它是在我们的大脑中想象和创造出来的。

现在我们需要研究的正在难题是团队内部和团队间的交流,甚至更困难的问题是完全陈旧的思想。没有任何项目是孤岛,软件不可能独立地创造或者运行。

学习能力、批判性的思考能力和创造力——所有这些扩展思维的能力,都取决于你自己。

随着不断成长和适应,人们需要改变自己的习惯和方法。生命中没有什么是恒久不变的,只有死鱼才随波逐流,尝试改变自己。

特别关注成为一名专家的关键要素:应用你自己的实践经验、理解情境和利用直觉。

制造问题的思维方式无法用来解决问题。——爱因斯坦

专家通常很难把他们的行为恰如其分地解释清楚,他们的很多行为是如此地熟练以至于已经变成无意识的了。他们的大量经验都是通过大脑的非语言、无意识区域存储的,这让我们难以观察,而专家则难以表述。

从新手到专家要经历巨大的变化。在这个过程中,人们不只是“知道更多”或者获得了技术,而且还在如何认识世界,如何解决问题以及如何形成使用的思维模型等方面体验到根本性的区别。

德雷福斯模型:新手 -> 高级新手 -> 胜任者 -> 精通者 -> 专家

新手非常在乎他们是否成功。没有太多经验指导他们,他们不知道自己的行为是对是错。新手不是特别想要学习,他们只是想实现一个立竿见影的目标。他们不知道如何应付错误,所以出错的时候,他们非常容易慌乱。

高级新手能够开始多多少少地摆脱固定的规则。他们可以独自尝试任务,但仍难以解决问题。

高级新手能够根据过去的经验,逐步在正确的情境中采纳建议,但比较吃力。同时,他们呢能够开始形成一些总体规则,但不是“全貌”。他们没有完全的理解,而却的却不想有。如果你试图把一个更大的情境强加给高级新手,他们呢可能会认为该情境与那些原则不相关而忽略掉。

第三阶段从业者现在能够建立问题域的概念模型,并有效地使用它们。他们可以独立解决自己遇到的往年提,并开始考虑如何解决新的问题——那些他们之前没有遇到的问题。他们开始寻求和运用专家的意见,并有效利用。

胜任者——他们是团队里的好人,既可以指导新手,也不会经常骚扰专家。

处于精通水平的从业人员有一向重大突破:他们能够纠正以往不好的工作表现。他们会反思以前是如何做的,并修改其做法,期望下一次表现得更好。到这个阶段,自我改进才会出现。

伴随着向他人学习的能力而来的,是理解和运用格言经验之谈的能力。

精通者可以充分利用思考和反馈,这些都是敏捷方法的核心。

敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。但是基于以往表现进行自我纠正,只在较高的技能水平上才能实现。

专家凭直觉工作。

专家知道哪些是无关紧要的细节,哪些是非创重要的细节。也许不是有意识的,但是专家知道应该关注哪些细节,可以放心地忽略哪些细节。专家非常擅长做有针对性的特征匹配。

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

本文由个人 hexo 博客 co2fe.com 迁移
date: 2016-09-19 19:14:16

posted @ 2018-12-28 15:23  LiuChengloong  阅读(520)  评论(0编辑  收藏  举报