★ 第一阶段:WHAT —— 它是什么?
“What is it?” 这是学习技术最基础的一步。我们要搞清楚某个技术/工具/语言:
是什么?
有什么作用?
有哪些特性?
怎么用?有哪些语法规则?
举个例子:
学习编程语言(如 C++、Java、Python):多数人能掌握基本语法、标准库,并编写一些简单程序,如二分查找、冒泡排序、文件读写等。
学习类库(如 JDBC):大多数 Java 程序员都了解 JDBC 提供了哪些类,并能完成数据库的增删查改。
✅ 总结:WHAT 阶段重在“掌握表象、能够使用”。
❗ 但仅停留在这一层,就容易出现“只知其然,不知其所以然”的问题。很多程序员的技术成长正是停滞在这个阶段。
“How does it work?” 这是深入理解的阶段,你要搞清楚:
某项技术的底层机制是什么?
背后的原理和实现方式如何?
举个例子:
学 C++:你是否了解参数传递的实现?虚函数表如何构建?异常抛出时栈是如何回退的?
学 Java:你是否理解 JVM 的垃圾回收机制?反射是如何工作的?
学 JDBC:是否了解四种 JDBC Driver 的区别?游标的实现机制?事务是如何控制的?
在这个阶段,你需要大量地提问、思考和探索,并通过查阅官方文档、源码、社区讨论等途径,深入理解其工作原理。
✅ 总结:HOW 阶段是从“会用”迈向“精通”的关键。
🎯 达到这个层次,你基本已经步入该技术领域的前 20%(依据二八定律)。
“Why is it designed this way?” 这是追本溯源、掌握设计思想的阶段,你需要思考:
为什么要这样设计?
为什么不是另外一种实现方式?
这种设计背后有什么哲学或权衡?
举个例子:
C++为什么没有 Java 的 finally?为何早期没有设计垃圾回收机制?
Java:为什么没有类析构函数?为什么既有 String 又有 StringBuffer?
Python:为什么不提供类似 C++ 的访问控制(如 public/protected/private)?
只有你真正吃透了 HOW 的原理,才可能思考 WHY 的问题。而当你能主动提出“为什么”的问题,并能找到答案时,说明你已经具备了设计者的视角,而不仅是使用者的眼光。
✅ 总结:WHY 阶段是构建技术思维体系的开始,意味着你已具备自己设计系统的能力。
本文围绕“WHAT→HOW→WHY”三个步骤展开,适用于大多数技术领域,尤其是 IT 行业:
WHAT 是入门的起点,帮助你掌握技能;
HOW 是技术提升的关键,帮助你理解本质;
WHY 是通往专家之路的灯塔,助你脱颖而出。
很多人终其一生都停留在 WHAT 阶段,不是因为他们学不会,而是因为他们没有意识到后面还有更深层的探索空间。
希望你能以此为起点,持续迈进,成为那个既能解决问题,也能提出问题,甚至能设计系统的人。
—— 愿我们都能走在成为技术高手的路上,不止步于表面,而追寻本质。