焦虑旋涡
不知道你有没有一种感觉,每看到一个热门的技术就想要去学习一下。感觉自己学了很多东西,但是想想自己如果出去找工作,面试官问你会什么,核心竞争力是什么?一时间感觉自己什么都不会。这个时候就会感到很焦虑,然后就又开始找东西学习,如此往复。
年年感觉很努力,年年很焦虑。
这种状态在技术圈非常普遍,被称为"学习性焦虑"。它不是因为你不够聪明,而是你的学习路径缺乏系统性的支撑,导致投入产出比失衡。
我的心路历程
进入职场也有 7 年有余了,也在焦虑旋涡困了好多年,最近几年感觉自己有点脱离了,更确切地说是看清楚了一些。我的整个心路历程与下面这个人类认知曲线基本一致,下面与你分享一下我的心路历程,希望对你有启发。

愚昧之巅
刚踏入职场的时候是最快乐的时光。因为刚从学校里面出来,什么都不懂。至少对于我来说是真的什么都不懂,上学期间没有做过项目,所以基本上能称得上了解的就只有 C 语言和一些算法了(上学期间参加过 ACM,不过我的水平比较一般),连 Epoll,C 语言内存结构这种被后端面试问烂的问题我都不懂(很感谢当时给我 Offer 的人)。这个时候做的所有事情都是一种成长,这个时候的努力是不会感到焦虑的,因为你确实感觉自己的技术丰盈了。
我印象中刚工作的时候让我获得最多成就感的一件事情就是我理解了我们产品中的后台进程是怎么一直运行的。因为上学期间都是写个算法之类的,跑一下就结束了,所以对于产品中的后台进程竟然能够持续跑下去感到很不解,也感到很神奇。
那段时间,我自己也很努力。除了做自己的本职工作以外,我还会花时间看产品中的其他业务代码,公共库等。设计能力,编码能力,查问题的能力等等在这个阶段得到了快速的成长。这段时间的努力也让我与同届进入公司的人在技术上拉开了一些差距。
绝望之谷
工作两三年之后,由于自己前面几年的努力,在项目里面开始负责一些技术管理的工作,这个时候没有再闷头写代码了,开始思考一些问题,越思考越发现自己什么都不懂。特别是那几年处于互联网的顶峰时期,很多概念/技术层出不穷,区块链,云计算,容器等等,感觉自己如果不学这些东西以后被裁员就找不到工作了。当前的工作中好像又用不到这些东西,也不知道学这个东西有什么用。所以总是学一段时间就停止了,然后过一段时间又继续学习。现在来看这种学习主要还是一种自我安慰,缓解焦虑而已。
这段时间是最难的时光,很努力但是很焦虑。为了缓解焦虑经常报复式的熬夜。但是同时这段时间也在不停的在思考总结,不单单只是思考技术层面,也考虑认知层面,当然那段时间也不知道自己的认知有问题,只是感觉看书能够获得一些东西,所以看了一些哲学,心理方面的书籍。
开悟之坡
大概工作 5 年左右,开始慢慢地理解了一些认知层面的东西。
目前我也不知道是从什么事情开始开悟的,但是我印象最深刻的是《认知觉醒》这本书里面关于焦虑的探讨,让我的意识一下子变得清晰起来。或许这本书只是一个引子,把我原先思考的东西贯穿起来了。下面摘抄一下书里面的描述:
归结起来,焦虑的原因就两条:想同时做很多事,又想立即看到效果。
很多时候,我们对困难的事物缺乏耐心是因为看不到全局,不知道自己身处何处,所以总是拿着天性这把短视之尺到处衡量,以为做成一件事很简单。
更具体一点,针对程序员这个行业就是要整理自己的计算机知识体系。当你有一个完整的知识体系的时候,你就知道自己哪些是知道的,哪些是不知道。哪些需要学习,怎么学。下面这个是我整理的一个体系,当然这个主要还是要靠自己去整理,知识体系是在实践中不断思考总结出来的,别人的知识体系是没有办法自己直接使用的,只能作为一个学习方向的参考。
我觉得知识体系化最有效的方法就是抽象,学一个技术点的时候把底层逻辑学清楚,然后做抽象。一直做这件事,就会得到很多抽象的东西。之后去找这些抽象之间的关联,把这些关联找出来你就构建起你的知识体系了。
举个例子,当你学习 python 语言的时候,你深入理解了他的垃圾回收算法,这个时候你应该抽象一下,把垃圾回收这个事情当成一个抽象的东西,抛开 python 去考虑这个垃圾回收都有哪些实现方式,有什么优缺点。这个时候你得到了一个关于垃圾回收的抽象,这个抽象是语言无关的。当你研究 python 变量内存怎么存储的时候,你可以再抽象一下,变量存储各个语言都有哪些方式,有什么优缺点。得到了这两个抽象之后,这个时候你去思考这两个有什么联系,你会发现这两个都属于编程语言关于内存管理的考虑点。通过不断抽象,你就会得到关于一个编程语言设计的知识体系。得到这个知识体系之后你学习一门新的编程语言就会很快,因为你已经知道有哪些知识点了,只需要知道它使用哪一种方法就可以了。


