jQuery 之父:每天都寫點代碼

jopen 10年前發布 | 5K 次閱讀 jQuery

John Resig 是 jQuery 的創造者和主程,2011年5月 John Resig 從 Mozilla 離職,隨后加入在線教育組織 Khan Academy。2012年國外一位藝術妹紙 Jennifer Dewalt 在180天做了180個“網站”,Jennifer 的堅持鼓舞和啟發了很多技術人員。John Resig 也深受啟發,結合自身情況寫了這篇博文。

去年秋天,我的“兼職編程項目”遇到了一些問題:要不是從 Khan Academy 的項目里挪出時間來的話,我根本沒辦法將不理想的進度彌補上。

這 些項目遇到了一些嚴重的問題。之前的工作我主要是在周末,有時是工作日的晚上做。但最終證明,這樣的工作安排并不適合我。為了在周末盡可能地嘗試 完成高質量的工作,我壓力巨大(如果我做不到的話,會有很深的挫敗感)。這樣安排的問題在于周末并不一定都有空–而我也不想周末兩天都在寫代碼(要犧牲掉 所有的休閑和樂趣)。

另外一個問題就是隔了一周這么長的時間之后,很容易會忘掉上個周末在做什么、還有什么沒做(即使做了備忘也會這樣)。更不用說萬一某個周末什么代碼都沒寫,那就要隔兩周了。間隔太長的話對于項目來說是致命的(我有好多兼職項目就這么掛掉了)。

Jennifer Dewalt 去年完成了一項創舉,她在180天里完成了180個網站。我深受啟發,因此我強迫自己采用類似的策略:那就是每一天都要花時間在兼職項目上。

jQuery 之父:每天都寫點代碼

Illustration bySteven Resig

于是我為自己定了一些規矩:

  1. 我必須每天都寫點代碼。我可以寫文檔、博文或者其它的東西,但必須是在寫了一些代碼的基礎上。

  2. 寫的代碼必須是有用的。不調整代碼縮進,不轉換格式,如果可能的話絕不重構代碼。(這些事情都是允許的,但不能作為當天僅有的工作。)

  3. 所有的代碼都必須在午夜前完成。

  4. 代碼必須是開源的并且放在Github上。

部分規矩執行起來并不是那么嚴格要求的。并不是說只能在午夜前才能寫代碼,只是不想熬夜然后寫出來的代碼卻馬馬虎虎的。代碼也并不是一定要開源或者放在Github上。這么做只是為了讓我對自己寫的代碼印象更深刻(以便于重用代碼、為之前寫的代碼創建模塊)。

至今為止效果非常好,我已經連續堅持了20個星期了。我寫代碼的習慣得到了徹底改變,我的生活質量和精神狀態也得到了很大的提升,因此我想把這段經歷寫下來。

jQuery 之父:每天都寫點代碼

習慣的改變帶來了以下不少有意思的影響:

最小量的可行代碼 每天我都強迫自己至少要寫30分鐘的代碼(時間太少的話真的很難寫出有意義的代碼,尤其是在花時間記起前一天是在哪里停止的之后)。有些工作日我會多寫點時間(通常不超過1小時),而周末的話有時能寫一整天。

讓編碼成為習慣 值得一提的是我并不特別在意上面這張Github工作記錄表會給別人什么樣的印象。我覺得最重要的一點是:你做出這樣的改變是為了你自己的生活,而不是為了讓別人對你的工作感到滿意。這個道理對于減肥或者健身也適用:如果你不是以提升自己為目的的話,你是不會成功的。

與焦慮做斗爭 在 作此嘗試之前,我經常會很焦慮,總覺得做的工作“不夠多”,完成的進度“不夠多”(其實這兩者 都是無法衡量的,因為我的兼職項目都沒有特定的最后期限)。我意識到要做出進展的感覺其實和做出實際進展是同樣重要的。這讓我豁然開朗。自從我每天持續不 斷地做出進展之后,焦慮感也漸漸消失了。看著每天都有完成工作量,內心感到很平靜。再也不會憂心重重地覺得還要完成更多的量才行。

周末 在 周末完成工作對于推動工作進度來說曾是十分重要的(那時周末是我唯一能夠很好的完成編碼工作的時間)。 現在情況發生了改變–好的改變。制定好周末必須要完成哪些工作的做法除了最后讓我感到失望之外別無他用。我幾乎就沒完成過周末計劃表上的事情,而為此我還 不得不拒絕其它我喜歡的周末活動(吃點心、參觀博物館、逛公園、陪妻子等等),就只是為了能完成更多的工作。我深深地覺得,就算兼職項目真的很重要,它們 也不應該成為生活的唯一。

后臺運行 每天寫點兼職項目代碼會帶來一個有趣的副作用,它讓你覺得這些工 作都是在大腦的后臺運行的。因此,當 我在散步、洗澡或者做其它不需要耗費腦力的事情時,我就會在考慮之后我要寫什么代碼、要怎么解決遇到的問題。這種情況在我一周寫一次代碼或者隔周寫一次代 碼的時候是沒有發生過的。那時時間都被消耗在思考其它事情上,通常是在為還沒完成工作而感到焦慮。

上下文交換 中斷后又繼續開始兼職項目的時候總是會有上下文交換時那樣的損耗發生。很不幸的是做了一周其它工作之后再回到之前的項目上來總是會非常困難。而持續的每天工作對減少這種損耗就很有幫助,因為時間間隔要短得多,要記起前一天在做什么很輕松。

工作的平衡 這 種改變帶來的最重要的一點就是讓我學會了如何更好地平衡本職工作、生活和兼職項目。知道我要每一 天都花時間在兼職項目上,我就必須更好地平衡分配時間。如果我計劃晚上出去并且要很晚才回來,那我就需要在當天早些時候做兼職部分的工作,而將主要的 Khan Academy的工作放到后面再做。另外如果我還沒完成工作而又在晚些的時候出去了,那我就得趕緊回家做完它(而不是又錯過一天)。我要指出一點,一直以 來我都發現能花在業余愛好(譬如雕版印刷)上的時間變少了,但是這對于維持生計來說是很合理的交易。

給別人的印象 這是我要說的改變帶來的最重要的一個好處。我妻子理解我每天都得完成一些工作,因而有時活動安排要圍繞著這些工作展開。當能夠對她說“是的,我們可以出去看電影什么的。但我之后必須要寫代碼。”,而她也表示理解并且安排時間時會將寫代碼的事考慮進去,這讓我感到非常舒服。

之前寫了多少代碼? 我不知道過去的幾個月里一共寫了多少代碼。我創建了幾個網站、重寫了一些架構、寫了一堆新的節點模塊。寫的代碼太多了我有時會不記得寫了什么–幾周前寫的東西看起來確實非常遙遠了。我對已完成的工作量相當地滿足。

我將這種習慣上的改變視為很大的成功,希望我能日復一日地堅持下去。同時我也會盡力向其他想做很多兼職項目人推薦這種策略。不管這對你有沒有幫助,都請聯系我,我很想聽聽你們的故事。

原文鏈接: John Resig   翻譯: 伯樂在線 - 伯樂在線讀者
譯文鏈接: http://blog.jobbole.com/66227/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!