生于憂患而死于安樂:程序員如何走出安逸環(huán)境
過去的幾個(gè)月里發(fā)生的幾件事情,讓給政府做軟件開發(fā)的人感受到壓力的陡增,從奧巴馬的醫(yī)保網(wǎng)站飽受詬病到美國退伍軍人事務(wù)部官方網(wǎng)站的預(yù)約系統(tǒng)從1985年起就沒有更新過,這些事情讓我回憶起曾經(jīng)作為政府程序員的經(jīng)歷,以及這段經(jīng)歷如何變成一種一直督促我努力工作的思想動力。
我曾在某個(gè)政府部門維護(hù)過一個(gè)寫于1990年代的老系統(tǒng)。當(dāng)一個(gè)新的系統(tǒng)啟動開發(fā)來替代部分的老系統(tǒng)功能時(shí),很多的程序員對開發(fā)新系統(tǒng)的工作產(chǎn)生的 嚴(yán)重的抵制心里。起初,我并不知道為什么他們會有這么大的反感。對這個(gè)系統(tǒng)維護(hù)一段時(shí)間之后,我才慢慢明白,有些程序員是專門維護(hù)系統(tǒng),時(shí)間長達(dá)15年之 久。當(dāng)被邀請開發(fā)新系統(tǒng)時(shí),他們對新事物和新技術(shù)都感到心里沒底。
這讓我警醒:這種事情也會很容易發(fā)生在我的職業(yè)生涯中。我可能會安逸的干著某一種工作,安逸的年年維護(hù)著某個(gè)系統(tǒng)。當(dāng)這個(gè)系統(tǒng)長歲數(shù)時(shí),我對它也變 的更有價(jià)值,我的角色會最終變成專職維護(hù)它。我的余生也就整天執(zhí)行相同的任務(wù),直到退休。而當(dāng)有一天,當(dāng)這個(gè)系統(tǒng)不再被人需要時(shí),我會發(fā)現(xiàn)外面的世界已經(jīng) 日新月異,我需要從頭學(xué)起。
這可不是我希望的生活軌跡;我作為程序員喜歡的方式是學(xué)習(xí)新思路來解決新問題,而不是安于現(xiàn)狀。我們程序員很容易迷住某一項(xiàng)技術(shù)而將全部精力都放在 上面,對于其它的毫不關(guān)心。雖然這樣可以讓你在某一個(gè)領(lǐng)域成為專家,但你卻得不到探索其它領(lǐng)域獲得的更多好處。當(dāng)意識到這種目光狹窄會扼殺我的進(jìn)取心后, 我開始避免讓所有雞蛋都放到一個(gè)籃子里,我開始走出自己職業(yè)仕途中的安逸環(huán)境。
學(xué)習(xí)新技術(shù)
你一直在用PHP編程嗎?嘗試一下使用Rails或ASP.NET。也許嘗試一種新的語言或框架會讓你感到受挫和沮喪,但探索的趣味也就在這里。至少,你應(yīng)該看看同一種功能用其它語言是如何實(shí)現(xiàn)的。如何你只會用錘子,那你眼里所有的東西看起來都像釘子。
不懼怕老代碼
雖然上面我舉例的那個(gè)老代碼的例子有些***,但我并不認(rèn)為所有的老代碼都應(yīng)該立刻替換掉、刪掉。在如今的軟件中,有很多穩(wěn)固的、良好設(shè)計(jì)的程序代碼,它們對那些只會使用集成開發(fā)組件的現(xiàn)代程序員來說是很好的學(xué)習(xí)教材。如果你的公司里有老項(xiàng)目、老代碼需要你去維護(hù),研究一下!你會吃驚于從中學(xué)到那么多的編程知識以及公司的業(yè)務(wù)規(guī)則。還會發(fā)現(xiàn)一些當(dāng)前正在研究的問題,其實(shí)幾年以前就有人已經(jīng)解決了。
了解你的敵人
程序員很容易對某種語言或框架產(chǎn)生宗教式的虔誠。如果你發(fā)現(xiàn)自己曾經(jīng)痛恨或鄙視某種技術(shù)(參看Jeff Atwood的一篇經(jīng)典文章),也許你應(yīng)該強(qiáng)迫自己去研究一下它們。最不濟(jì),至少你能證明討厭它們是有理由的。***的情況是,你會從它們中學(xué)到很多東西。不要讓你的偏見阻擋了你的探索道路。
不要太貪心
程序員很容易被各種層出不窮的新平臺、新語言、新工具、新類庫嚇倒。你很容易產(chǎn)生一種恐懼心理,感覺自己已經(jīng)落后——那些程序員談?wù)摰募夹g(shù)我怎么從 來沒有聽說過?當(dāng)你發(fā)現(xiàn)一種新技術(shù)看起來很有用或很有趣時(shí),做個(gè)筆記,幾周或幾月后在回來看看它,如果人們還在談?wù)撍?,那么,你就?yīng)該進(jìn)一步研究它。事實(shí) 上很多熱門新技術(shù)都是曇花一現(xiàn),你完全可以忽略它,不要讓它們浪費(fèi)了你的大腦。
學(xué)無止境
程序員都有著一種天生的好奇心,這種好奇心引導(dǎo)著我們的編程生涯。寫幾行代碼,裝載到計(jì)算機(jī)里,讓它按照你的思路工作,這是非常有趣的事情。但隨著 開發(fā)的東西越來越多,我們變的越來越忙,這種好奇心會慢慢的減退。我們應(yīng)該時(shí)不時(shí)的用一些新思路挑戰(zhàn)自己,讓自己的思想保持鋒銳和專注,提醒自己為什么當(dāng) 初選擇碼農(nóng)這條道路。