程式員的 職業的樂趣 和 職業的苦惱

來源:互聯網
上載者:User

摘自《人月神話》

職業的樂趣
編程為什麼有趣?作為回報,它的從業者期望得到什麼樣的快樂?
首先是一種建立事物的純粹快樂。如同小孩在玩泥巴時感到愉快一樣,成年人喜歡建立事物,特別是自己進行設計。我想這種快樂是上帝創造

世界的折射,一種呈現在每片獨特、嶄新的樹葉和雪花上的喜悅。

其次,快樂來自於開發對其他人有用的東西。內心深處,我們期望其他人使用我們的勞動成果,並能對他們有所協助。從這個方面,這同小孩

用粘土為“爸爸辦公室”捏制鉛筆盒沒有本質的區別。

第三是整個過程體現出魔術般的力量——將相互齧合的零組件組裝在一起,看到它們精妙地運行,得到預先所希望的結果。比起彈珠遊戲或點

唱機所具有的迷人魅力,程式化的電腦毫不遜色。

第四是學習的樂趣,來自於這項工作的非重複特性。人們所面臨的問題,在某個或其它方面總有些不同。因而解決問題的人可以從中學習新的

事物:有時是實踐上的,有時是理論上的,或者兼而有之。

最後,樂趣還來自於工作在如此易於駕馭的介質上。程式員,就像詩人一樣,幾乎僅僅工作在單純的思考中。程式員憑空地運用自己的想象,

來建造自己的“城堡”。很少有這樣的介質——創造的方式如此得靈活,如此得易於精鍊和重建,如此得容易實現概念上的設想。(不過我們

將會看到,容易駕馭的特性也有它自己的問題)

然而程式畢竟同詩歌不同,它是實實在在的東西;可以移動和運行,能獨立產生可見的輸出;能列印結果,繪製圖形,發出聲音,移動支架。

神話和傳說中的魔術在我們的時代已變成了現實。在鍵盤上鍵入正確的咒語,螢幕會活動、變幻,顯示出前所未有的或是已經存在的事物。
編程非常有趣,在於它不僅滿足了我們內心深處進行創造的渴望,而且還愉悅了每個人內在的情感。

職業的苦惱
然而這個過程並不全都是喜悅。我們只有事先瞭解一些編程固有的煩惱,這樣,當它們真的出現時,才能更加坦然地面對。

首先,必須追求完美。因為電腦也是以這樣的方式來變戲法:如果咒語中的一個字元、一個停頓,沒有與正確的形式一致,魔術就不會出現

。(現實中,很少的人類活動要求完美,所以人類對它本來就不習慣。)實際上,我認為學習編程的最困難部分,是將做事的方式往追求完美

的方向調整。

其次,是由他人來設定目標,供給資源,提供資訊。編程人員很少能控制工作環境和工作目標。用管理的術語來說,個人的權威和他所承擔的

責任是不相配的。不過,似乎在所有的領域中,對要完成的工作,很少能提供與責任相一致的正式權威。而現實情況中,實際(相對於正式)

的權威來自於每次任務的完成。
對於系統編程人員而言,對其他人的依賴是一件非常痛苦的事情。他依靠其他人的程式,而往往這些程式設計得並不合理,實現拙劣,發布不

完整(沒有原始碼或測試案例),或者文檔記錄得很糟。所以,系統編程人員不得不花費時間去研究和修改,而它們在理想情況下本應該是可

靠完整的。

下一個煩惱——概念性設計是有趣的,但尋找瑣碎的bug卻只是一項重複性的活動。伴隨著創造性活動的,往往是枯燥沉悶的時間和艱苦的勞動

。程式編製工作也不例外。

另外,人們發現調試和查錯往往是線性收斂的,或者更糟糕的是,具有二次方的複雜度。結果,測試一拖再拖,尋找最後一個錯誤比第一個錯

誤將花費更多的時間。

最後一個苦惱,有時也是一種無奈——當投入了大量辛苦的勞動,產品在即將完成或者終於完成的時候,卻已顯得陳舊過時。可能是同事和競

爭對手已在追逐新的、更好的構思;也許替代方案不僅僅是在構思,而且已經在安排了。

現實情況比上面所說的通常要好一些。當產品開發完成時,更優秀的新產品通常還不能投入使用,而僅僅是為大家談論而已。另外,它同樣需

要數月的開發時間。事實上,只有實際需要時,才會用到最新的設想,因為所實現的系統已經能滿足要求,體現了回報。
  誠然,產品開發所基於的技術在不斷地進步。一旦設計被凍結,在概念上就已經開始陳舊了。不過,實際產品需要一步一步按階段實現。實

現落後與否的判斷應根據其它已有的系統,而不是未實現的概念。因此,我們所面臨的挑戰和任務是在現有的時間和有效資源範圍內,尋找

解決實際問題的切實可行方案。
這,就是編程。一個許多人痛苦掙紮的焦油坑以及一種樂趣和苦惱共存的創造性活動。對於許多人而言,其中的樂趣遠大於苦惱。而本書的剩

餘部分將試圖搭建一些橋樑,為通過這樣的焦油坑提供一些指導。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.