坚持每天写副业代码

坚持每天写副业代码

原文

John Resig这篇blog,如何坚持自己的副业代码,阅读后非常受益。
程序员尤其是在国内,大多会遇到35岁的职业危机。
在努力工作之余,常常看下这篇文章,
为自己将来能在失业的情况下依然能有一个副业来努力,
也许并不是编程,也可以是其他的爱好,但一定要坚持。

去年秋天,我在编码方面的工作进入了困境。我没有取得足够的进展,而且我无法在不牺牲我在可汗学院(Khan Academy)的有效工作能力的情况下找到一种方法来完成更多工作。

我的副业项目的工作方式有几个主要问题。我主要是在周末工作,有时是在一周的晚上。事实证明,这种策略对我来说并不奏效。我背负着难以置信的压力,试图在周末完成尽可能多的高质量的工作(如果我无法完成,就感觉是失败)。这是一个问题,因为不能保证每个周末都是自由的–也不能保证我想在两天内整天编程(消除任何放松或做任何有趣事情的机会)。

还有一个问题是,间隔一周的时间来处理一些代码是很漫长的,很容易忘记你在做什么,或者你上一次做到了哪里(即使你记了笔记)。更不用说如果你错过了一个周末,你最终会有两个星期的差距。这种大规模的多周背景转换可能是致命的(我有许多副业项目由于这样的注意力饥饿而死亡)。

詹妮弗-德瓦特( Jennifer Dewalt)去年完成了一项令人难以置信的工作,她通过在180天内建立180个网站来教自己编程,受此启发,我觉得有必要尝试类似的策略:每天都在做我的副业项目。

https://i.imgur.com/SsevWYY.jpg

我决定为自己制定几条规则。

  1. 我必须每天写代码。我可以写文档,或博客文章,或其他东西,但它必须是在我写的代码之外。
  2. 它必须是有用的代码。不能调整缩进,不能重新格式化代码,如果可能的话,也不能重构。(所有这些事情都是允许的,但不能作为当天的独家工作)。
  3. 所有的代码都必须在午夜之前写好。
  4. 代码必须是开源的,并且在Github上。

其中一些规则是任意的。严格来说,代码不需要在当天的午夜前写好,但我想避免熬夜写马虎的代码。代码也不需要是开源的或在Github上的。这只是迫使我更加注意我所写的代码(考虑到可重用性并决定在过程中更早地创建模块)。

到目前为止,我已经非常成功了,我已经接近连续工作20周了。我想把它写下来,因为它完全改变了我的编码方式,对我的生活和心理产生了实质性的影响。

img

考虑到这一点,由于这种习惯的改变,发生了许多有趣的事情。

最小可行代码。我被迫每天写不少于30分钟的代码。(在更短的时间内写出有意义的代码真的很困难,尤其是在记住了前一天你离开的地方之后)。有些工作日我的工作时间会多一点(通常不超过一小时),在周末我有时能工作一整天。

把编码形成习惯。需要注意的是,我并不特别关心上述Github图表的外在看法。我认为这是这个实验中最重要的收获:这是关于你为自己的生活所做的改变,而不是为了满足别人对你工作的看法而做的改变。任何形式的节食或锻炼也是如此:如果你不关心改善自己,那么你就永远不会真正成功。

与焦虑作斗争。在开始这项实验之前,我经常会因为没有完成 “足够的 “工作或没有取得 “足够的 “进展而感到高度焦虑(由于我的副业项目没有具体的最后期限,这两者都是相对无法量化的)。我意识到,取得进展的感觉与取得实际进展同样重要。这让我大开眼界。一旦我开始每天取得持续的进展,焦虑就开始融化了。我对自己所完成的工作量感到很平静,我不再有急于完成任何工作的强烈愿望。

周末。在周末完成工作,对取得前进的动力绝对是至关重要的(因为通常情况下,只有在周末我才能完成重要的辅助项目编码)。现在情况不是这样了–这是一件好事。在周末期间,我对自己应该完成的工作建立了为期一周的期望,但最终却让我失望了。我很少能够完成所有我想要的工作,这迫使我拒绝其他我喜欢的周末活动(吃点心、参观博物馆、去公园、与我的伙伴共度时光等等),而选择完成更多的工作。我强烈地感觉到,虽然副业真的很重要,但它们不应该被排除在一般的生活之外。

背景处理。每天写副业代码的一个有趣的副作用是,你当前的任务经常在你的脑海中运行。因此,当我去散步,或洗澡,或任何其他我参加的非用脑活动时,我都在想我以后要编码的内容,并找到解决这个问题的好方法。当我每周或每隔一周进行一次编码工作时,这种情况并没有发生。相反,这些时间被消耗在思考其他任务上,或者,通常被对没有完成任何副业的焦虑所取代。

情境转换。在恢复一个副项目的工作时,总是会有一个上下文转换的成本。不幸的是,在整整一个星期的工作中,要恢复对一个项目的思考是非常困难的。每日工作在这方面很有帮助,因为工作之间的间隔时间更短,使我更容易记住我在做什么。

工作平衡。这一变化最重要的一个方面是在简单地学习如何更好地平衡工作/生活/副业项目。由于知道我每天都要为这个项目工作,我必须更好地平衡我的时间。如果我被安排在晚上外出,直到很晚才回来,那么我就需要在一天中的早期进行我的副业,然后再开始我在可汗学院的主要工作。此外,如果我还没有完成我的工作,而我出去得很晚,那么我就会赶紧回家完成它(而不是错过一天)。我应该注意到,我发现我花在爱好上的时间更少了(如木版画),但这是一个合理的折衷,我需要接受。

外在的感知。这一切都有一个额外的好处,那就是将这个新的习惯对外交流。我的伙伴明白我每天都必须完成这项工作,因此有时必须围绕它安排活动。能够说 “是的,我们可以出去玩/看电影/等等,但我必须在晚些时候完成我的编码”,并得到理解和考虑,这是相当令人安慰的。

写了多少代码?我很难相信在过去几个月里我写了多少代码。我创建了几个新的网站,重写了一些框架,并创建了大量的新节点模块。我写了这么多东西,有时会忘记我所做的事情–甚至几周前的工作都好像是遥远的记忆。我对我所完成的工作量感到非常满意。

我认为这种习惯的改变是一个巨大的成功,并希望在我力所能及的情况下继续下去。同时,我将尽我所能向其他希望完成大量副业的人推荐这一策略。如果这个技巧对你有用,或者没用,请告诉我(Let me know)–我非常想听到更多的轶事!

发表评论

邮箱地址不会被公开。 必填项已用*标注