现在的位置: 首页 > 综合 > 正文

学习技术的三部曲:WHAT、HOW、WHY

2018年04月20日 ⁄ 综合 ⁄ 共 1969字 ⁄ 字号 评论关闭

下面是我今天写的一个Blog,转贴给大伙儿,希望论坛里的牛人多提批评意见。

最近几天有些网友在邮件里面问我关于学习的问题。有很多人觉得工作了几年,也学会了不少的类库、框架、甚至语言,但是感觉自己的能力没有太大的提高。因此今天来­说一下我个人对这方面的体会。 
我把学习归类为三个步骤:What、How、Why。经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段。下面我把这三­个步骤解释一下。

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

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

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

由于本博客偏重IT方面,所以今天举的这些例子多半都是IT相关的,但是这个三部曲在IT以外的行业/领域其实也能适用,就看读者自己的领悟了。

原文地址:http://blog.csdn.net/program_think/article/details/3908713
补上一个博客朋友的评论:

这是现代认知理论的精髓
认知的步骤应该是
what, how, why,where
是什么,有什么,为什么,怎么用。
起源于达尔文的分类学中用于定义一个物种,首先是用是来定义,如果解释不清楚,就用有来定义,再解释不清楚,就用种差来定义,即为什么方面。
软件行业的认知也应该遵循这样的方法论,可惜现在的教育制度培育下的“人才”大多比较热衷一上来就“where”了。但时间长了会体现出来差别的。

PS:不能纯粹是这个步骤按部就班的行动,这中间的步骤可能是交叉的,回旋式上升。有些问题暂时解决不了或者解决不好,都可以记下来,以备温故而知新,而且很多时候都是需求驱动学习,或者需求驱动创造,学而致用并非一味的学,潜龙勿用也只能是一个短暂的阶段,学用互进。这个世界没有现成的答案,自己的问题自己找答案。

抱歉!评论已关闭.