计算机从业者们似乎都喜欢写 side project,这在中文社区中有个通俗的说法即「搞副业」。如果你经常逛 V2EX、Reddit 的编程板块或是 Hacker News,你会看到人们分享的各种各样的 side project,小到一个百余行代码的实用小工具,大至一个框架、一个网站乃至一个完整的准商业项目。

人们在分享自己的创造时往往怀着极大的热情。这是一种即使隔着屏幕也能感受到的心情,就像七岁的男孩组装好了第一辆四驱车,又或是料理爱好者凭自己的努力烧了一顿高难度的饭菜。他们分享的是自己的宝贝,并期望在人群中掀起波澜。在一些社区如 r/rust,人们热衷于讨论这样的分享,给予肯定以及有意义的反馈。但事情并不总是如意,在另外一些地方,如综合性的或是冷门的社区,只有少数分享会被人们注意,更多的则是被略过,直至沉没在信息流中。这通常会令人沮丧。

人们怀着相似的心情分享创造,分享时的心态却又不尽相同。我偶尔会尝试透过文字猜测不同分享者的想法。发在新手区的帖子有一种年少的单纯。他们的分享并不复杂,往往是初尝某个领域后的练手项目。社区的成员通常也会以较低的标准对待这样的项目,给予鼓励,仿佛为刚学会走路的孩童喝彩。匆匆留下一个链接的,倘若不是社区不鼓励附言(如 Hacker News),极有可能是一位佛系人士。他们分享的往往是随手创造的项目,如从工作中抽象出的类库,或是某些能提升生活质量的工具。他们没有为此花费过多的精力,因此不会过于在意他人的看法。项目能够帮助他人当然是极好的,如果不能,他们也不会过度失落。但也有另一类人,他们在自己的项目中倾注了大量的心血,因此也希望从社区获得相当的回应。他们在行文中会极力为自己的项目卖好,有甚者更是不加掩饰地向社区索要点赞(如 Github 的 Star)。这些人属于分享创造的狂热者。

每种职业都有类似的现象。行业内人士自发形成圈子,以交流讨论行业的知识和技能。作家们相互赏阅评判各自的作品,厨师们举办茶会比拼自己的料理。但计算机从业者的热情尤为高涨。不论水平的高与低,工作的忙与闲,大家都热衷于写 side project。

Side project 首先是实用的,这由计算机从业者的性质决定。在信息化的时代中,他们是日常生活工具的锻造者,是数字世界的铁匠、木匠。计算机从业者的创造主题广泛而多样,从游戏到生产力工具软件,乃至一些智能硬件,无一不可解决切实的问题。但与传统世界的工匠不同,完成一个完整的作品并不需要诸多精细化分工的角色。一旦有了想法,一个人便可马上付诸行动,借助完善的文档快速地构建一个可用的原型。和其他行业相比,计算机从业者可以花费更少的资源完成一个项目。

计算机从业者们通常倡导终身学习,而完成 side project 是一个很好的学习机会。在工作中你也许只负责项目的一小方面,涉及的知识就像巨型人偶中的一颗螺丝。但在 side project 中,你会接触到项目的各个方面,从规划设计到技术实现再到落地部署,总有一些之前没有涉猎过的内容。抑或者业界有人推出了新的技术或框架,正好能用于实现你的想法,你便会去接近并尝试使用它们。有人说这么大的工程量也太费精力了,会使人身心俱疲。但对于极客而言,学习和折腾各种技术本身就是一件快乐的事情。

Side project 也是自豪感的一个重要来源。凭自己的力量创造一件事物,并用它来解决实际的问题,这本身就是一件了不得的事情。如果这个事物再被外人所知悉,那更是有超越造物主的自豪感——毕竟无人和造物主一起分享这种喜悦。自豪感不总是能轻易获得,却又是生活的必需品。如果你不能从工作中获得自豪感,你会更倾向于从 side project 中获得这种体验。

而更重要的是,网络及成熟的代码托管平台简化了 side project 的分享乃至协作。这是相较于其他行业的一个优势。经由网络,他人可方便地体验分享的作品,同时作品也可被快速传播。人们不仅能体验作品,很多时候也能了解到作品的实现细节。这要归功于开源文化的流行。创作者不仅会分享成品,也乐于分享成品的源代码,以供他人学习或是改进。而代码托管平台的使用已在计算机从业者间形成共识,人们可以在上面阅读项目的细节,或是和作者携手完成项目。这同样也是一件非常有意义而令人快乐的事情。


作者:hsfzxjy
链接:
许可:CC BY-NC-ND 4.0.
著作权归作者所有。本文不允许被用作商业用途,非商业转载请注明出处。