如何成為卓有成效的程式設計師[1]

才智咖 人氣:7.12K

程式設計師,就是整天與機器打交道的那群人。

如何成為卓有成效的程式設計師[1]

在計算機並不普及的年代,這樣的描述毫無疑問;然而,這些年來,得益於計算機成本的不斷下降,軟體使用門檻的不斷降低,如今,昔日昂貴而又神祕不可莫測電腦,已經成了隨處可見、人人能用的辦公器材。一句話:人機互動,不再是程式設計師的專利。大家都可以用電腦幹活,只不過,程式設計師用電腦寫程式,其他人用電腦幹其它事。

結果,普通人抱怨的問題,程式設計師也在抱怨:電腦不夠聰明,不夠智慧,效率太低……

可是,電腦真的進化到了對程式設計師和普通使用者“一視同仁”的地步嗎?

我不由得想起,上個世紀80年代,溫伯格在《技術領導之路》中提出的疑問:

(開辦技術領導力學習班)也讓我們產生懷疑,技術在當今社會扮演了重要的角色,我們的學習班,是否賦予了某些人太多的力量?

細細想來,當年,IT技術那麼高深,只有少數人能夠接觸,因而程式設計師“理所當然”地藉助了IT的東風,具有超常的力量。可是如今呢?與常人無異的`程式設計師(或者說,IT技術人員),他們身上讓人擔心的“太大的”力量,到底是被淘汰了,還是沒有發揮出來?

對這個問題,不同的人或許有不同的看法。不過,讀過The Productive Programmer(中文版《卓有成效的程式設計師》)的人,多半會選擇後一個答案。

The Productive Programmer是一本奇特的書,它的Productive(也就是“生產力”),與新的語言、新的框架、新的系統完全無關,而是另闢蹊徑:它只是提醒讀者,作為程式設計師,你與普通使用者是不同的:其它人只是簡單地“啟動”程式,而你完全可以動用自己的專業知識,“驅使/排程”那些程式。這樣的機會,普通使用者想不到,也不願意抓住,但是抓住它們,你的生產率就會成倍上升。所以,這本書叫做The Productive Programmer,而不是The Productive Computer-User。

薄薄的一本書(英文版224頁,中文版215頁),共分16章,兼顧概念和實踐兩個方面,既介紹了加速、專注、自動化等等提高生產率的“先進 ”思維觀念(譬如“多用鍵盤少用滑鼠”,“消除干擾集中精力”),也給出了在設計、分析、構造、超程式設計、多語言程式設計等等多種任務中貫徹前述思想的若干例項(譬如 “用全面測試保證質量”,“選用最省事的方式/語言完成任務”),可以說是“麻雀雖小,五臟俱全”了。

不過,看完整本書,我最深刻的印象還是貫徹全書的思想。說白了,就是儘量讓機器做機器該做的事情,讓程式和程式打交道,發揮程式設計師在這方面的先天優勢——他人眼中的普通工具,是程式設計師手裡的有利武器。

不信,你可以想想,雖然如今人機互動的難度已經大大下降,然而程式終究是程式,程式跟人打交道,與程式跟程式打交道,效率差的不是一星半點:

不用巨集,你可能需要一次又一次地重複選擇、修改、儲存;

不用指令碼,你可能需要一次又一次地點選、配置、等待;

不用自動化測試,你可能需要一遍又一遍地執行、除錯;

不用管道,你可能需要一次又一次地生成、刪除中間檔案;

……