你只在早上9點(diǎn)至晚上5點(diǎn)間編碼,卻擔(dān)心這樣不夠好嗎?你看見(jiàn)其他的程序員工作于個(gè)人項(xiàng)目或開(kāi)源項(xiàng)目,參與編程馬拉松,并花費(fèi)所有的業(yè)余時(shí)間編寫(xiě)軟件了嗎?你可能會(huì)認(rèn)為只在自己的工作時(shí)間編碼,只朝九晚五地編寫(xiě)軟件,將不會(huì)非常出色。你可能認(rèn)為,只有那些連吃飯、睡覺(jué)和呼吸間都在編碼的人才能脫穎而出。但實(shí)際上堅(jiān)持一周40小時(shí)的工作時(shí)間依然可以讓你成為一個(gè)有價(jià)值的、熟練的程序員。
工作于個(gè)人或開(kāi)源軟件項(xiàng)目不會(huì)讓你自然而然地成為一個(gè)更好的程序員。編程馬拉松甚至可能會(huì)成為負(fù)面影響,如果它們讓你覺(jué)得構(gòu)建軟件有任意期限,同時(shí)疲憊是生產(chǎn)出任何有價(jià)值的東西的一種合理途徑的話。在你富有成效的工作時(shí)間中有很多固有的限制。如果你不喜歡回家以后再花費(fèi)時(shí)間去編碼,那就不要過(guò)于疲憊,做事也不要拖三拖四和三心二意。
在業(yè)余項(xiàng)目上花費(fèi)時(shí)間確實(shí)有一定的價(jià)值,但是很有用的結(jié)果不僅僅是實(shí)踐更是掌握了更多的知識(shí)。建立軟件項(xiàng)目往往使用較老的技術(shù)和工藝,因?yàn)檫@些工藝技術(shù)已經(jīng)存在了一段時(shí)間。你從工作的其他軟件項(xiàng)目和與工作之外的開(kāi)發(fā)人員交流中得到的有價(jià)值的知識(shí)是:
1. 更廣泛的技術(shù)和工具。
2. 新的技術(shù)和進(jìn)程。也許你的公司沒(méi)有做太多的測(cè)試,但你可以在其他地方了解測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。
擁有廣泛的工具和技術(shù)無(wú)論是對(duì)于你現(xiàn)在的工作還是想找一份新工作,都是一個(gè)寶貴的技能。但實(shí)際的編碼并不是獲得這方面知識(shí)的好方法。因?yàn)槠鋵?shí)你并不需要使用新的工具和技術(shù),并且無(wú)論怎么樣你都不會(huì)真正有時(shí)間去詳細(xì)學(xué)習(xí)所有的工具和所有的技術(shù)。你只能通過(guò)了解現(xiàn)在流行什么工具和技術(shù),這些工具和技術(shù)能做什么,以及什么情況下能發(fā)揮它們zui大作用來(lái)獲取zui有價(jià)值的內(nèi)容。如果你發(fā)現(xiàn)了一個(gè)能立即應(yīng)用到工作中的新工具,那么你可以在工作中學(xué)習(xí)這個(gè)新工具,如果不能應(yīng)用到工作中,那么你只能在大腦中歸類等以后來(lái)使用它。
與在業(yè)余時(shí)間編碼相比,通過(guò)直接專注于獲取新的工具和技術(shù)方面的知識(shí),也可以獲得相同的好處,并且更有效率。而且,由于這方面的知識(shí)將有利于你的雇主,所以你不需要在上面花費(fèi)顯著的時(shí)間,就可以在工作時(shí)間內(nèi)獲取這方面的知識(shí)。你覺(jué)得每一天都沒(méi)有真正空閑的時(shí)間,但你總有一段時(shí)間是無(wú)所事事耗費(fèi)在互聯(lián)網(wǎng)上的。也許你現(xiàn)在正在網(wǎng)上沖浪!你可以利用這段時(shí)間來(lái)擴(kuò)大你的知識(shí)面。
每周你都應(yīng)該安排一個(gè)小時(shí)的時(shí)間去學(xué)習(xí)新的工具和技術(shù)。選擇一個(gè)特定的時(shí)間可以幫助你養(yǎng)成一個(gè)習(xí)慣。就我個(gè)人而言,我會(huì)選擇在周五下午,因?yàn)樵谶@個(gè)時(shí)間段我反正也沒(méi)什么可做的。不要因?yàn)轫?xiàng)目期限的逼近或感到疲勞而跳過(guò)這個(gè)學(xué)習(xí)時(shí)間。你會(huì)在截止時(shí)間內(nèi)做的更好,也不會(huì)那么累,如果你知道正確的工具和技術(shù)來(lái)快速解決工作中遇到的問(wèn)題的話。