去年秋天我的副代码项目遇到了一些问题,项目进度不够,我找不到更多的代码完成的方法(不影响我的工作在可汗学院的前提下)。我主要在周末做支线任务,但有时也在晚上。这种方法对我来说效果不佳。我压力太大,以至于我需要在周末尽可能多地完成工作(如果不这样做,我会很沮丧)。另一个问题是我不能保证每个周末都有空,我也不想把所有的周末都花在编程上(失去所有放松和玩乐的机会)。另外,每隔一周编码一次的时间间隔太长了。很容易忘记您在做什么,或者您还需要做什么(即使您有笔记)。如果你错过了一个周末,这个问题就会加剧,突然间就变成了两周。数周的上下文切换可能是致命的(我有很多副项目因这种类型的注意力不集中而夭折)。JenniferDewalt去年通过在180天内创建了180个网站来自学编码,这启发了我。我决定采用一个简单的策略:每天编写代码。我决定给自己定下一些规则:我必须每天写代码。我可以编写文档、博客或其他任何内容,但这不能代替编写代码。代码必须实际工作。调整缩进和重新格式化不算在内。如果可能,重构不算数。(做这些事情没问题,但这些不可能是一天编码的价值。)所有代码必须在午夜之前完成。代码必须开源并放在Github上。有些规则是任意的。例如,代码不需要在午夜之前编写。但是又担心熬夜导致代码质量变差。同样,代码不必是开源的,也不必放在GitHub上。我这样做是为了强迫自己在编写代码时要小心(考虑可读性,同时更早地考虑模块化)。到目前为止,该策略运作良好。我基本上连续工作了20周。我写这个博客正是因为它彻底改变了我编码的方式,更重要的是,改变了我的生活和思想。这种习惯的改变产生了一些有趣的结果:最小可行代码。我强迫自己每天写代码的时间不少于半小时(如果少于这个时间,就很难写出有价值的代码,尤其是花一点时间回忆前一天写的东西)。工作日有时写的时间长一点(一般不超过一个小时),周末有时写一整天的代码。写代码成为一种习惯。值得一提的是,我并不是特别关心上面的Github图。我认为这是这个实验最有价值的一点:这是你为自己做出的改变,而不是为了满足别人对你工作的评价。节食和锻炼也是如此:如果你不关心提高自己,你永远不会成功。对抗焦虑。在开始这个实验之前,我一直担心没有完成足够的工作或取得足够的进展(工作和进展都很难量化,因为我的业余项目没有死限)。我意识到感觉进步与实际推动工作一样重要。这让我大开眼界。一旦我每天坚持推进项目,我的焦虑就开始消散。我对自己的工作量很满意,而且我不再有那种急于完成项目的强烈冲动。周末。过去,在周末完成工作绝对是前进的关键动力(因为这通常是我推进大量副业项目工作的唯一机会。)现在情况不同了——这是一件好事。期望在一个周末完成一周的所有工作只会让我失望。我很少完成工作,所以我拒绝其他最喜欢的周末活动(吃点心、参观博物馆、去公园、与伴侣共度时光等),以便完成更多工作。深感副业虽然很重要,但不应该是生活的全部。后台处理。每天编写副项目的一个有趣的副作用是你当前的任务一直在你的大脑后台运行。所以当我去散步或洗澡,或做一些其他无意识的活动时,我会考虑我接下来要做什么编码,寻找解决问题的好方法。当我过去一两周编码一次时,情况就不是这样了。时间花在了思考其他事情上,通常是担心无法完成任何副项目。上下文切换。在接手副项目工作时总是有上下文开销。不幸的是,要重温整整一周前的想法是极其困难的。每天做一点有助于此,因为间隔时间短得多,很容易记住我在做什么。平衡工作。这种变化最重要的方面之一是我学会了如何更好地平衡工作、生活和业余项目。我知道我每天都有业余项目要做,所以我需要更好地管理我的时间。如果我打算晚上出去晚回家,我需要在早上做副业,然后再开始我的主要业务可汗学院。同样,如果我出去了,但我还没有完成我的工作而且已经很晚了,我需要尽快回家完成它(以免错过这一天)。我应该指出,我发现自己花在业余爱好(如木版画)上的时间更少了,但这是一个合理的代价,我不得不接受。对外交流。与外界交流你的新习惯是非常有益的。我的合作伙伴明白每天都必须完成工作,因此有时需要相应地调整活动时间表。这让我很容易说,“是的,我们可以出去/看电影/等等。但我需要稍后编写代码。”我的合作伙伴会理解我并在安排活动时考虑到这一点。我要写多少代码?我很难相信我在过去几个月里写了多少代码。我建立了一些新网站,重写了一些框架,并创建了很多节点模块。我写了太多的代码,以至于有时我会忘记我做了什么——几周前的工作感觉就像是遥远的记忆。我非常非常高兴我能写这么多代码。我认为这种习惯改变是一个巨大的成功。我希望我能继续保持这个习惯。与此同时,我会尽我所能向任何希望完成大量副项目的人推荐这个策略。告诉我这个策略是否对你有用。我很想从你那里听到一些有趣的事情。关于作者JohnResig是jQuery之父,也是《ProJavascriptTechniquesandSecretsoftheJavaScriptNinja》一书的作者。他目前领导可汗学院的发展。原文WriteCodeEveryDay翻译SegmentFault
