上帝的歸上帝,程式的歸程式 卓有成效的程式設計師

2021-09-30 15:21:31 字數 2192 閱讀 7031

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

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

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

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

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

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

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

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

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

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

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

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

the productive programmer則會「教導」你:

沒錯,學習巨集、指令碼、自動化測試、管道(shell),不是「容易」的事情。但別忘了,身為技術人員,了解技術,學習技術,運用技術,正是你的職業,你的優勢,也是你的責任,你的生產力(所謂productive)所在。隨便舉個例子吧,在本書中文版的第196頁有這麼一段話:

……在我剛才提到的例子中,開發人員用了1小時58分建立正確的語法,然後用了不足兩分鐘執行。在一些未曾培訓過的人眼裡,他的大多數時間都沒有效率(這就是為什麼他們反對使用正規表示式的原因),但最後,他節省的是幾天的時間!……

我還要補充的是,解決好這樣的問題,「現在」能節省幾天的時間,將來,更可以節省無窮無盡的時間!就我的開發經歷來說,平時多注重這樣的細節,做些 「沒效率」的事情,積累起來,就可以節省大量的時間和精力——至少至少,你不會抱怨,自己終日被一大堆「簡單重複勞動」所困擾。

類似的例子,在書中隨處可見,譬如作者講到,「幾乎每個nix 使用者,都會有自己的 shell alias」,真是於我心有戚戚焉:我自己積累了一大堆 alias,喜歡用 grep –color 把要找的內容標成高亮,也喜歡在統計指令碼裡用不同的顏色標註不同的狀態……在 shell 下幹活,更加簡單、利索,一目了然,這種流暢和效率,也可算專屬於程式設計師的寶貴財富

*。當然,也有讀者會覺得很煩:作者幾乎講乙個很小的例子,幾乎都要強調一遍:「簡單重複勞動是低效的(程式設計師不應該這麼幹)」。不過,我絲毫沒有覺得羅嗦,反而因此喜歡上這本乙個下午就能看完的「輕量級」小書:閱讀它,你並不需要太多的期望,權當一次愉快的思維體操吧——你會發現,專屬於自己的高效率,就來自書中提到的點點滴滴。

我的程式設計師之路 上帝的蘋果

時間移回到我讀高二的時候。高中的生活總是忙碌的,那時候,白天忙著上課,晚上忙著晚自習。周一到周五都是要晚自習的,我們一般 17 40 下課,19 00 上晚自習。廣東的夏天總是很炎熱,不過那天天氣不錯。下午剛下了一場不大不小的雨,空氣中瀰漫著地面被太陽暴曬,然後突然又被雨水浸潤後的泥土氣息。知了在樹...

程式設計師的共鳴 讀《卓有成效的程式設計師》

最近讀了 卓有成效的程式設計師 感覺收穫頗大。這是一本寫給程式設計師的難得的好書。書中大都是一些淺顯的道理,但作者將這些東西加以收集 歸納 總結,並最終成書。作者為了收集各種提高效率的工具和方法,東奔西走,可謂費了一番苦心。我覺得此書第一部分總結的一些法則非常好,我提取了一下 1.加速法則 關注本質...

程式設計師的共鳴 讀《卓有成效的程式設計師》

最近讀了 卓有成效的程式設計師 感覺收穫頗大。這是一本寫給程式設計師的難得的好書。書中大都是一些淺顯的道理,但作者將這些東西加以收集 歸納 總結,並最終成書。作者為了收集各種提高效率的工具和方法,東奔西走,可謂費了一番苦心。我覺得此書第一部分總結的一些法則非常好,我提取了一下 1.加速法則 關注本質...