1. 程式人生 > >程式設計師:孤獨的人是可恥的!

程式設計師:孤獨的人是可恥的!

喜愛軟體開發的人,是不是那些寧可與計算機打交道也不願意與人打交道的反社會、反人類的人呢?如果是這樣的話,隨之而來的問題是,所有的軟體專案最好都由一個人來獨自完成嗎?


對於第一個問題,可以勉強回答“是”;但對於第二個問題,我們要響亮而又堅決地回答“不”。網上有一篇很不錯的文章,名叫“Creating My Own Personal Hell”(打造我自己的地獄),它解釋了獨自程式設計的危害性,讀後讓我非常震驚:

有些人宣稱,“獨自工作”為建立起自己的工作流程提供了極好的機會。但是,根據我的經驗,在團隊只有一個人的時候是沒有流程可言的。沒有任何東西可以幫你抵擋住如潮水般湧來的大量工作。當你的程式碼太急於求成時,沒有人去糾正你的錯誤。沒有人檢查你的程式碼。沒有人保證你的程式碼能準時提交、打好標籤、進行常規的單元測試。沒有人保證你遵循了某個編碼標準。沒有人督促你及時修復程式碼裡的缺陷。沒有人檢驗你是否把一個實際存在的問題標註成了“無法重現”。沒有人複核你的估算,在你玩忽職守的時候把你抓回來。

沒有人在你生病時或者出差時接過你的工作。沒有人在你工作繁重時幫助你,在你深陷於騷擾電話、無聊會議、還有在最後關頭忽然被扔過來(但需要立即解決)的雜碎任務時,沒有人能拉你一把。沒有人忽然有奇思妙想,幫助你走出困境。沒有人在設計、架構或技術上與你合作。你在一個真空中工作;在真空中,沒有人能聽到你絕望的尖叫。

如果你讀到了這些內容,請以此為鑑。如果某個公司只招你作為唯一的一位開發者,在你答應他們之前請三思。那根本就是另一種地獄。如果有機會的話,請選擇那些能與其他開發者一起工作的職位,這樣你至少可以在與別人一起工作的過程中得到指導,這有助於你發展自身的技能,讓你在技術方面與時俱進。

對於在現實的荒漠中被很多無能的同事和糟糕的管理人員包圍而感覺束手束腳、甚至感到絕望的很多軟體開發者來說,獨自工作是一個非常大的誘惑。獨自工作意味著對於一個軟體專案的完全掌控,在方方面面擁有最終的決定權。但是,與授權別人一起開發相比,完全自己一個人開發是極其脆弱的。就像是一個移動中的海市蜃樓,它給你極具誘惑力的希望和慰藉,但當你靠近它的時候,你會變得比一開始更加飢渴和虛弱。

像很多程式設計師一樣,由於性格內向,我在小時候就被計算機所吸引。與沒有明確的對和錯、到處充斥著不合理但又無法解釋的人類世界和社會相比,在計算機的世界裡,是那麼的平靜,盡是1和0的理性組合,這片綠洲似乎要誘人得多!事實上,計算機並不比人強,但真見鬼,它們比人更容易讓人懂。

在網際網路盛行之前的早期時代裡,搞計算機的的確確是一件孤獨的事情。Danielle Bunten Berry(《M.U.L.E.》遊戲的創作者)總結了這樣一句名言:沒有人會在臨終之時說,“哎,我希望我能花更多的時間與我的計算機單獨相處。”8位的程式設計時代已經離我們遠去了。網際網路的出現,以及軟體不斷增長的規模和複雜性,更是讓人堅信:在當今這個年代,我們幾乎不可能脫離網際網路進行程式設計。當我沒有網路的時候,也就無法進入網際網路上浩瀚的程式設計知識海洋,我會感到寸步難行……

如果你不能展示給別人看,再漂亮的編碼技巧又有什麼意義?如果你不去接觸其他程式設計師的不同觀點、不同方法以及不同的技術,你又怎麼能學到更多的技藝?誰又能檢查你的程式碼並告訴你,那個問題有更簡單的解決方法?如果你對待程式設計的態度是認真的,你應該要求與同伴們一起工作。

個人的能力總是有限的,它決定了你在這個領域裡只能走那麼遠。找一些其他的聰明程式設計師吧,和他們一起工作。努力讓自己保持謙遜低調,然後你會很快發現,軟體開發其實是一種社會活動——它的社會性比大部分人想象的要大得多。你可以從那些性格內向的同伴身上學到很多東西。