為什麼程式設計師新手要考慮接單?

發表於2010-11-01

許多年輕有才華的開發員正不斷的尋找新的專案和解決不同的問題,以此來增加經驗。然而,很少有一個單一的環境能夠提供這樣的條件。如果基於遺留系統程式碼(維護原有系統),架構方面沒有多大的想象空間。因此,許多開發人員覺得需要變換工作,到不同的環境去獲取新一階段的學習。

然而,“跳槽“只不過是獲取豐富經驗的途徑之一,我仍提議另一個選擇: 承接網站開發專案或者軟體開發專案。如果你從來沒有接過單,可以參考伯樂線上的這篇文章《如何找到你的第一個客戶》。

回想起來,我能成長為一名成熟的軟體開發人員,最快的一個辦法就是得益於在諮詢公司工作學到的經驗。為什麼是這樣呢?有以下幾個原因:

1. 大量的新專案(以及幾個老專案)

接單過程中,最大的優勢在於多元化的工作機會,接單是一個很好的學習環境。開始新專案和獲得新客戶的機會會很多。事實上,我很少在單一的一個專案上花六個月以上的時間(即使那樣,另一邊我也會同時與其他客戶合作)。

每兩到三個月就能開始一個新專案是很難得的。我總是開玩笑的說,我引以為傲的是六個月內所編輯的程式碼。就是這個原因,我養成了一個習慣,就是從每個專案出錯的地方不斷學習,不斷提高。

老專案的存在(這個也很有幫助),因為它可以讓開發員學會如何維護遺留系統。集體討論如何將單元測試融入Lotus Notes系統(譯註:Lotus Notes是IBM的一個產品)是件困難的,同時也是件值得嘗試的任務。不是每個專案都可以完美地收工,這也就給了你學習寫好維護程式碼的機會。

2. 不同領域的問題

不同的專案涉及不同的領域。建一個餐廳的部落格、然後再去參加一個血壓機器方面的釋出會、再完成一段有關退休基金問題的學習,非常有趣。不要誤會我的意思—這想法可能有些糟糕,但是很具啟發性。

我工作過的一個最冷門的領域,就是有機會編寫一個控制煤炭開採裝置中巨型泥鏟的應用程式。這個領域真棒!實際上是在一個露天的礦場中,頭戴安全帽,為一個移動2000噸的大機器程式設計,多恐怖的工作環境?如果你只在一家以商業領域為中心的公司工作,這種機會就不多見。

3. 程式設計責任

在大多數的諮詢公司裡,你既是開發員和架構師,又是測試人員。儘管測試自己的東西是件“討厭”的事,但是你可以有機會去反思你的架構,從而運用其他你認為更合適的模式和架構,這樣的經歷和機會讓你有難以形容的體驗。

或許最困難的事情是對架構的理解和選擇。什麼時候該用哪些,什麼時候不用,什麼時候需要打破常規的去應用這些想法。不同的專案,不同的領域,給了你一個比大多數工作都要好的增長經驗的機會。

4. 學會與人交往

諮詢工作就是與人打交道,幸運的是,我從來沒遇到過什麼麻煩的傢伙,但是與人交流,是我們要窮盡一生去學習的一種技能。如果你學不會如何與客戶溝通,你可能也不知道與你的老闆,經理,甚至是配偶如何交流。與人交往迫使你走出心中的陰暗角落,即使只是小小的一塊陰影。

成為你工作相關領域的諮詢師顧問。如果你決定成為永遠不和客戶交流的“隱士”,或者只採取同一種處理辦法來解決不同的問題,你應該學不到太多東西。如果你決心提高你溝通技巧,就像一位去實踐不同技術,模式和架構師的佈道師。那麼,諮詢顧問是一個不錯的選擇…

 

英文原文:Code Squeeze  編譯:伯樂線上 – 祝佳

譯文連結:http://blog.jobbole.com/298/

【非特殊說明,轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊,謝謝合作!】

相關文章