關于程序員的痛苦的一種悖論

人文精神  >>>  技術話題—商業文明的嶄新時代

  我所說的“關于程序員的痛苦的一種悖論”描述如下:

“好的程序員大部分的時間都在干他們厭惡的事情、使用他們厭惡的技術和工具。”

  這是反常理的,看上去就是悖論;你會認為程序員才會把時間都花在爛技術上,優秀的程序員會把時間花在那些尖端的技術上。不是嗎?

  我在自己的體驗中發現了這個悖論,直到后來我才明白為什么會是這樣。

  什么樣的工作會讓程序員們厭惡不已?

  這對一些有經驗的程序員來說并不是什么新聞,但我要把這向那些非編程人員解釋一下:

  好程序員厭惡做那些本來可以自動完成的事情。如果一個程序員被指使去做一個機器(通常是電腦)能自動完成的事情,他會非常的懊惱。程序員的志向是讓機器盡可能多的替他們完成任務,只有剩下的一些機器不能完成的工作才會自己出手。

  這是一個程序員應該具有的一種非常有益的本能。

  一個簡單的需要自動完成的工作的例子

  想象一個程序員瀏覽一個有1000行代碼的文件。他想找到第791行,因為這一行被認為有問題需要修改。但編輯器現在顯示到第30行。大多數人都會簡單的拖動滾動條一直到自己想要的那一行。但一個好程序員是不會去干這樣的事情的。他們會使用一個能夠使他們直接跳到特定行的編輯器。例如,在我使用的編輯器里,“Ctrl-L -> 791 -> Enter”就能做這樣的事情。

  這個例子很簡單;更復雜的例子有很多。

  好的程序員厭惡做重復性的工作的原因是,這些小事情會打斷程序員的思緒。思緒是一個脆弱的東西;一旦思緒被打斷,需要花很久才能再接起來。如果你每5分鐘就被這種體力工作打攪一次,你的思緒就無影無蹤了。

  在日常工作中,程序員需要處理各種各樣的技術工作、使用各種各樣的工具。程序員喜歡那種含“體力勞動”相對較少的工作。程序員喜歡那些只需要很少的體力勞動的技術和工具(Python,Django,git等都屬于這一類),討厭那些需要大量體力勞動的技術和工具。(這個我就不舉例了:))

  但程序員必須即要處理那些有趣的自動化的技術,同時也要做那些討厭的,需要體力勞動的工作。好的程序員會盡可能的使他們的生活遠離那些爛技術,但總有一些很糟糕的技術他不能簡單的拋棄。有時是因為他們開發的產品需要這種技術;例如,所有的web開發程序員都必須要跟HTML打交道,但HTML里有很多很討厭的屬性。有時一些很爛的技術不能拋棄只是因為有大量的人在使用他們,程序員必須去使用它們。

  大部分的時間都是花費在了爛技術上

  從這個角度看,你就能很清醒的理解這個悖論為什么會出現了。爛技術會用掉大量的時間和精力。好的技術只需要很少的時間和精力。程序員每天的時間和精力是有限的。這有限的資源中很多一部分被投入到爛技術上,正是因為爛技術需要你付出更多。換句話說就是,他們主要的日常工作都是在跟他們討厭的技術和工具打交道。因此,好程序員很痛苦。

  我希望我的這篇文章最終能給解決這個問題帶來一些啟示,但估計不會很多。我們能做的事情就是盡量的拋棄那些爛技術,使它們遠離我們的生活,而那些暫時拋棄不了的,我們只能忍受。


2015-05-19 00:31:08

[新一篇] 分享做為獨立開發者的一些經驗

[舊一篇] 八張最令人震驚的地球照片
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表