音乐

  1. Fields Of Gold - Sting
  2. Beautiful Girl - INXS
  3. Take Me To Church - Hozier
  4. Stephanie Says - Lady & Bird
  5. All of Me - John Legend
  6. 一丝不挂 - 陈奕迅
PHPTalk2.0 新版全新上线,欢迎体验

思维三部曲:WHAT、HOW、WHY


我把学习归类为三个步骤:What、How、Why。经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段。下面我把这三个步骤解释一下。

★第一步:WHAT

  所谓的“WHAT”,就是搞清楚某个东东是什么?有什么用?有什么语法?有什么功能特性?......
  举例如下:
  对于学习语言(比如C++、Java、Python),大部分人都能够掌握基本的语法和标准库,然后用它写一些小程序(诸如二分查找、冒泡排序、简单文件操作等)。
  对于学习类库(比如JDBC类库),大部分Java程序员都能明白JDBC主要包含哪些类,也能够用JDBC进行简单的数据库查询和增删改操作。
  由于这个步骤是最基本的,假如你连这都做不到(可能你的理解力不够好),也别在IT界混了。
  但是光会What是不够的。仅仅停留在这个步骤,导致了很多程序员只知其然,不知其所以然。这就是目前大部分开发人员的现状。

★第二步:HOW

  所谓的“HOW”,就是搞清楚某个东西内部是如何运作的?实现机制如何?等一系列相关问题。
  举例如下:
  假如你在学习C++语言,你是否搞明白函数传参数的实现机制?虚函数是如何实现?抛出异常时的栈回退是怎么回事?......
  假如你在学习Java语言,你是否搞清楚GC如何实现?反射是如何实现?......
  假如你在学习JDBC库,你是否清楚JDBC Driver的4种类型?不同游标类型的实现机制?事务的机制?......
  在这个阶段,你必须多想想类似这些问题。然后通过各种途径(参见“关于自学能力”的几个方法),把问题彻底搞清楚
  。自然而然,你的提高就会比较明显。而且如果碰到一些深层次的问题(比如性能优化),也就知道该如何去解决。
  完成这个阶段之后,你基本上就属于该技术领域最优秀的20%的人(根据二八原理,80%的人不会去思考HOW的问题)。

★第三步:WHY

  一般来说,只有你把HOW的问题想清楚,才开始考虑步骤WHY。
  所谓的“WHY”,就是搞清楚某个东西为什么设计成这样?为什么不是另外的样子?这样的设计有什么讲究?
  说实在的,善于问“为什么”有一定的天赋成分?好像某个科学大牛曾经说过“提出问题有时候比解决问题更难”。
  一般来说,只有当你深刻理解了某个东西,才能够针对这个东东的设计问出一些问题。
  所以,我前面强调过,要先把HOW的问题搞清楚,再来考虑WHY的问题。
  举例如下:
  对于C++语言:为什么C++没有类似Java的finally关键字?为什么C++当初没有考虑GC?......
  对于Java语言:为什么Java没有类似C++的类析构函数?为什么Java要同时提供String和StringBuffer两个似乎冗余的类?......
  对于Python语言:为什么Python不提供类似C++/Java的访问控制机制?......
  如果你能够自己问出诸如上述的“为什么”问题,并且能够通过各种途径找到解答,那你基本上已经吃透这个技术了,并且你已经有可能自己去设计一个类似的玩意儿了。
  到这时,你已经踏上了通向技术高手的康庄大道。

用提问来促进思维——再谈 WHAT HOW WHY 三部曲 

俺今天来聊一下,如何用提问的方式促进深度思考。 

★认知的过程

  稍微了解"认知心理学"的网友应该知道:我们对某个事物的认识,总是"由浅到深"。
  虽然同样是由浅到深,但每个人思考的深度却千差万别。不幸的是,大多数人在看待某个东西(事物、问题、现象)的时候,都仅仅停留在浅层次。 
  为啥会这样捏?一个很重要的原因就是:大多数人不善于提问。 
说到这儿,俺又要第 N 次抨击天朝的教育制度了。
在天朝的中小学教育中,根本就没有教会学生,该如何提问、该如何质疑、该如何反思。 

  好,言归正传。如何才能掌握提问的窍门捏?如何才能在提问中加深思考捏?
  俺总结了一个比较简单的提问三部曲:WHAT、HOW、WHY。通过这个三部曲,你可以一步步地从事物的表象深入到事物的本质。 

