一个文科生在地铁上啃源码,啃出一个全球框架
前两天跟一个做后端的朋友聊天,他在大厂干了五年,一直想搞个自己的开源项目,但每天回到家累得只想躺着刷手机。他说:“根本没整块时间,等哪天离职了再搞。”
我问他,你每天通勤多长时间?
“来回两个多小时。”
我说,你这两小时都在干嘛?他说刷X、看技术帖、偶尔打两把游戏。
然后我跟他提了个人——尤雨溪。
尤雨溪是Vue.js的创始人,这事儿很多人知道。但没多少人注意到,他在Google当打工人的那几年,就是用地铁通勤、晚上、周末这些“边角料时间”,把Vue从零写到全球几百万开发者用的框架。
而且他是文科生,本科读的不是CS。
这就很值得拆开看。不搞人物崇拜,重点看他用的方法,这事儿普通人能不能复制。
不是勤奋,是“深度聚焦”的打法
大多数人学技术的路径:报课、刷视频、照着教程敲一遍,然后觉得自己会了。
尤雨溪不是这么干的。
他在公开访谈里提过,自己早期把jQuery研究到了“每个API都清楚它内部怎么实现”的程度。接着去读Backbone、Angular这类框架的源码——不是浏览,是真的逐行读完,理解作者为什么这么设计。
更狠的是,他会手写自己的实现版本。
比如读完Angular的依赖注入,他会试着在自己项目里写一个类似的迷你版。读明白指令系统了,也会动手做一个。这方法的本质就是:用真实的高难度项目反向驱动学习,而不是先把理论补全了再动手。
这套打法有三个关键:
第一,聚焦一个极窄的领域。 他没有今天看前端、明天玩数据库、后天捣鼓AI,而是死磕“前端框架设计”这一件事好几年。
第二,用源码当教材。 不满足于“会用”,要搞懂“为什么这么设计”。这个习惯带来的认知深度,跟刷教程完全不在一个量级。
第三,输出倒逼输入。 每读完一个框架的源码,他都会产出点什么——一个小工具、一篇笔记、一个手写版本。这个过程会把模糊的理解强行变成扎实的肌肉记忆。
时间不够?这套打法反而不吃大块时间
很多人觉得“深度研究”一定需要一整天的沉浸,其实相反。
读源码、手写实现这种事,天然适合碎片时间。因为它的工作单元很小——读完一个模块的设计,画个流程图,写一段自己的实现,最多一两个小时。
尤雨溪当时在Google全职,强度不低。但他把地铁上的三四十分钟、晚上睡前的一两个小时、周末的半天,全砸进同一个方向。
这儿有个容易踩的坑:很多人把碎片时间用在“刷”上——刷技术新闻、刷教程、刷别人的总结。信息量不小,但留不下东西。
深度聚焦的打法,靠的是持续在同一个问题上滚雪球。今天理解一个设计模式,明天看到另一个框架也用了类似思路,两个知识点一连,就变成你自己的了。
这件事的门槛在哪
说到底,把jQuery玩透、读几个框架的源码,技术门槛没有想象中那么高。两三年经验的开发者都能做到。
真正卡人的,是两件事:
一个是方向感。 你得知道自己要聚焦哪个领域,而不是什么火追什么。尤雨溪选“前端框架”,是因为他之前已经把jQuery吃透了,天然有积累。
另一个是回报周期。 这种打法,前半年甚至一年,你可能没有任何“产出”——没涨粉、没赚钱、没人知道你在干什么。大多数人在这个阶段就放弃了,转头去找更快能看到结果的事。
但Vue这个项目,证明了这套打法一旦积累到临界点,回报是跳跃式的,不是线性的。
避坑清单:别用“勤奋”掩盖“散焦”
这条路有三个常见的死法,帮大家避掉。
把“学习”当成果。 读完源码、写完笔记,就觉得自己进步了。但真正的检验标准是:你能不能自己实现一个精简版?如果不敢动手,说明还没真的懂。 领域切太宽。 今天研究状态管理,明天搞构建工具,后天又去看服务端渲染。深度聚焦的核心是窄,窄到别人觉得你“怎么还在搞这个”的程度,才算真的聚焦。 期待即时反馈。 这套方法的前期几乎没有外部奖励——没人夸你、没涨工资、没项目找你。如果你对正反馈的心理预期是“三个月见效”,中途大概率会崩。给自己设一个两年的心理周期,心态会稳很多。
最后提醒一句:如果你打算在业余时间做技术项目,并且涉及到开源社区的参与、合作或收益分配,建议在执行前咨询懂开源合规的专业人士,别在许可证、贡献者协议这些事上踩坑。
作者:创业避坑 原文数据来源:尤雨溪公开演讲及社区访谈 声明:文章中提到的具体技术路径请结合自身情况判断,不作为投资或职业建议。
有时候,窄门背后藏着您想象不到的开阔,缺的只是把零碎日子都填进同一件事里的那股劲儿。
我是『潇湘夜河』,常年蹲在创业的坑边上做笔记。这篇要是帮你少走一段弯路,点个关注,也顺手转给还在摸索的朋友。
夜雨聆风