好程式設計師+爛技術=痛苦
英文地址:http://blog.garlicsim.org/post/2840398276/the-miserable-programmer-paradox
我所說的“關於程式設計師的痛苦的一種悖論”描述如下:
“好的程式設計師大部分的時間都在幹他們厭惡的事情、使用他們厭惡的技術和工具。”
這是反常理的,看上去就是悖論;你會認為爛程式設計師才會把時間都花在爛技術上,優秀的程式設計師會把時間花在那些尖端的技術上。不是嗎?
我在自己的體驗中發現了這個悖論,直到後來我才明白為什麼會是這樣。
什麼樣的工作會讓程式設計師們厭惡不已?
這對一些有經驗的程式設計師來說並不是什麼新聞,但我要把這向那些非程式設計人員解釋一下:
好程式設計師厭惡做那些本來可以自動完成的事情。如果一個程式設計師被指使去做一個機器(通常是電腦)能自動完成的事情,他會非常的懊惱。程式設計師的志向是讓機器儘可能多的替他們完成任務,只有剩下的一些機器不能完成的工作才會自己出手。
這是一個程式設計師應該具有的一種非常有益的本能。
一個簡單的需要自動完成的工作的例子: 想象一個程式設計師瀏覽一個有1000行程式碼的檔案。他想找到第791行,因為這一行被認為有問題需要修改。但編輯器現在顯示到第30行。大多數人都會簡單的拖動滾動條一直到自己想要的那一行。但一個好程式設計師是不會去幹這樣的事情的。他們會使用一個能夠使他們直接跳到特定行的編輯器。例如,在我使用的編輯器裡,“Ctrl-L -> 791 -> Enter”就能做這樣的事情。
這個例子很簡單;更復雜的例子有很多。
好的程式設計師厭惡做重複性的工作的原因是,這些小事情會打斷程式設計師的思緒。思緒是一個脆弱的東西;一旦思緒被打斷,需要花很久才能再接起來。如果你每5分鐘就被這種體力工作打攪一次,你的思緒就無影無蹤了。
在日常工作中,程式設計師需要處理各種各樣的技術工作、使用各種各樣的工具。程式設計師喜歡那種含“體力勞動”相對較少的工作。程式設計師喜歡那些只需要很少的體力勞動的技術和工具(Python,Django,git等都屬於這一類),討厭那些需要大量體力勞動的技術和工具。(這個我就不舉例了:)
但程式設計師必須即要處理那些有趣的自動化的技術,同時也要做那些討厭的,需要體力勞動的工作。好的程式設計師會盡可能的使他們的生活遠離那些爛技術,但總有一些很糟糕的技術他不能簡單的拋棄。有時是因為他們開發的產品需要這種技術;例如,所有的web開發程式設計師都必須要跟HTML打交道,但HTML裡有很多很討厭的屬性。有時一些很爛的技術不能拋棄只是因為有大量的人在使用他們,程式設計師必須去使用它們。
大部分的時間都是花費在了爛技術上
從這個角度看,你就能很清醒的理解這個悖論為什麼會出現了。爛技術會用掉大量的時間和精力。好的技術只需要很少的時間和精力。程式設計師每天的時間和精力是有限的。這有限的資源中很多一部分被投入到爛技術上,正是因為爛技術需要你付出更多。換句話說就是,他們主要的日常工作都是在跟他們討厭的技術和工具打交道。因此,好程式設計師很痛苦。
我希望我的這篇文章最終能給解決這個問題帶來一些啟示,但估計不會很多。我們能做的事情就是儘量的拋棄那些爛技術,使它們遠離我們的生活,而那些暫時拋棄不了的,我們只能忍受。
相關文章
- 好程式設計師Java培訓Java程式設計師必學技術程式設計師Java
- 只有爛程式設計師才相信世界是由技術驅動的程式設計師
- 好程式設計師web前端技術分享css盒模型程式設計師Web前端CSS模型
- 好程式設計師技術教程分享JavaScript運動框架程式設計師JavaScript框架
- 程式設計師如何寫好一篇技術文章?程式設計師
- 好程式設計師技術分析JavaScript閉包特性詳解程式設計師JavaScript
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 好程式設計師web前端技術分享媒體查詢程式設計師Web前端
- 程式設計師寫好技術文章的幾點小技巧程式設計師
- 好程式設計師技術分享淺談JavaScript中的閉包程式設計師JavaScript
- 好程式設計師技術解析Hadoop和spark的效能比較程式設計師HadoopSpark
- 好程式設計師web前端技術之CSS3過渡程式設計師Web前端CSSS3
- 最爛的1%程式設計師生存指南程式設計師
- 好程式設計師雲端計算教程分享Mysql技術知識點程式設計師MySql
- 程式設計師的技術遺產程式設計師
- 程式設計師、技術主管和架構師程式設計師架構
- 好程式設計師HTML5培訓技術分享JavaScript 閉包程式設計師HTMLJavaScript
- 好程式設計師Java教程分享Java技術知識點總結程式設計師Java
- 怎麼樣學好python技術當一名程式設計師Python程式設計師
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- 好程式設計師技術分享html5和JavaScript的區別程式設計師HTMLJavaScript
- 好程式設計師大資料技術盤點 你都知道嗎程式設計師大資料
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試
- 程式設計師技術入股的那些坑程式設計師
- 程式設計師如何利用技術管理技巧程式設計師
- Java外包程式設計師的技術出路Java程式設計師
- 好程式設計師Java教程分享面試中Spring的技術問題程式設計師Java面試Spring
- 好程式設計師Java教程分享Java面試常見技術難題程式設計師Java面試
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師web前端技術分享移動端頁面佈局程式設計師Web前端
- 好程式設計師大資料技術分享:Zookeeper叢集管理與選舉程式設計師大資料
- 好程式設計師分享HTML5精品技術文章--前端崗位需求分析程式設計師HTML前端
- 好程式設計師技術文件HTML5開發中的javascript閉包程式設計師HTMLJavaScript
- 好程式設計師Java學習路線分享JavaEE的13種核心技術程式設計師Java
- 好程式設計師大資料技術分享Zookeeper叢集管理與選舉程式設計師大資料
- 程式設計師: 我只要技術牛就行! 軟體工程師: 那你能做個好專案嗎?程式設計師軟體工程工程師
- 程式設計師如何做好技術規劃?程式設計師
- 2020年Java程式設計師需要哪些技術Java程式設計師
- 好程式設計師不寫程式碼程式設計師