一个副项目,花了一周晚上做完,部署成功,功能正常,然后作者当天决定:不用了。
这不是创业失败复盘。没有融资,没有增长,没有用户留存。只是开发者 Robb Owen 为了学拉脱维亚语,做了一个名词变格 Quiz App。它最有意思的地方是:作为产品,它没什么用了;作为学习过程,它已经完成任务。
技术圈太喜欢把副项目讲成“发布故事”。这篇文章反而提醒了一件更朴素的事:有些项目不需要活下去,因为它已经把该教你的东西教完了。
一个极简 App,解决了一个真实学习问题
Robb Owen 学拉脱维亚语时,卡在名词变格上。
拉脱维亚语名词有 7 个格、2 个性、单复数,还有多套变化模式。对英语母语者来说,这不是背几个词尾,而是重建一套语法反射。
开发者的本能很自然:写个工具。
他的方案很小,也很克制:
| 模块 | 选择 |
|---|---|
| 前端 | Svelte |
| 部署 | Netlify |
| 后端 | Netlify serverless functions |
| 数据 | 静态 JSON |
| 本地记录 | local storage |
| 判题逻辑 | Regex 处理词干和后缀 |
MVP 也不复杂:给出一个拉脱维亚语名词,让用户填正确变格;错 3 次结束;记录高分和每个词的命中情况。
这几乎是教科书式副项目。范围小,技术栈轻,不碰复杂数据库,目标用户只有自己。
结果上线后,他发现测验太简单。如果一直答对,测验还会无限进行。更关键的是,他已经不太需要这个 App 了。
原因很直接:在整理规则、分类名词、写 Regex、拼后缀的过程中,他已经把变格规则学会了。
产品失效,问题解决。
副项目的成败,不能只看发布后的样子
我喜欢这个故事,因为它戳破了技术圈一个很烦人的幻觉:副项目必须发布,发布必须体面,最好还能变成作品集、面试谈资,甚至商业故事。
这套压力不是凭空来的。开发者文化里有 always be shipping,招聘市场又常常拿课外项目判断候选人的主动性。于是很多初级开发者还没写几行代码,就开始想 GitHub 星标、作品集截图、面试官会不会喜欢。
问题不在发布。问题在把所有副项目都塞进同一套评分表。
| 项目类型 | 主要目标 | 合理的完成标准 | 不该硬套的指标 |
|---|---|---|---|
| 学习项目 | 理解框架、语法、建模方式 | 能解释关键机制,能独立改动 | 留存、增长、商业化 |
| 作品集项目 | 证明交付能力 | 可演示、可读、边界清楚 | 必须真实用户很多 |
| 产品项目 | 持续解决他人问题 | 有使用场景、反馈、迭代空间 | 只满足作者自己的练习需求 |
Robb Owen 这个 App,如果按产品标准看,确实废了:测验太简单,需求消失,继续维护也没什么意义。
但按学习标准看,它成功得很干净。他摸了一遍 Svelte、Netlify serverless、JSON 数据组织、本地存储、Regex 规则建模,还把拉脱维亚语名词变格吃下去了。
古人说“买椟还珠”。这个例子刚好反过来:外面那个 App 像椟,真正的珠子是建造过程里长出来的理解。
技术学习经常就是这样。很多能力不是看教程看出来的,是在半成品、坏目录、废项目里磨出来的。一个 abandoned side-project,不等于懒惰,也不等于执行力差。它可能只是完成了阶段任务,然后自然退场。
这里也有一个限制:如果你把项目放进作品集,那就不能只说“我学到了”。招聘场景需要可展示的交付物。README、截图、部署链接、代码结构,仍然要过得去。
所以关键不是反对作品集,而是别把所有练习项目都当作品集审判。
谁该调整动作,接下来该看什么
这篇文章最该被三类人读到。
初级开发者应该做的,不是少开项目,而是先给项目贴标签。学框架就是学框架,练 API 就是练 API,做作品集就是做作品集。目标不同,停下来的标准也不同。
正在做作品集的人,要把练习项目和展示项目分开。前者可以粗糙,可以废弃;后者必须能被陌生人看懂。不要拿一个临时练手项目折磨自己,也不要拿一个半成品去硬撑求职展示。
长期被副项目焦虑困住的独立开发者,更要警惕“开坑成瘾”。每个新项目开始前,先写一句停止条件:学会某个技术就停,验证需求不存在就停,做出可演示版本就停。没有停止条件,副项目就会变成精神债务。
我更在意的观察变量只有一个:你到底用什么标准宣布一个项目结束。
如果标准永远是“上线、有人用、数据好看”,大多数学习型副项目都会被误判成失败。久了以后,人会不敢动手。因为每一次练习,都像一次公开考试。
这也是技术圈的老毛病。铁路、电力、报业、互联网,每一轮新技术扩张都会制造自己的成功叙事:谁铺得更快,谁覆盖更多,谁占了入口。这个逻辑放在公司身上很正常,放到个人练习里就变形了。
公司要市场份额,个人练习要的是能力增量。两者不是一回事。
Robb Owen 这个小 App 好就好在,它把这个误会讲得很具体:一个项目上线当天废弃,听起来像失败;但如果它已经让作者学会了想学的东西,继续维护反而只是表演。
真正成熟的开发者,不是每个坑都填完。是知道哪个坑已经不用填。
