好程式設計師+爛技術=痛苦

techug發表於2016-01-19

  英文地址:http://blog.garlicsim.org/post/2840398276/the-miserable-programmer-paradox

  我所說的“關於程式設計師的痛苦的一種悖論”描述如下:

“好的程式設計師大部分的時間都在幹他們厭惡的事情、使用他們厭惡的技術和工具。”

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

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

 什麼樣的工作會讓程式設計師們厭惡不已?

  這對一些有經驗的程式設計師來說並不是什麼新聞,但我要把這向那些非程式設計人員解釋一下:

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

  這是一個程式設計師應該具有的一種非常有益的本能。

  一個簡單的需要自動完成的工作的例子: 想象一個程式設計師瀏覽一個有1000行程式碼的檔案。他想找到第791行,因為這一行被認為有問題需要修改。但編輯器現在顯示到第30行。大多數人都會簡單的拖動滾動條一直到自己想要的那一行。但一個好程式設計師是不會去幹這樣的事情的。他們會使用一個能夠使他們直接跳到特定行的編輯器。例如,在我使用的編輯器裡,“Ctrl-L -> 791 -> Enter”就能做這樣的事情。

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

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

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

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

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

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

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

相關文章