❌ 误区:
看不懂代码 = 不懂语法
✅ 真相:
看不懂代码 = 不懂其中某一层模型
你已经知道的这一层:
变量
if / else
for / while
函数 / return
👉 只能看懂教学代码
你必须理解:
值 vs 引用
栈 vs 堆
拷贝 vs 共享
指针 / 引用
可变 / 不可变
示例你要“秒懂”:
int *p = &a;
a = b
👉 这是C / C++ / Rust / Python 差距的根源
你需要懂:
静态类型 / 动态类型
类型推导
泛型 / 模板
类型约束
Null / Option
比如你要一眼看出:
fn foo<T: Copy>(x: T) -> Option<T>
你必须理解:
同步 vs 异步
阻塞 vs 非阻塞
线程 vs 协程
事件循环
内存可见性
示例:
await fetch()
你要知道什么时候执行、谁在等谁。
异常 vs 返回值
panic / throw
RAII
defer / finally
你要知道:
defer f()
什么时候执行,是否一定执行。
这是很多人“看不懂”的根源:
宏
装饰器
注解
反射
代码生成
示例:
@cache
def f(): ...
👉 你要知道它在改写什么代码
面向对象(OOP)
函数式(FP)
过程式
声明式
示例:
map (+1) xs
你要知道这是对集合做变换,不是循环。
SQL
正则
Shell
DSL(如 Pine Script)
框架约定
示例:
SELECT * FROM t WHERE id IN (...)
100% 看懂代码 =
语法
+ 类型模型
+ 内存模型
+ 执行模型
+ 语言范式
+ 框架约定
+ 领域知识
❗语法只占不到 30%
| 卡住表现 | 实际缺失 |
|---|---|
| “这行代码看不懂” | L2 / L3 |
| “为啥结果是这样” | L4 |
| “函数去哪了” | L6 |
| “风格完全不一样” | L7 |
| “这不是编程吧” | L8 |
🎯 不是“背完语法” 🎯 而是能做到:
“我不知道这门语言,但我知道它在干什么。”
这才是100% 的真实含义。