jQuery之父:每天都写点代码

去年秋天,我的“兼职编程项目”遇到了一些问题:要不是从 Khan Academy
的项目里挪出时间来的话,我根本没办法将不理想的进度弥补上。

这些项目遇到了一些严重的问题。之前的工作我主要是在周末,有时是工作日的晚上做。但最终证明,这样的工作安排并不适合我。为了在周末尽可能地尝试完成高质量的工作,我压力巨大(如果我做不到的话,会有很深的挫败感)。这样安排的问题在于周末并不一定都有空–而我也不想周末两天都在写代码(要牺牲掉所有的休闲和乐趣)。

另外一个问题就是隔了一周这么长的时间之后,很容易会忘掉上个周末在做什么、还有什么没做(即使做了备忘也会这样)。更不用说万一某个周末什么代码都没写,那就要隔两周了。间隔太长的话对于项目来说是致命的(我有好多兼职项目就这么挂掉了)。

Jennifer
Dewalt

去年完成了一项创举,她在180天里完成了180个网站。我深受启发,因此我强迫自己采用类似的策略:那就是每一天都要花时间在兼职项目上。

于是我为自己定了一些规矩:

  1. 我必须每天都写点代码。我可以写文档、博文或者其它的东西,但必须是在写了一些代码的基础上。

  2. 写的代码必须是有用的。不调整代码缩进,不转换格式,如果可能的话绝不重构代码。(这些事情都是允许的,但不能作为当天仅有的工作。)

  3. 所有的代码都必须在午夜前完成。

  4. 代码必须是开源的并且放在Github上。

部分规矩执行起来并不是那么严格要求的。并不是说只能在午夜前才能写代码,只是不想熬夜然后写出来的代码却马马虎虎的。代码也并不是一定要开源或者放在Github上。这么做只是为了让我对自己写的代码印象更深刻(以便于重用代码、为之前写的代码创建模块)。

至今为止效果非常好,我已经连续坚持了20个星期了。我写代码的习惯得到了彻底改变,我的生活质量和精神状态也得到了很大的提升,因此我想把这段经历写下来。

习惯的改变带来了以下不少有意思的影响:

最小量的可行代码
每天我都强迫自己至少要写30分钟的代码(时间太少的话真的很难写出有意义的代码,尤其是在花时间记起前一天是在哪里停止的之后)。有些工作日我会多写点时间(通常不超过1小时),而周末的话有时能写一整天。

让编码成为习惯
值得一提的是我并不特别在意上面这张Github工作记录表会给别人什么样的印象。我觉得最重要的一点是:你做出这样的改变是为了你自己的生活,而不是为了让别人对你的工作感到满意。这个道理对于减肥或者健身也适用:如果你不是以提升自己为目的的话,你是不会成功的。

与焦虑做斗争
在作此尝试之前,我经常会很焦虑,总觉得做的工作“不够多”,完成的进度“不够多”(其实这两者都是无法衡量的,因为我的兼职项目都没有特定的最后期限)。我意识到要做出进展的感觉其实和做出实际进展是同样重要的。这让我豁然开朗。自从我每天持续不断地做出进展之后,焦虑感也渐渐消失了。看着每天都有完成工作量,内心感到很平静。再也不会忧心重重地觉得还要完成更多的量才行。

周末
在周末完成工作对于推动工作进度来说曾是十分重要的(那时周末是我唯一能够很好的完成编码工作的时间)。现在情况发生了改变–好的改变。制定好周末必须要完成哪些工作的做法除了最后让我感到失望之外别无他用。我几乎就没完成过周末计划表上的事情,而为此我还不得不拒绝其它我喜欢的周末活动(吃点心、参观博物馆、逛公园、陪妻子等等),就只是为了能完成更多的工作。我深深地觉得,就算兼职项目真的很重要,它们也不应该成为生活的唯一。

后台运行
每天写点兼职项目代码会带来一个有趣的副作用,它让你觉得这些工作都是在大脑的后台运行的。因此,当我在散步、洗澡或者做其它不需要耗费脑力的事情时,我就会在考虑之后我要写什么代码、要怎么解决遇到的问题。这种情况在我一周写一次代码或者隔周写一次代码的时候是没有发生过的。那时时间都被消耗在思考其它事情上,通常是在为还没完成工作而感到焦虑。

上下文交换
中断后又继续开始兼职项目的时候总是会有上下文交换时那样的损耗发生。很不幸的是做了一周其它工作之后再回到之前的项目上来总是会非常困难。而持续的每天工作对减少这种损耗就很有帮助,因为时间间隔要短得多,要记起前一天在做什么很轻松。

工作的平衡
这种改变带来的最重要的一点就是让我学会了如何更好地平衡本职工作、生活和兼职项目。知道我要每一天都花时间在兼职项目上,我就必须更好地平衡分配时间。如果我计划晚上出去并且要很晚才回来,那我就需要在当天早些时候做兼职部分的工作,而将主要的Khan
Academy的工作放到后面再做。另外如果我还没完成工作而又在晚些的时候出去了,那我就得赶紧回家做完它(而不是又错过一天)。我要指出一点,一直以来我都发现能花在业余爱好(譬如雕版印刷)上的时间变少了,但是这对于维持生计来说是很合理的交易。

