jQuery 之父:天天寫代碼

去年秋天個人支線代碼項目 遇到了一些問題,項目進展不足,並且我無法找到一個完成更多代碼的方法(在不影響我在Khan Academy方面的工做的前提下)。node

我主要在週末進行個人支線,固然有時候也在晚上進行。這個方法對我而言效果不佳。個人壓力過重了,我須要在週末努力完成儘量多的工做(若是沒作 到,我會爲此感到挫敗)。還有一個問題是我沒法保證每一個週末都有空,並且我也不想把週末全部的時間都花在編程上(失去一切放鬆娛樂的機會)。jquery

此外,每隔一週進行編碼的話,間隙太長了。太容易忘記你正在作什麼,或者你還須要作什麼了(即便你有筆記)。若是你錯過了一個週末的話,問題就更嚴重了,間隔一會兒變成兩週了。多周的上下文切換多是致命的(我有不少支線項目由於這類注意力缺少而死亡了)。git

Jennifer Dewalt 去年經過在 180 天建立 180 個網站的方式來自學編程,她的作法啓發了我。我決定採用一個簡單的策略:天天編碼。github

我決定爲本身定下一些規則:編程

  1. 天天必須寫代碼。我能夠寫文檔、寫博客或者寫其餘東西,可是這些不能代替寫代碼。segmentfault

  2. 代碼必須是實際起做用的。調整縮進、從新排版不算。若是有可能,重構也不算。(能夠進行這些事情,但這些不能是一天惟一的編碼。)框架

  3. 全部代碼必須在午夜以前完成。jsp

  4. 代碼必須是開源的,放在Github上。ide

有些規則比較武斷。好比代碼其實不用在午夜前寫完的。但我擔憂熬夜致使代碼質量降低。一樣,代碼也不用開源,或者放在GitHub上。我這麼作是想強迫本身寫代碼的時候上點心(考慮可讀性,同時較早地考慮模塊化)。模塊化

到目前爲止這個策略頗有效。我基本保持了20周的連續工做。我之因此寫這篇博客,正是由於它徹底改變了我編寫代碼的方式,更重要的是影響了我生活和心智。

這個習慣的改變產生了一些有趣的結果:

最小可行的編碼。 我強迫本身天天花很多於半個小時來寫代碼(若是少於這個時間就很難寫出有價值的代碼了,特別是回憶前一天寫了什麼還要花一點時間)。工做日的時候我有時寫得多一點(通常不超過一個小時),週末我有時成天寫代碼。

寫代碼成爲習慣。 值得一提的是我並非特別在意上面的Github圖形。我以爲這是這個實驗最值得借鑑的一點:這是你爲本身作的一個改變,而不是爲了知足別人對你工做的評價。節食和鍛鍊也是一個道理:若是你不在意提高本身,那麼你永遠都不會取得成功。

與焦慮做鬥爭。 在開始這個實驗以前,我時常爲沒有完成足夠的工做或取得足夠進展而感到焦慮(工做和進展都難以量化,由於個人支線項目沒有死限)。我意識到,感受到進展和 實際推動工做一樣重要。這令我大開眼界。一旦我天天持續地推動項目,個人焦慮就開始消散了。我對本身的工做量很心安,我再也沒有那種難以承受的渴望,想要 疾風驟雨式地推動項目的渴望。

週末。 之前,在週末完成工做絕對是前進的關鍵動力(由於一般而言這是我惟一大量推動支線項目工做的機會。)如今狀況不同了——這是件好事。指望在一個週末完成 一週的全部工做只會讓我失望。我極少很完成工做,所以爲了完成更多工做而拒絕了其餘喜歡的週末活動(例如吃 dim sum,參觀博物館,去公園遊玩,陪伴個人伴侶等)。我深深地感到,雖然支線項目是很是重要的,可是它們不該該是生活的所有。

後臺處理。 天天編寫支線項目代碼的一個有趣的反作用是你當前的任務時常在你大腦的後臺運行。所以當我去散步或沐浴的時候,或者進行其餘不費腦的活動的時候,我在思考 我接下來將作哪些編碼,尋找解決問題的好方法。我之前一週或兩週編碼一次的時候可不是這樣。當時時間被花費在思考其餘一些事情上,一般是在爲無法完成任何 支線項目而感到焦慮。

上下文切換。 拾起支線項目工做的時候總會有上下文開銷的。很不幸,重拾整整一週前的思考是極其困難的。天天作一點對此頗有幫助,由於間隔時間大大縮短了,讓我很容易想起在作什麼。

平衡工做。 這個改變最重要的方面之一是我已經簡單地學會了如何更好地平衡工做、生活和支線項目。我知道本身天天都要作支線項目,所以我須要更好地管理時間。若是我計 劃晚上出去,而且很晚才能回家,那麼我須要在早上爲支線項目工做,在開始爲我主業Khan Academy工做以前。一樣的,若是我在外面,而我尚未完成個人工做,時間已經很晚了,那麼我須要儘快趕回家去完成工做(以避免錯過一天)。我須要指出 的是我發現本身把更少的時間花在愛好上了(例如木版畫),可是這是一個合理的代價,我得接受這個。

對外溝通。 跟外界溝通本身的新習慣是頗有好處的。個人伴侶理解每都必須完成工做,所以有活動安排有時須要據此做出調整。這樣我就能夠很方便地說:「是的,咱們能夠出去/看個電影/等等。可是我以後須要寫代碼。」個人伴侶會理解我,並在安排活動時考慮到這點。

我寫了多少代碼? 我很難相信本身在過去的幾個月寫了這麼多的代碼。我新建了幾個網站,重寫了一些框架,並建立了大量node模塊。我寫了如此之多的代碼以致於我有時我都忘記本身作了寫什麼——幾周前的工做感受是好久遠的記憶。我很是很是高興本身能寫這麼多代碼。

我認爲這個習慣的改變是一個巨大的成功。我但願本身能持續保持這個習慣。同時,我盡力向其餘但願能完成大量的支線項目的人推薦這個策略。告訴我這個策略對你而言是有效仍是無效。我很但願能從你那裏聽到一些有意思的東西。

關於做者

John Resig, jQuery之父,同時也是Pro Javascript TechniquesSecrets of the JavaScript Ninja的做者。他目前主持 Khan Academy 的開發工做。

相關文章
相關標籤/搜索