我的个人博客:www.moonkite.cn
大家好,我是风筝
偶然看到 jQuery 创始人发表的一篇文章,主题是如何利用业务时间做 Side Project 的。
jQuery 想必没有哪个程序员没听说过吧,尤其是在各种现代的前端框架(React、Vue)普及之前,几乎是每一个 Web 项目的标配。
即便这样的大佬,也会发愁自己工作时间之外,没办法搞定其他项目。大佬都如此,我们普通程序员亦然。
做开发这些年,我也在 GitHub 上开源过几个仓库,还写过几百篇技术文章,虽然没什么太高的水平,但偶尔也会有人问我:你哪儿来那么多时间写这些,平时不加班吗,周末不玩儿吗?
说自己多勤奋,就有点儿大言不惭了,其实就是把一部分玩儿的时间拿出来写写代码、写写文章而已。更何况,到现在为止也没什么成就。如果哪天我写的某个东西突然火了,我肯定会说:“害,没什么天赋,没什么能力,就是把别人玩儿的时间都拿来写东西了。” 哈哈
写开源项目倒还好,因为心里清楚,这不是一朝一夕就能写完的。但是写文章就不一样了,假设真的要写好一篇技术文章,可能会花上好几天晚上,总时间恐怕要超过 7、8 个小时,包括构思、码字、画图、查资料的时间。
有时候,会定一个目标,例如,明天早晨一定要把文章发出去,为了达到这个目标常常会出现两种状况:1、前一天熬夜倒很晚,导致第二天没有精神;2、结尾草草收场或者忽略某些细节,这就导致文章虎头蛇尾以及细节含混不清。
上面是关于写文章的,还有就是写开源项目或者小产品的时候,以前有很多点子都想做成产品出来,但是很多都是做了一半儿,或者开了个头就搁置了。当时的模式是这样的,有时间就哐哐狂写,比如周末有时间的话,或者某天熬夜写,没时间就不写,这就导致超不过 2 周没时间,基本上就搁置了。
但是如果是坚持一天写一点儿,每天都写,中间不要间隔时间太久的话,就容易做出东西来,比如 https://github.com/huzhicheng/moon-drak-factory 做这个插件的时候,每天都写一点儿,最后周末收个尾。包括其他的完结的项目,都有这个规律。
说了这么多,主要就是想表达,我的这些教训和经验和 jQuery 创始人 John Resig 的某些想法是一致的(借大佬抬升自己)。
John Resig 分享了自己的经历,他以前做 Side Projects 的方式主要是利用周末的时间,白天工作,晚上基本上就不写代码了,然后周末疯狂提代码。
但是他发现这样有很大问题,大部分是因为本计划在周末完成的工作,但是却最终没有完成,而产生挫败感。再有就是在隔了一周的时间后,很容易忘记你正在处理的内容。更不用说,如果错过了一个周末,最终就会有两周的间隔。这种为期数周的大规模上下文切换可能是致命的(我有很多副项目因为这样的注意力匮乏而夭折)
后来作者给自己定了几条规则:
我必须每天编写代码。我可以编写文档、博客文章或其他内容,但必须在我编写的代码之外编写。 代码必须是有用的。不要只做调整缩进、重新格式化代码,如果可能的话,也不要进行重构。(这些操作是允许的,但不能作为当天的唯一任务。 所有代码必须在午夜之前编写。 代码必须是开源的,并在 Github 上。
这个方法的精髓就是循序渐进+坚持。把任务拆分到每一天,不冒进,不熬夜,不抽风。
有人总结说,这就是番茄工作法的变体,把每次的任务拆分到每一天。重点在于坚持,难点也在于坚持。
想做到的话,要有一个前提,那就是不长期加班。否则的话,当了十几个小时牛马,哪还有体力再敲半个小时。
还有就是不能想的太多,不能同时干好多事,到头来可能一件都做不好。别问我听谁说的,都是我的经验教训。
还可以看看风筝往期文章
用这个方法,免费、无限期使用 SSL(HTTPS)证书,从此实现证书自由了
古时的风筝,一个程序员,一个写作者。