给别人的印象
这是我要说的改变带来的最重要的一个好处。我妻子理解我每天都得完成一些工作,因而有时活动安排要围绕着这些工作展开。当能够对她说“是的,我们可以出去看电影什么的。但我之后必须要写代码。”,而她也表示理解并且安排时间时会将写代码的事考虑进去,这让我感到非常舒服。

之前写了多少代码?
我不知道过去的几个月里一共写了多少代码。我创建了几个网站、重写了一些架构、写了一堆新的节点模块。写的代码太多了我有时会不记得写了什么–几周前写的东西看起来确实非常遥远了。我对已完成的工作量相当地满足。

我将这种习惯上的改变视为很大的成功,希望我能日复一日地坚持下去。同时我也会尽力向其他想做很多兼职项目人推荐这种策略。不管这对你有没有帮助,都请联系我,我很想听听你们的故事。

摘自http://www.apkbus.com/android-8841-1.html

时间: 2024-10-13 18:52:55

jQuery之父:每天都写点代码的相关文章

jQuery之父:每天写代码

去年秋天我的支线代码项目遇到了一些问题,项目进展不足,而且我没法找到一个完成更多代码的方法. 我主要在周末进行我的支线,当然有时候也在晚上进行.这个方法对我而言效果不佳.我的压力太重了,我需要在周末努力完成尽可能多的工作(如果没做 到,我会为此感到挫败).还有一个问题是我无法保证每个周末都有空,而且我也不想把周末所有的时间都花在编程上(失去一切放松娱乐的机会). 此外,每隔一周进行编码的话,间隙太长了.太容易忘记你正在做什么,或者你还需要做什么了(即使你有笔记).如果你错过了一个周末的话,问题就

Linux之父:除了写内核代码 别的真不会(转)

Linus Torvalds 是 Linux 之父,被誉为活着的传奇. 其实很多人不了解他也并不奇怪,因为人是在是太低调了.现年 46 岁的他每天的工作仍然是编程,领导并推动着 Linux 的发展. 在正在举办的 TED 大会上,Torvalds 谈到,最开始的时候,他并不愿意把 Linux 开源,因为这是一项复杂的工作,并非合作项目,何况他本人一直热爱着编程. 另外一点是,Torvalds 说自己真的不是一个善于交际的人(People Person),性格使然,他就是一个书呆子.独行侠. 好在

jquery 中$('.ui-selecter',this)这样写 是什么意思 求解释 见到都是这种$("div")

如果用$("div")是拿选择所有的div$('.ui-selecter',this)选择的是现在选项中的child里面class是ui-selecter的意思跟jQuery(this).find(".ui-selecter");等同 $('span',this)等同于$(this).find('span') jquery 中$('.ui-selecter',this)这样写 是什么意思 求解释 见到都是这种$("div")

快速开发框架(FDMS)新增1000个对外接口都不须要手写一行代码

一个大型系统难免会跟其它系统有数据交换,这里就要提供数据接口给外部系统. 曾经在一家智能终端设备的公司上班.那段时间的主要工作就是写接口.接口须要与手机.手持设备.系统管理软件等进行数据交换.总结了一下大部分时间都在做重复的工作. 于是我想到可不可以做出一个接口模型来,具体的数据交换怎么实现由用户来定义,那样的话就算要加1000个接口我都不用写一行代码. 看一下下面的图片 一般的操作直接选择普通操作类型即可. 复杂一点的操作可以选择存储过程来处理. 定义完接口以后,调用接口的时候可以按XML,J

天天写业务代码的那些年,我们是如何成长过来的

比起写业务代码更不幸的是,主要工作是修 Bug,bug,buG, bUg. 在一家大的公司里,不同的人总会有不同的运气: 运气好的人遇上一个好的项目,升职加薪,从此就走上了人生的巅峰. 运气差的人摊上一个差的项目,升不了职,少加了薪,并且还获得不了技术成长. 我刚毕业那会儿,所在团队的主要工作是,维护一个『又老又旧』的系统.比起写业务代码更不幸的是,我们的主要工作是修 Bug,bug,buG, bUg. 那一年多里,尽管都是维护旧系统和少量的新需求,我们还是在飞速的成长~~.而来源主要是: 组内

解析jquery获取父窗口的元素

("#父窗口元素ID",window.parent.document); 对应javascript版本为window.parent.document.getElementByIdx_x("父窗口元素ID"): 取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);类似的,取其它窗口的方法大同小异$(sele

jquery 获取父窗口的元素 父窗口 子窗口

$("#父窗口元素ID",window.parent.document);  对应javascript版本为window.parent.document.getElementByIdx_x("父窗口元素ID"):   取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document); 类似的,取其它窗口的方法大同小异$

jquery获取父元素或父节点的方法

jquery获取父元素方法比较多,比如parent(),parents(),closest()这些都能帮你实现查找父元素或节点,下面我们来一一讲解: 先举个例子, <ul class="parent1"> <li><a href="#" id="item1">jquery获取父节点</a></li> <li><a href="#">jquery

使用jquery获取父元素或父节点

使用jquery获取父元素或父节点,比较简单,jquery提供了丰富的方法来让我们使用jquery获取父元素或父节点 jquery获取父元素方法比较多,比如parent(),parents(),closest()这些都能帮你实现查找父元素或节点,下面我们来一一讲解: 先举个例子, <ul class="parent1"> <li><a href="#" id="item1">jquery获取父节点</a&