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