★WHAT HOW WHY 的步骤

◇WHAT

  当我们开始了解某个事物的时候,总是先从 WHAT 类型的问题开始入手。
  而所谓的"WHAT"也就是"What is it?" 
  在这个层面,你首先要了解的,就是某个事物所涉及的:时间、地点、当事人以及该事件的大致经过。
  要了解这些,其实比较容易——通过跟别人交流,或阅读各类媒体(网络、电视、报刊),就可以对某个事物有一个初步的、肤浅的、表面的认识。 
  在 WHAT HOW WHY 这3个层次中,这个层次是最简单的——因为你只需运用"记忆力"即可解决。
  对大多数人而言,只要智力没啥缺陷,都能达到这个层次。
  达到这个层次虽然很简单,但你千万要记住:从 WHAT 类型的问题得到的答案,通常只反映出事情的表面现象。而表象跟本质,往往是不同的,甚至是相反的。
  如果你仅仅停留在 WHAT 层面,很可能会被表象所误导。 
  在《为啥俺不常用微博——兼谈时间管理心得》一文,俺提到微博传递的信息过于肤浅——意思就是说,(大部分)微博传递的信息仅仅停留在 WHAT 层面。 

◇HOW

  所谓的"HOW"就是"How to do?"。 
  因为本文侧重讲社会学领域的话题。而社会学领域,"人"往往是关键因素。
  所以,你首先要思考的就是:当事人是如何参与某个事件的?(此处所说的"当事人",可以是某个具体的人,也可以是某个群体) 
  当然啦,很多事物的发展,除了有"当事人"的因素,还有其它一些因素(比如:文化因素、法律因素、经济因素、科技因素等等)。
  所以,你还要问:除了当事人,其它因素是如何起作用的? 
  最后,你还要继续问:在各种因素的作用下,事件是如何一步步发展的?该事件内部是如何运作的?...... 
和 WHAT 层次不同的是,HOW 层次光靠记忆力是远远不够滴。你还需要具备一定的分析推理能力,还需要懂得查阅相关资料,才能搞明白上述 HOW 类型的问题。 

◇WHY

  当你能够比较透彻地厘清 HOW 层面的各类问题,就可以开始思考 WHY 类型的问题了。 
  所谓的 WHY 类型问题,俺举几个简单的例子: 
某个当事人为什么会这么干而不是那么干 
为什么是这个因素起作用而不是那个因素起作用 
事件为什么会朝着这个方向发展而不是朝着另外的方向发展 
...... 
  WHY 类型的问题有个特点:这类问题很发散且数量很多。因此,对于某个具体的事物,总可以提出几十个(甚至上百个) WHY 类型的问题。
  在这么多个问题中,只有少数几个是切中要害的。
  所谓"切中要害"的问题,就是那些会把你引向该事物本质的问题。 
  肯定有人要问,如何才能直接提出切中要害的问题?老实说,这没有捷径。
  只有经常思考的人,才能逐渐掌握这种"直接命中要害"的思维能力。 
一旦提出 WHY 问题,接下来自然就是寻找答案。 
  显然,WHY 类型的问题比 HOW 类型的问题更难回答——在回答 
  WHY 类型问题的过程中,你不但需要动用分析、推理、归纳、总结等各种思维能力,可能还要运用到跨领域、跨学科的知识。
  但是收获也是很大的。一旦把这些 WHY 类型的问题想明白,你就对整个事件有一个既宏观又深刻的认识。 
  能达到这个境界,看问题通常会比较深刻。可惜这样的人比例太低了 :( 

◇WHY 之后可以做啥?

  可能有人会问:达到 WHY 境界之后,又该如何?所以俺补充了这一小节。 
  当你经历了 WHY 层次之后,你可以回过头,再用 WHAT 方式重新审视这个事物。
  这时候看到的信息同你一开始用 WHAT 方式看到的信息,已经迥然不同了。
  因为你一开始看到的是表象,而现在你已经能看到本质。 
  如果你愿意的话,你还可以开始思考解决之道。说到"如何解决问题",这又是另一个很大的领域,已经超出本文的范畴——本文讲的是"如何认知"。
  要想学习"如何解决",强烈建议大伙儿看一下《你的灯亮着吗?——找到问题的真正所在》,非常经典!