近几天有些网友在邮件里面问我关于学习的问题。有好几个人觉得工作了几年,也学会了不少的类库、框架、甚至语言,但是感觉自己的能力没有太大的提高。因此今天来说一下我个人对这方面的体会,希望对大伙儿(尤其是新手)有帮助。
先声明一下,本帖子讨论的三部曲是指你已经选定了某个技术方向之后,该如何学习;至于如何选定技术方向,则属于另一个话题,不在今天的讨论之列。
我把学习归类为三个步骤: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的访问控制机制?......
如果你能够自己问出诸如上述的“为什么”问题,并且能够通过各种途径找到解答,那你基本上已经吃透这个技术了,并且你已经有可能自己去设计一个类似的玩意儿了。到这时,你已经踏上了通向技术高手的康庄大道。
由于本博客偏重IT方面,所以今天举的这些例子多半都是IT相关的,但是这个三部曲在IT以外的行业/领域其实也能适用,就看读者自己的领悟了。
相关推荐
j2ee why what how 可以看看
本文将从What、Why、How三个方面详细解释弱引用的概念、使用原因及其实现方式。 What——什么是弱引用? 弱引用是Java中的一种引用类型,位于Java的java.lang.ref包下,主要由WeakReference类表示。与强引用...
需求工程师、产品经理必看的一本书,很好很赞,从为什么开始
4. **持续学习与改进**:定期回顾并评估连续交付流程的有效性,根据实际情况进行调整优化。 #### 五、案例研究 文档中提到了福特公司的案例,这是一个很好的实践例子。通过引入装配线技术,福特公司不仅大幅提高了...
With its combination of background, theory, real-world examples, and patient explanations, How Linux Works will teach you what you need to know to solve pesky problems and take control of your ...
- `How + 形容词/副词 + 主语 + 谓语`:How beautiful she is! - `How + 动词 + 主语`:How quickly he runs! 3. **特殊结构** - 在某些情况下,感叹句可能会结合"What"和"How"的特点。例如: - `What (a/an) +...
在中学英语学习中,感叹句是表达强烈情感或惊讶的重要句型。...以上就是关于"What"和"How"引导的感叹句的详细解析,这些知识点对于中学英语学习者来说至关重要,掌握好这些句型有助于更准确地表达情感和观点。
在中学英语学习中,感叹句是表达强烈情感或惊讶的重要句型。"What"和"How"是用来引导感叹句的两个关键词,它们各自有着特定的句型结构和使用规则。以下是对这些知识点的详细阐述: 1. **What引导的感叹句**: - 当...
C# Deconstructed answers a seemingly simply question: Just what is going on, exactly, when you run C# code on the .NET Framework? To answer this question we will dig ever deeper into the structure of...
The paper addresses three aspects of Chinese banking regulation: what does China regulate; why does China regulate; and how does China regulate. Much of the discussion is concerned with China’s ...
Artificial Unintelligence: How Computers Misunderstand the World (Meredith Broussard, MIT Press) 人工非智能-计算机是如何误导世界的? A guide to understanding the inner workings and outer limits of ...
中考英语中what和how引起的感叹句句型的用法归纳总结 中考英语中what和how引起的感叹句句型的用法归纳总结是英语...what和how引起的感叹句句型是英语教学中的一大亮点,对学生的英语学习和实践具有重要的指导意义。
"内部开源的 WHAT _ WHY _ HOW" 本文档主要介绍内部开源(InnerSource)的概念、历史、现状、why inner source、Baidu的实践经验,以及 InnerSource 的优势和挑战。 InnerSource 的定义是指在组织内部采用开源...
【白板编程浅谈——Why, What, How】 在IT行业的面试中,白板编程已经成为了一种常见的评估技术人才的方法。这种做法源自于面试官希望在有限的时间内,尽可能全面地了解候选人的编程思维、逻辑能力和解决问题的能力...
* 询问家庭成员:How many people are there in your family? * 询问学校信息:What Grade/Class are you in? / What school are you from? 二、询问天气、时间等 * 询问日期:What day is it today? * 询问天气:...
下面是Continuous Delivery的Why、What和How: Why Continuous Delivery? 在软件开发领域,效率和速度对业务成功至关重要。Ford汽车公司的生产线效率是其竞争对手的6倍,这体现了自动化和流程改进对生产效率的...
该文档来自2013中国大数据技术大会上,Member of the Project Management Committee at Apache Hadoop,Nicholas关于《HDFS: What is New in Hadoop 2》主题的演讲。
Amazon 介紹: http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593270356/ref=sr_1_1?ie=UTF8&s=books&qid=1269504842&sr=1-1