jQuery 之父:堅持每天寫代碼

來源:互聯網
上載者:User

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

我主要在周末進行我的支線,當然有時候也在晚上進行。這個方法對我而言效果不佳。我的壓力太重了,我需要在周末努力完成儘可能多的工作如果沒做 到,我會為此感到挫敗)。還有一個問題是我無法保證每個周末都有空,而且我也不想把周末所有的時間都花在編程上失去一切放鬆娛樂的機會)。

此外,每隔一周進行編碼的話,間隙太長了。太容易忘記你正在做什麼,或者你還需要做什麼了即使你有筆記)。如果你錯過了一個周末的話,問題就更嚴重了,間隔一下子變成兩周了。多周的環境切換可能是致命的我有很多支線項目因為這類注意力缺乏而死亡了)。

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

我決定為自己定下一些規則:

  1. 每天必須寫代碼。我可以寫文檔、寫部落格或者寫其他東西,但是這些不能代替寫代碼。

  2. 代碼必須是實際起作用的。調整縮排、重新排版不算。如果有可能,重構也不算。可以進行這些事情,但這些不能是一天唯一的編碼。)

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

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

有些規則比較武斷。比如代碼其實不用在午夜前寫完的。但我擔心熬夜導致代碼品質下降。同樣,代碼也不用開源,或者放在GitHub上。我這麼做是想強迫自己寫代碼的時候上點心考慮可讀性,同時較早地考慮模組化)。

到目前為止這個策略很有效。我基本保持了20周的連續工作。我之所以寫這篇部落格,正是因為它完全改變了我編寫代碼的方式,更重要的是影響了我生活和心智。

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

最小可行的編碼。 我強迫自己每天花不少於半個小時來寫代碼如果少於這個時間就很難寫出有價值的代碼了,特別是回憶前一天寫了什麼還要花一點時間)。工作日的時候我有時寫得多一點一般不超過一個小時),周末我有時整天寫代碼。

寫代碼成為習慣。 值得一提的是我並不是特別在乎上面的Github圖形。我覺得這是這個實驗最值得借鑒的一點:這是你為自己做的一個改變,而不是為了滿足別人對你工作的評價。節食和鍛煉也是一個道理:如果你不在乎提升自己,那麼你永遠都不會取得成功。

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

周末。 以前,在周末完成工作絕對是前進的關鍵動力因為通常而言這是我唯一大量推進支線項目工作的機會。)現在情況不一樣了——這是件好事。期望在一個周末完成 一周的所有工作只會讓我失望。我極少很完成工作,因此為了完成更多工作而拒絕了其他喜歡的周末活動例如吃 dim sum,參觀博物館,去公園遊玩,陪伴我的伴侶等)。我深深地感到,雖然支線項目是非常重要的,但是它們不應該是生活的全部。

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

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

平衡工作。 這個改變最重要的方面之一是我已經簡單地學會了如何更好地平衡工作、生活和支線項目。我知道自己每天都要做支線項目,因此我需要更好地行政時間。如果我計 劃晚上出去,並且很晚才能回家,那麼我需要在早上為支線項目工作,在開始為我主業Khan Academy工作之前。同樣的,如果我在外面,而我還沒有完成我的工作,時間已經很晚了,那麼我需要儘快趕回家去完成工作以免錯過一天)。我需要指出 的是我發現自己把更少的時間花在愛好上了例如木版畫),但是這是一個合理的代價,我得接受這個。

對外溝通。 跟外界溝通自己的新習慣是很有好處的。我的伴侶理解每都必須完成工作,因此有活動安排有時需要據此作出調整。這樣我就可以很方便地說:“是的,我們可以出去/看個電影/等等。但是我之後需要寫代碼。”我的伴侶會理解我,並在安排活動時考慮到這點。

我寫了多少代碼? 我很難相信自己在過去的幾個月寫了這麼多的代碼。我建立了幾個網站,重寫了一些架構,並建立了大量node模組。我寫了如此之多的代碼以至於我有時我都忘記自己做了寫什麼——幾周前的工作感覺是很久遠的記憶。我非常非常高興自己能寫這麼多代碼。

我認為這個習慣的改變是一個巨大的成功。我希望自己能持續保持這個習慣。同時,我儘力向其他希望能完成大量的支線項目的人推薦這個策略。告訴我這個策略對你而言是有效還是無效。我很希望能從你那裡聽到一些有意思的東西。

關於作者

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

原文 Write Code Every Day

翻譯 SegmentFault

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.