吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5636|回复: 23
收起左侧

[Java 转载] 学习技术的三部曲:WHAT、HOW、WHY

[复制链接]
tutu1973 发表于 2017-7-31 00:56
最近几天有些网友在邮件里面问我关于学习的问题。有好几个人觉得工作了几年,也学会了不少的类库、框架、甚至语言,但是感觉自己的能力没有太大的提高。因此今天来说一下我个人对这方面的体会,希望对大伙儿(尤其是新手)有帮助。
先声明一下,本帖子讨论的三部曲是指你已经选定了某个技术方向之后,该如何学习;至于如何选定技术方向,则属于另一个话题,不在今天的讨论之列。
我把学习归类为三个步骤:What、How、Why。经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段。下面我把这三个步骤解释一下。★第一步:WHAT“WHAT”也就是“What is it?”——这是最简单的层次。在这个层次,你要搞清楚某个东东是什么样子的?有什么用?有什么功能特性?有什么语法?……
举例如下:对于学习语言(比如C++、Java、Python),大部分人都能够掌握基本的语法和标准库,然后用它写一些小程序(诸如二分查找、冒泡排序、简单文件操作等)。
对于学习类库(比如JDBC类库),大部分Java程序员都能明白JDBC主要包含哪些类,也能够用JDBC进行简单的数据库查询和增删改操作。由于这个步骤是最基本的,假如你连这都做不到(可能你的理解力不够好),也别在IT界混了。
但是光会What是不够的。仅仅停留在这个步骤,导致了很多程序员只知其然,不知其所以然。这就是目前大部分开发人员的现状。★第二步:HOW所谓的“HOW”就是“How to do?”。在这个层次,你要搞清楚某个东西,其内部是如何运作的?如何实现的?……
举例如下:假如你在学习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之外的行业和领域,其实也能适用。如何举一反三,就看各位的悟性了。

免费评分

参与人数 8吾爱币 +6 热心值 +7 收起 理由
guzrong + 1 + 1 谢谢@Thanks!
S1MPLYOUNG + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lannnnn + 1 用心讨论,共获提升!
jang2001 + 1 + 1 我很赞同!
jack33302 + 1 + 1 用心讨论,共获提升!
weku0801 + 1 我很赞同!
aipanpann + 1 + 1 我很赞同!
one486 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

娟然俊逸 发表于 2017-7-31 11:54
weku0801 发表于 2017-7-31 08:27
比较认同,什么时候分享一下如何选定技术方向?

看到你的头像 最感觉看到我自己 我QQ头像这个
qq3255965 发表于 2017-7-31 01:33
0772boy 发表于 2017-7-31 01:39
dszsdyx 发表于 2017-7-31 02:16
是这么回事儿,如果能够触类旁通就更厉害了
不该爱的爱 发表于 2017-7-31 04:41
感谢分享
LeiSir 发表于 2017-7-31 05:05
不错受教了
不语 发表于 2017-7-31 06:45
谢谢楼主分享经验,这都是很实用的。
巨无霸 发表于 2017-7-31 06:46
道理谁都懂!
吕鼎 发表于 2017-7-31 07:26
说的有道理
ShadowY 发表于 2017-7-31 07:31
不是不知道、是很多人知道、但是做不到
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 08:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表