为什么你越学越觉得自己不行?
为什么你越学越觉得自己不行?
你还记得第一次写出 Hello World 的那个下午吗?
屏幕上跳出那行白色的字,你靠在椅背上,觉得自己打通了一条通往新世界的路。那种兴奋是真实的——你甚至开始盘算,照这个速度,三个月后自己是不是就能写个 App 出来了。
然后一年过去了。
你知道了什么是多线程,但搞不清楚死锁为什么会发生。你听说过设计模式,但二十三种里能说清楚的不超过三种。你的 GitHub 上躺着六个半成品项目,每一个都在某个你当时觉得”再查查就能搞定”的地方停住了。
你开始怀疑自己是不是不适合干这行。
再过两年。你不再慌了。倒不是因为你什么都会了——你清楚自己还有一堆不懂的东西。但你大概知道,哪些不懂是可以现学的,哪些不懂需要花三个月啃,哪些不懂可能这辈子都不会去碰,而且你接受了这一点。
这三个阶段——狂喜、自我怀疑、平静——不是你一个人的经历。它有个正经名字,叫达克效应(Dunning-Kruger Effect)。
你的焦虑,恰好说明你在进步
很多人把”越学越焦虑”当成一种病,急着找药。但这个诊断本身就搞反了。
1999年,康奈尔大学的心理学家 David Dunning 和 Justin Kruger 做了一个实验。他们让一群学生做逻辑推理、语法和幽默感的测试,做完之后让每个人估计自己的排名。
结果很有意思:得分排在最低25%的人,平均认为自己的成绩能排到前40%。
不是谦虚,不是客套,是真的觉得自己还不错。
而那些真正得分靠前的人呢?他们反而倾向于低估自己。得分在前25%的人,平均只把自己排在前30%左右——他们觉得”大家应该都差不多吧”。
这就是达克效应的核心:你不知道的东西,你连”自己不知道”这件事也不知道。
翻译成程序员的话:刚学完 Python 基础语法的人,不会觉得自己不行——因为他还没见过异步编程、内存管理、分布式系统这些东西的存在。他的认知地图上,整个世界就是变量、循环和函数,而这些他”都会了”。
等他开始接触真实项目,认知地图突然炸开:原来还有这么多区域是灰色的、未探索的。他掌握的那点东西,在新地图上缩成了一个小角落。
焦虑就是在这个时刻产生的。不是因为你变弱了,是因为你的地图变大了。
你的认知地图,和塞尔达的迷雾一模一样
玩过《塞尔达传说:旷野之息》或者《文明》系列的人应该有体感。
游戏刚开始,你站在一小块亮着的区域里,周围全是迷雾。你往前走几步,迷雾退开一点,露出新的地形。你觉得自己在不断”解锁”世界。
但走着走着你会发现一个残酷的事实:你点亮的面积越大,你和迷雾接壤的边界就越长。
站在出生点的时候,你和未知的接触面很小,所以你觉得”世界也就这么大”。等你走出去一大片,你反而看到了更多的迷雾——你”知道自己不知道”的东西,指数级地增长了。
学习的过程一模一样。
刚入行的时候,你的亮区是一个小圆——变量、if-else、for循环。你和未知的边界很短,所以你觉得”编程也就这样”。
工作三年,你的亮区扩展成了一片大陆——前端框架、后端架构、数据库优化、CI/CD、容器化。但这片大陆的海岸线长了十倍不止。你每天都能看到新的迷雾:机器学习、区块链、编译原理、安全攻防……
你觉得自己”什么都不会”,不是因为你的能力退步了,是因为你终于有资格看到那些迷雾了。
刚入行那会儿你不焦虑,不是因为你强,是因为你站得太低,连迷雾都看不见。
达克曲线上的”绝望之谷”
如果把达克效应画成一条曲线,横轴是实际能力,纵轴是自信程度,你会看到一个很戏剧化的形状:
起点是一座愚昧之峰——能力很低,自信爆棚。Hello World 时期的你,站在这里。
然后曲线急剧下坠,掉进一个深谷——能力在增长,但自信在暴跌。这个谷底有个名字,叫绝望之谷。
你身边一定有人卡在这里。可能你自己这会儿就在谷底。
绝望之谷的体感大概是这样的:你每天都在学新东西,但每学一个新东西就会发现三个你不会的。你开始觉得别人都比你强。你看技术博客,觉得”这个我不会”;刷 GitHub,觉得”这个我也写不出来”。你甚至开始后悔——早知道这么难,当初为什么要入这行。
但达克曲线还有后半段。
过了谷底,曲线会慢慢爬升,进入一段长长的缓坡——开悟之坡。你的能力继续增长,自信也开始恢复,只不过这次的自信不再是”我什么都会”的幻觉,而是”我知道自己会什么、不会什么”的清醒。
从谷底到坡上,没有捷径。但有几件事能帮你活着走过去。
在绝望之谷活下来的三个方法
第一,建一个”已完成”清单。
焦虑的时候你的注意力全部聚焦在”我还不会什么”上面。这个列表是无限长的,你越盯着它越绝望。
换个方向:每周花十分钟,写下这周你搞定了什么。不需要是什么了不起的成就。”搞懂了 Promise 和 async/await 的区别”就够了。”第一次独立排查了一个线上 bug”也算。
一个月后回头看,你会发现亮区确实在扩大。你不是没进步,你只是忘了记录进步。
第二,找一个”比你早走两年”的人聊聊。
不是找大佬——大佬的经验太远,你听了只会更焦虑。找一个比你多两年经验的人,问他:”你工作第二年的时候,是不是也觉得自己什么都不会?”
十有八九他会笑着说”是”。然后你会意识到,你的焦虑不是个人缺陷,是这条路上的标配。每个走过绝望之谷的人,都在谷底说过”我是不是不适合”。
第三,把”我应该都会”换成”我只需要够用”。
没有人什么都会。Linus Torvalds 不写前端,尤雨溪不搞内核。你不需要点亮整张地图,你只需要在你那片区域里,足够深、足够稳。
“T型人才”这个说法虽然被用烂了,但它的核心逻辑没过时:一横一竖,横是广度让你能协作,竖是深度让你有价值。你不需要把横拉到无限宽,你需要的是把竖扎得够深。
Hello World 的狂喜不会再来了
这是事实。
那种”天哪我写出来了我是天才”的纯粹兴奋,随着你见过的代码越来越多、踩过的坑越来越深,确实会消失。你不会再因为一个 for 循环跑通了而激动半天。
但你会拥有另一种东西。
你会在排查了三天的 bug 终于被你定位到的时候,长出一口气,然后给自己倒杯咖啡——不是狂喜,是一种”嗯,搞定了”的踏实。
你会在读完一篇论文、把里面的算法从零实现出来的时候,关掉编辑器——不是激动,是一种”我确实理解了”的笃定。
你会在有人问你一个技术问题,你能说出”这个我知道,是因为……”或者”这个我不确定,但我觉得可以从这个方向查”的时候——不是炫耀,是平静。
这就是达克曲线后半段的样子。没有山顶的欢呼,只有山腰的稳当。
所以,如果你现在正站在绝望之谷里,觉得越学越觉得自己不行——
恭喜你。
你的地图正在变大。那些让你焦虑的迷雾,正是你成长的证据。
Hello World 的狂喜不会再来了。但你正在走向的,是一种好得多的东西。