掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
去年秋天我的支線代碼項(xiàng)目 遇到了一些問(wèn)題,項(xiàng)目進(jìn)展不足,而且我沒(méi)法找到一個(gè)完成更多代碼的方法(在不影響我在Khan Academy方面的工作的前提下)。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供安龍網(wǎng)站建設(shè)、安龍做網(wǎng)站、安龍網(wǎng)站設(shè)計(jì)、安龍網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、安龍企業(yè)網(wǎng)站模板建站服務(wù),十多年安龍做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
我主要在周末進(jìn)行我的支線,當(dāng)然有時(shí)候也在晚上進(jìn)行。這個(gè)方法對(duì)我而言效果不佳。我的壓力太重了,我需要在周末努力完成盡可能多的工作(如果沒(méi)做 到,我會(huì)為此感到挫?。?。還有一個(gè)問(wèn)題是我無(wú)法保證每個(gè)周末都有空,而且我也不想把周末所有的時(shí)間都花在編程上(失去一切放松娛樂(lè)的機(jī)會(huì))。
此外,每隔一周進(jìn)行編碼的話,間隙太長(zhǎng)了。太容易忘記你正在做什么,或者你還需要做什么了(即使你有筆記)。如果你錯(cuò)過(guò)了一個(gè)周末的話,問(wèn)題就更嚴(yán)重了,間隔一下子變成兩周了。多周的上下文切換可能是致命的(我有很多支線項(xiàng)目因?yàn)檫@類注意力缺乏而死亡了)。
Jennifer Dewalt 去年通過(guò)在 180 天創(chuàng)建 180 個(gè)網(wǎng)站的方式來(lái)自學(xué)編程,她的做法啟發(fā)了我。我決定采用一個(gè)簡(jiǎn)單的策略:每天編碼。
我決定為自己定下一些規(guī)則:
每天必須寫代碼。我可以寫文檔、寫博客或者寫其他東西,但是這些不能代替寫代碼。
代碼必須是實(shí)際起作用的。調(diào)整縮進(jìn)、重新排版不算。如果有可能,重構(gòu)也不算。(可以進(jìn)行這些事情,但這些不能是一天***的編碼。)
所有代碼必須在午夜之前完成。
代碼必須是開(kāi)源的,放在Github上。
有些規(guī)則比較武斷。比如代碼其實(shí)不用在午夜前寫完的。但我擔(dān)心熬夜導(dǎo)致代碼質(zhì)量下降。同樣,代碼也不用開(kāi)源,或者放在GitHub上。我這么做是想強(qiáng)迫自己寫代碼的時(shí)候上點(diǎn)心(考慮可讀性,同時(shí)較早地考慮模塊化)。
到目前為止這個(gè)策略很有效。我基本保持了20周的連續(xù)工作。我之所以寫這篇博客,正是因?yàn)樗耆淖兞宋揖帉懘a的方式,更重要的是影響了我生活和心智。
這個(gè)習(xí)慣的改變產(chǎn)生了一些有趣的結(jié)果:
最小可行的編碼。 我強(qiáng)迫自己每天花不少于半個(gè)小時(shí)來(lái)寫代碼(如果少于這個(gè)時(shí)間就很難寫出有價(jià)值的代碼了,特別是回憶前一天寫了什么還要花一點(diǎn)時(shí)間)。工作日的時(shí)候我有時(shí)寫得多一點(diǎn)(一般不超過(guò)一個(gè)小時(shí)),周末我有時(shí)整天寫代碼。
寫代碼成為習(xí)慣。 值得一提的是我并不是特別在乎上面的Github圖形。我覺(jué)得這是這個(gè)實(shí)驗(yàn)最值得借鑒的一點(diǎn):這是你為自己做的一個(gè)改變,而不是為了滿足別人對(duì)你工作的評(píng)價(jià)。節(jié)食和鍛煉也是一個(gè)道理:如果你不在乎提升自己,那么你永遠(yuǎn)都不會(huì)取得成功。
與焦慮作斗爭(zhēng)。 在開(kāi)始這個(gè)實(shí)驗(yàn)之前,我時(shí)常為沒(méi)有完成足夠的工作或取得足夠進(jìn)展而感到焦慮(工作和進(jìn)展都難以量化,因?yàn)槲业闹Ь€項(xiàng)目沒(méi)有死限)。我意識(shí)到,感覺(jué)到進(jìn)展和 實(shí)際推進(jìn)工作同樣重要。這令我大開(kāi)眼界。一旦我每天持續(xù)地推進(jìn)項(xiàng)目,我的焦慮就開(kāi)始消散了。我對(duì)自己的工作量很心安,我再也沒(méi)有那種難以承受的渴望,想要 疾風(fēng)驟雨式地推進(jìn)項(xiàng)目的渴望。
周末。 以前,在周末完成工作絕對(duì)是前進(jìn)的關(guān)鍵動(dòng)力(因?yàn)橥ǔ6赃@是我***大量推進(jìn)支線項(xiàng)目工作的機(jī)會(huì)。)現(xiàn)在情況不一樣了——這是件好事。期望在一個(gè)周末完成 一周的所有工作只會(huì)讓我失望。我極少很完成工作,因此為了完成更多工作而拒絕了其他喜歡的周末活動(dòng)(例如吃 dim sum,參觀博物館,去公園游玩,陪伴我的伴侶等)。我深深地感到,雖然支線項(xiàng)目是非常重要的,但是它們不應(yīng)該是生活的全部。
后臺(tái)處理。 每天編寫支線項(xiàng)目代碼的一個(gè)有趣的副作用是你當(dāng)前的任務(wù)時(shí)常在你大腦的后臺(tái)運(yùn)行。因此當(dāng)我去散步或沐浴的時(shí)候,或者進(jìn)行其他不費(fèi)腦的活動(dòng)的時(shí)候,我在思考 我接下來(lái)將做哪些編碼,尋找解決問(wèn)題的好方法。我以前一周或兩周編碼一次的時(shí)候可不是這樣。當(dāng)時(shí)時(shí)間被花費(fèi)在思考其他一些事情上,通常是在為沒(méi)法完成任何 支線項(xiàng)目而感到焦慮。
上下文切換。 拾起支線項(xiàng)目工作的時(shí)候總會(huì)有上下文開(kāi)銷的。很不幸,重拾整整一周前的思考是極其困難的。每天做一點(diǎn)對(duì)此很有幫助,因?yàn)殚g隔時(shí)間大大縮短了,讓我很容易想起在做什么。
平衡工作。 這個(gè)改變最重要的方面之一是我已經(jīng)簡(jiǎn)單地學(xué)會(huì)了如何更好地平衡工作、生活和支線項(xiàng)目。我知道自己每天都要做支線項(xiàng)目,因此我需要更好地管理時(shí)間。如果我計(jì) 劃晚上出去,并且很晚才能回家,那么我需要在早上為支線項(xiàng)目工作,在開(kāi)始為我主業(yè)Khan Academy工作之前。同樣的,如果我在外面,而我還沒(méi)有完成我的工作,時(shí)間已經(jīng)很晚了,那么我需要盡快趕回家去完成工作(以免錯(cuò)過(guò)一天)。我需要指出 的是我發(fā)現(xiàn)自己把更少的時(shí)間花在愛(ài)好上了(例如木版畫),但是這是一個(gè)合理的代價(jià),我得接受這個(gè)。
對(duì)外溝通。 跟外界溝通自己的新習(xí)慣是很有好處的。我的伴侶理解每都必須完成工作,因此有活動(dòng)安排有時(shí)需要據(jù)此作出調(diào)整。這樣我就可以很方便地說(shuō):“是的,我們可以出去/看個(gè)電影/等等。但是我之后需要寫代碼。”我的伴侶會(huì)理解我,并在安排活動(dòng)時(shí)考慮到這點(diǎn)。
我寫了多少代碼? 我很難相信自己在過(guò)去的幾個(gè)月寫了這么多的代碼。我新建了幾個(gè)網(wǎng)站,重寫了一些框架,并創(chuàng)建了大量node模塊。我寫了如此之多的代碼以至于我有時(shí)我都忘記自己做了寫什么——幾周前的工作感覺(jué)是很久遠(yuǎn)的記憶。我非常非常高興自己能寫這么多代碼。
我認(rèn)為這個(gè)習(xí)慣的改變是一個(gè)巨大的成功。我希望自己能持續(xù)保持這個(gè)習(xí)慣。同時(shí),我盡力向其他希望能完成大量的支線項(xiàng)目的人推薦這個(gè)策略。告訴我這個(gè)策略對(duì)你而言是有效還是無(wú)效。我很希望能從你那里聽(tīng)到一些有意思的東西。
John Resig, jQuery之父,同時(shí)也是Pro Javascript Techniques和Secrets of the JavaScript Ninja的作者。他目前主持 Khan Academy 的開(kāi)發(fā)工作。
原文 Write Code Every Day
翻譯 SegmentFault

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流