程式設計師,就是整天與機器打交道的那群人。 在計算機並不普及的年代,這樣的描述毫無疑問。
然而,這些年來,得益於計算機成本的不斷下降,軟體使用門檻的不斷降低, 如今,昔日昂貴而又神秘不可莫測電腦,已經成了隨處可見、人人能用的辦公器材。 一句話:人機互動,不再是程式設計師的專利。
大家都可以用電腦幹活,只不過,程式設計師用電腦寫程式,其他人用電腦幹其它事。
結果,普通人抱怨的問題,程式設計師也在抱怨:電腦不夠聰明,不夠智慧型,效率太低……
可是,電腦真的進化到了對程式設計師和普通使用者「一視同仁」的地步嗎?
我不由得想起,上個世紀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 下幹活,更加簡單、利索,一目了然,這種流暢和效率,也可算專屬於程式設計師的寶貴財富。
當然,也有讀者會覺得很煩:作者幾乎講乙個很小的例子,幾乎都要強調一遍: 「簡單重複勞動是低效的(程式設計師不應該這麼幹)」。
不過,我絲毫沒有覺得羅嗦,反而因此喜歡上這本乙個下午就能看完的「輕量級」小書: 閱讀它,你並不需要太多的期望,權當一次愉快的思維體操吧——你會發現, 專屬於自己的高效率,就來自書中提到的點點滴滴。
你為什麼薪水那麼低 二 生產力
程式設計師,就是整天與機器打交道的那群人。在計算機並不普及的年代,這樣的描述毫無疑問。然而,這些年來,得益於計算機成本的不斷下降,軟體使用門檻的不斷降低,如今,昔日昂貴而又神秘不可莫測電腦,已經成了隨處可見 人人能用的辦公器材。一句話 人機互動,不再是程式設計師的專利。大家都可以用電腦幹活,只不過,...
為什麼軟體工程師的薪水和生產力如此不成比例
文 mr.jamie 算起來軟體工程師大概是全世界最特別的一種職業,因為乙個最好的 programmer 和乙個最爛的 programmer,生產力相差至少 10 倍,有時候甚至可以高達 100 倍。這在其他的職業幾乎是沒聽過的 像 jordan 麥可 喬丹 這樣強的籃球運動員,平均一場比賽的生產力...
為什麼軟體工程師的薪水和生產力如此不成比例
文 mr.jamie 算起來軟體工程師大概是全世界最特別的一種職業,因為乙個最好的 programmer 和乙個最爛的 programmer,生產力相差至少 10 倍,有時候甚至可以高達 100 倍。這在其他的職業幾乎是沒聽過的 像 jordan 麥可 喬丹 這樣強的籃球運動員,平均一場比賽的生產力...