学习新技能方法(2)

2020-08-09  本文已影响0人  无拘无束的猪

学习三部曲——What,How,Why

很多人学习了类库、框架、语言,但是却发现很多不懂。只是停留在了What层面。

WHAT

What is it?

在这个层次,你要搞清楚某个东东是【什么】样子的?有【什么】用处?有【什么】特性?有【什么】语法?......

对于学习语言(比如 C++、Java、Python),大部分人都能够掌握基本的语法和标准库,然后用它写一些小程序(诸如二分查找、冒泡排序、简单文件操作等)。

对于学习类库(比如 JDBC 类库),大部分 Java 程序员都能明白 JDBC 主要包含哪些类,也能够用 JDBC 进行简单的数据库查询和增删改操作。

仅仅停留在这个步骤,导致了很多程序员【只知其然,不知其所以然】。这就是目前大部分开发人员的现状。

HOW

How to do?

你要搞清楚某个东西,其内部是【如何】运作的?【如何】实现的?......

假如你在学习 C++ 语言,你是否搞明白函数传参数的实现机制?虚函数是如何实现?抛出异常时的栈回退是怎么回事?......

假如你在学习 Java 语言,你是否搞清楚 GC 如何实现?反射是如何实现?......

假如你在学习 JDBC 库,你是否清楚 JDBC Driver 的4种类型?不同游标类型的实现机制?事务的机制?......

完成这个阶段之后,你基本上就属于该技术领域最优秀的20%的人

WHY

只有想清楚 HOW 之后,才能继续去考虑 WHY

搞清楚某个东西【为什么】设计成这样?【为什么】不是另外的样子?这样的设计有什么讲究?......

对于C++语言:为什么 C++ 没有类似 Java 的 finally 关键字?为什么当初发明 C++ 的时候没有考虑 GC?......

对于Java语言:为什么 Java 没有类似 C++ 的类析构函数?为什么 Java 要同时提供 String 和 StringBuffer 两个似乎冗余的类?......

对于Python语言:为什么 Python 不提供类似 C++/Java 的访问控制机制?......

认知的过程

稍微了解“认知心理学”的网友应该知道:我们对某个事物的认识,总是“由浅到深”。虽然同样是由浅到深,但每个人思考的深度却千差万别。不幸的是,大多数人在看待某个东西(事物、问题、现象)的时候,都仅仅停留在浅层次。

未经反思自省的人生不值得去过。The unexamined life is not worth living.

参考:编程随想

https://program-think.blogspot.com/2009/02/study-technology-in-three-steps.html

上一篇 下一篇

猜你喜欢

热点阅读