苦果:像专家一样思考,像外行一样实践

来自卡内基·梅隆大学金出武雄教授写的这本像外行一样思考,像专家一样实践——科研成功之道 ,是我非常喜欢的一本书。

金出武雄在书中引用大量事例,说明无论是个人还是团队,思考的时候要像外行人一样无所顾忌地思考,而实践的时候要像专家一样缜密地实践

那么,反过来会如何呢?这本200页的书,仅用了一小节(6页)举了反例。

而在构建之法 这本书里,则以软件工程领域的诸多案例,来说明“像专家一样思考,像外行一样实践”导致的苦果。

苦果之一  像专家一样思考

何谓“像专家一样思考”呢——

外行因为没有相关的知识和经验,所以不会束缚于固有的观念,可以大胆想象。他们一切构想的根源都是“我想要这样”,而并不是“能不能实现呢”。而被称为专家的人早就形成了一种“像这种场合,应该这么做”的固定思维模式。就算没形成,也很容易被困在通常的做法中,很难产生飞跃式的想法。因此,某些已经存在的、成功了的方法、经验和知识是导致想象力匮乏、缺少创意的主要因素。

 

软件工程师的专家思考特点1:往往以熟练掌握认知阻力大的工具而自豪(例如命令行操作、VI、Emacs等编辑器),这对于工程师的工作是有帮助的;但是大多数用户的心理是要躲避认知阻力:

Don't make me think.

软件工程师的专家思考特点2:很多程序员都没有意识到,用户对那些选项对话框中的种种选择会有很大的畏难情绪,

而程序员则觉得自己开发的功能必须有几个高级选项,才显得有水平

软件工程师的专家思考特点3:在设计软件的过程中,我们(设计/开发者)往往会以自己使用产品的习惯和对软件行业的熟悉程度出发设计,

忘记了我们的软件是给千千万万个不那么会用电脑的人使用的

例1

例2

苦果之二  像外行一样实践

最初的构思往往来自于各种希望和想象,但是,将构思转换成现实还是需要丰富的知识和熟练的技术。构思再好,蹩脚的作品也不能很好地运行,因为毕竟术业有专攻。

北航的同学们采用《构建之法》所提倡的”做中学“模式上软件工程课,课程上到一半,做了项目,写了不少代码,开始读《构建之法》,对此开始有了切身体会:

读书报告]构建之法(一)

【第三章讲软件工程师的成长,我想每一个学生都会很关心这个话题,我当然也不例外。这一章依然印证了职业化的突出特点是规范化。要成为一个优秀的软件工程师,很多东西不能够再用大概、差不多这种词去描述,而应该用真实记录下来的数据说话。而真实的项目是能力提升的必由之路。】

说到用真实记录下来的数据说话,我印象更是深刻。11月底,我在北航听了一堂软件工程公开课,邹老师也在下面听课,同学在上面个介绍自己的产品将如何如何受欢迎,能够解决哪些”痛点“,邹老师则不断提问:你有什么样的数据证明你的产品受欢迎?有个小组的同学一时经不起这样的质疑,当场还脸红脖子粗抗辩。

(如图,北航同学在课上介绍自己的项目和产品,邹欣老师在台下抛出一个个问题)

 

《构建之法》里讲了不少“拍脑袋、拍胸脯”和“说一套做一套”的故事,这些,都是像外行一样实践的典型。

 

像外行一样实践之特点1:拍脑袋,走形式

 

例1

例2

例3

例4

像外行一样实践之特点2:拍胸脯,想当然

例1

例2

例3

像外行一样实践之特点3:说一套,做一套。

 

讲了这么些“不能这么干”的故事,那究竟怎么做,软件工程师们才称得上是“像外行一样思考,像专家一样实践”呢,构建之法 当然给出了自己的回答。因此,得到了同行们的真诚推荐:为什么他们都推荐《构建之法》

如果你正有类似的迷茫作为一个帝都码农,现在的处境很迷茫,不知道未来在哪里,我该怎么办?

推荐阅读:

《构建之法》3.1 个人能力的衡量与发展(1)

《构建之法》3.1 个人能力的衡量与发展(2)

《构建之法》3.2 软件工程师的职业发展

《构建之法》3.3 技能的反面

如果你正在或考虑创业,推荐阅读:《构建之法》试读:17.1 猪、鸡和鹦鹉的故事

如果你有这样的烦恼部门不做 Code Review,有什么弥补的措施?

推荐阅读:

《构建之法》 4.4 代码复审(1)

《构建之法》4.4 代码复审(2)

不过,坚持“把所有的错误记在一个“我常犯的错误”表中,作为以后自我复审的第一步。” 真不易呢,看看豆瓣读者的感叹:



祝 新年快乐

posted @ 2014-12-31 14:22  yeka  阅读(310)  评论(0编辑  收藏  举报