外观
那些我没学会的东西
约 1150 字
那些我没学会的东西
程序员爱晒「我学了什么」,没人说「我学废了什么」。 但后者同样值钱 —— 知道自己的边界, 和知道自己的能力一样重要。
这篇是我的「放弃清单」和当时的思考,没有鸡汤。
一、List 一:搞不定的技术
算法竞赛级别的动态规划
LeetCode 中等 DP 能过,但「状态压缩 DP」 「区间 DP」这类,每次现学现忘。 放弃了:我的岗位用不到那个深度。 (面试被问到怎么办?诚实说「不熟, 思路大概是……」,然后往我熟的工程经验引。)
Rust 的所有权系统
学了三次。前两次卡在「借用检查器和我之间 必须死一个」。第三次能写小工具了, 但「生命周期标注」那关,我还是过不去。 状态:搁置。不硬刚了,等哪天真需要 (写 WASM/系统工具)再捡起来。
Kubernetes 的完整体系
kubectl get/apply 会,概念懂, 但「自己从零搭一套生产集群 + 网络 + 存储」—— 没干过。 承认:会用 ≠ 会运维。 需要时跟着文档能搭起来,但「精通」不敢说。
编译原理(深水区)
词法/语法分析懂,能写简单解释器 (跟《Build Git》敲过)。但「类型推导」、 「图着色寄存器分配」这些 —— 望见深海,没潜。
二、List 二:学了但「没用上就忘了」
- Haskell:函数式思维开阔了, 但工作用不到,两年后全还了;
- Elasticsearch 的集群调优:用过一阵, 换了工作没碰,现在查文档能配, 细节全忘;
- 某国产框架(不点名):火的时候学了, 凉得比学的速度快;
- Three.js/WebGL:想学做 3D 效果, 卡在数学(矩阵变换), 做个 demo 之后就「以后再说」了。
三、放弃的策略(不是躺平)
「放弃」不等于「不学」,我的规则:
1. 「T 型」比「全栈」现实
深:一到两个领域(我的:前端工程化 + 网络)
宽:其他都知道「是什么、什么时候用、
去哪查」(广度靠文档和搜索)承认「宽而不深」是常态 —— 每个领域都「半桶水」的人, 不如「一桶深 + 九桶浅」。
2. 「需要驱动」替代「焦虑驱动」
❌「都在学 AI,我也得学」→ 学了用不上,三个月忘
✅「这个项目要用 Redis → 查文档 + 动手 + 记笔记」需要时学,记得最牢;焦虑时学,忘得最快。 (详见 学习方法。)
3. 给「放弃」设检查点
不是永远不碰,是「明确现在不碰」:
## 搁置清单
- Rust:等有系统编程/WASM 需求时重启
- 图形学:等要做 3D 项目时,从数学补起
- K8s 运维:等工作需要时,跟着官方文档实操写下来的「以后」才不会变成「永不」。
4. 放弃要「诚实」
对自己诚实(上面这个清单), 对面试官诚实(「这个我没深入」), 对简历诚实(不会的别写「精通」)。
「精通」两个字,是简历上最贵的字 —— 写了不懂的,面试三个问题就穿帮, 信用破产比「不会」惨多了。
四、为什么写这篇
程序员文化有种病:只展示「学会的」, 隐藏「学不会的」。于是新手以为 「大佬什么都懂」,焦虑自己「怎么这也不会」。
真相:你仰望的人,也有一长串「搞不定」。 区别只在他们不说。
所以写这篇,给曾经的自己: 「学不会 Rust 不丢人,学了三周还没入门 就怀疑人生才亏。」 —— 承认边界,把精力放在你的「一桶深」上, 剩下的,知道「去哪查」就够了。
五、正在重新挑战的
清单也不全是死胡同。今年重新捡起来的:
- 英语口语:从「能读」到「能说」, 每周和线上外教聊三次 —— 这次有刚需 (见程序员英语);
- 写作:从「写技术文档」到「写给人看的文章」 —— 本站就是练习场。
「放弃」和「重启」都是选择, 关键是「明确」。 糊里糊涂地「在学」和 「不学」之间摇摆,最耗人。
小结
一份诚实的放弃清单:搞不定的(Rust 所有权、 竞赛 DP)、忘了的(Haskell、ES 调优)、 搁置的(K8s、图形学)。配三条规则: T 型发展、需要驱动、写下来的「以后」。 程序员的核心竞争力不是「什么都会」, 是「知道自己会什么、不会什么、 不会的怎么补」。