你为什么薪水那么低(二)之 生产力
在上一篇文章中提到,升薪的關(guān)鍵在于『你可以做別人做不了的事』。
程序員,就是整天與機(jī)器打交道的那群人。 在計算機(jī)并不普及的年代,這樣的描述毫無疑問。
然而,這些年來,得益于計算機(jī)成本的不斷下降,軟件使用門檻的不斷降低,如今,昔日昂貴而又神秘不可莫測電腦,已經(jīng)成了隨處可見、人人能用的辦公器材。一句話:人機(jī)交互,不再是程序員的專利。
大家都可以用電腦干活,只不過,程序員用電腦寫程序,其他人用電腦干其它事。
結(jié)果,普通人抱怨的問題,程序員也在抱怨:電腦不夠聰明,不夠智能,效率太低……
可是,電腦真的進(jìn)化到了對程序員和普通用戶“一視同仁”的地步嗎?
我不由得想起,上個世紀(jì)80年代,溫伯格在《技術(shù)領(lǐng)導(dǎo)之路》中提出的疑問:
(開辦技術(shù)領(lǐng)導(dǎo)力學(xué)習(xí)班)也讓我們產(chǎn)生懷疑,技術(shù)在當(dāng)今社會扮演了重要的角色,我們的學(xué)習(xí)班,是否賦予了某些人太多的力量?
細(xì)細(xì)想來,當(dāng)年,IT技術(shù)那么高深,只有少數(shù)人能夠接觸,因而程序員“理所當(dāng)然”地借助了IT的東風(fēng),具有超常的力量??墒侨缃衲?#xff1f;與常人無異的程序員(或者說,IT 技術(shù)人員),他們身上讓人擔(dān)心的“太大的”力量,到底是被淘汰了,還是沒有發(fā)揮出來?
對這個問題,不同的人或許有不同的看法。不過,讀過 The Productive Programmer(中文版《卓有成效的程序員》)的人,多半會選擇后一個答案——程序員的實(shí)力還沒有發(fā)揮出來。
The Productive Programmer 是一本奇特的書,它的 Productive(也就是“生產(chǎn)力”),與新的語言、新的框架、新的系統(tǒng)完全無關(guān),而是另辟蹊徑:它只是提醒讀者,作為程序員,你與普通用戶是不同的:其它人只是簡單地“啟動”程序,而你完全可以動用自己的專業(yè)知識,“驅(qū)使/調(diào)度”那些程序。
這樣的機(jī)會,普通用戶想不到,也不愿意抓住,但是抓住它們,你的生產(chǎn)率就會成倍上升。所以,這本書叫做 The Productive Programmer,而不是 The Productive Computer-User。
薄薄的一本書(英文版224頁,中文版215頁),共分16章,兼顧概念和實(shí)踐兩個方面,既介紹了加速、專注、自動化等等提高生產(chǎn)率的“先進(jìn)”思維觀念(譬如多用鍵盤少用鼠標(biāo),消除干擾集中精力),也給出了在設(shè)計、分析、構(gòu)造、元編程、多語言編程等等多種任務(wù)中貫徹前述思想的若干實(shí)例(譬如用全面測試保證質(zhì)量,選用最省事的方式/語言完成任務(wù)),可以說是“麻雀雖小,五臟俱全”了。
不過,看完整本書,我最深刻的印象還是貫徹全書的思想。說白了,就是盡量讓機(jī)器做機(jī)器該做的事情,讓程序和程序打交道,發(fā)揮程序員在這方面的先天優(yōu)勢——他人眼中的普通工具,是程序員手里的有利武器。
不信,你可以想想,雖然如今人機(jī)交互的難度已經(jīng)大大下降,然而程序終究是程序,程序跟人打交道,與程序跟程序打交道,效率差的不是一星半點(diǎn):
- 不用宏,你可能需要一次又一次地重復(fù)選擇、修改、保存;
- 不用腳本,你可能需要一次又一次地點(diǎn)擊、配置、等待;
- 不用自動化測試,你可能需要一遍又一遍地運(yùn)行、調(diào)試;
- 不用管道,你可能需要一次又一次地生成、刪除中間文件;
- ……
The Productive Programmer則會“教導(dǎo)”你:
- 多用宏吧,啟動它,你就可以迅速完成大量重復(fù)的工作;
- 多用腳本吧,你可以提高運(yùn)行的效率,避免變數(shù)和誤差;
- 多用自動化測試吧,你可以迅速定位問題,保證質(zhì)量;
- 多用管道吧,這樣多個程序就可以“無縫結(jié)合”成一條生產(chǎn)線;
- ……
沒錯,學(xué)習(xí)宏、腳本、自動化測試、管道(Shell),不是“容易”的事情。但別忘了,身為技術(shù)人員,了解技術(shù),學(xué)習(xí)技術(shù),運(yùn)用技術(shù),正是你的職業(yè),你的優(yōu)勢,也是你的責(zé)任,你的生產(chǎn)力(所謂productive)所在。
隨便舉個例子吧,在本書中文版的第196頁有這么一段話:
……在我剛才提到的例子中,開發(fā)人員用了1小時58分建立正確的語法,然后用了不足兩分鐘運(yùn)行。在一些未曾培訓(xùn)過的人眼里,他的大多數(shù)時間都沒有效率(這就是為什么他們反對使用正則表達(dá)式的原因),但最后,他節(jié)省的是幾天的時間!……
我還要補(bǔ)充的是,解決好這樣的問題,“現(xiàn)在”能節(jié)省幾天的時間,將來,更可以節(jié)省無窮無盡的時間!就我的開發(fā)經(jīng)歷來說,平時多注重這樣的細(xì)節(jié),做些 “沒效率”的事情,積累起來,就可以節(jié)省大量的時間和精力——至少至少,你不會抱怨,自己終日被一大堆“簡單重復(fù)勞動”所困擾。
類似的例子,在書中隨處可見,譬如作者講到
幾乎每個 *nix 用戶,都會有自己的 shell alias
真是于我心有戚戚焉:我自己積累了一大堆 alias,喜歡用 grep –color 把要找的內(nèi)容標(biāo)成高亮,也喜歡在統(tǒng)計腳本里用不同的顏色標(biāo)注不同的狀態(tài)……在 Shell 下干活,更加簡單、利索,一目了然,這種流暢和效率,也可算專屬于程序員的寶貴財富。
當(dāng)然,也有讀者會覺得很煩:作者幾乎講一個很小的例子,幾乎都要強(qiáng)調(diào)一遍:“簡單重復(fù)勞動是低效的(程序員不應(yīng)該這么干)”。
不過,我絲毫沒有覺得羅嗦,反而因此喜歡上這本一個下午就能看完的“輕量級”小書:閱讀它,你并不需要太多的期望,權(quán)當(dāng)一次愉快的思維體操吧——你會發(fā)現(xiàn),專屬于自己的高效率,就來自書中提到的點(diǎn)點(diǎn)滴滴。
繼續(xù)閱讀關(guān)于 方法 的文章
from: http://justjavac.com/other/2012/09/27/why-are-you-so-low-salary-2-productive.html
總結(jié)
以上是生活随笔為你收集整理的你为什么薪水那么低(二)之 生产力的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码之谜(零)- 开篇/前言/序
- 下一篇: 代码之谜(一)- 有限与无限