我接触开源挺偶然的。那几年在整理一批老期刊的扫描件,工具链里有个处理OCR文本的库,用着用着发现文档里一处说明和实际行为对不上。本来只想提个issue,maintainer回得飞快,末了说"要不你改了吧,good first issue"。Genau,就改个错别字的事。
那一瞬间像有人替你推开了一扇一直虚掩着的门。后来从改文档到补单测,再到碰真正的逻辑bug,路是一步一步自己长出来的。最教人受用的倒不是写,是PR被review的过程:有人嫌你变量名不够表意,有人偏要和你争那个边界情况值不值得处理。单机练手说到底是自己哄自己,可开源仓库里CI会红、人会较真,硬把你那点野路子逼成能交给陌生人维护的东西。
有时一个issue底下,maintainer们慢条斯理地掰扯为什么要这样取舍,比任何架构书都来得熨帖。我见过比代码残酷太多的事,所以被拒个PR、被挑两句刺,反而觉得轻