学习技术的三部曲:WHAT、HOW、WHY
MyWinCC
2025年07月11日 17:49

★ 第一阶段:WHAT —— 它是什么?

“What is it?” 这是学习技术最基础的一步。我们要搞清楚某个技术/工具/语言:

  • 是什么?

  • 有什么作用?

  • 有哪些特性?

  • 怎么用?有哪些语法规则?

举个例子:

  • 学习编程语言(如 C++、Java、Python):多数人能掌握基本语法、标准库,并编写一些简单程序,如二分查找、冒泡排序、文件读写等。

  • 学习类库(如 JDBC):大多数 Java 程序员都了解 JDBC 提供了哪些类,并能完成数据库的增删查改。

✅ 总结:WHAT 阶段重在“掌握表象、能够使用”。

❗ 但仅停留在这一层,就容易出现“只知其然,不知其所以然”的问题。很多程序员的技术成长正是停滞在这个阶段。

★ 第二阶段:HOW —— 它是如何工作的?

“How does it work?” 这是深入理解的阶段,你要搞清楚:

  • 某项技术的底层机制是什么?

  • 背后的原理和实现方式如何?

举个例子:

  • 学 C++:你是否了解参数传递的实现?虚函数表如何构建?异常抛出时栈是如何回退的?

  • 学 Java:你是否理解 JVM 的垃圾回收机制?反射是如何工作的?

  • 学 JDBC:是否了解四种 JDBC Driver 的区别?游标的实现机制?事务是如何控制的?

在这个阶段,你需要大量地提问、思考和探索,并通过查阅官方文档、源码、社区讨论等途径,深入理解其工作原理。

✅ 总结:HOW 阶段是从“会用”迈向“精通”的关键。

🎯 达到这个层次,你基本已经步入该技术领域的前 20%(依据二八定律)。

★ 第三阶段:WHY —— 它为什么这么设计?

“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 阶段,不是因为他们学不会,而是因为他们没有意识到后面还有更深层的探索空间。

希望你能以此为起点,持续迈进,成为那个既能解决问题,也能提出问题,甚至能设计系统的人。

—— 愿我们都能走在成为技术高手的路上,不止步于表面,而追寻本质。