|
我所說的“關(guān)于程序員的痛苦的一種悖論”描述如下:
“好的程序員大部分的時(shí)間都在干他們厭惡的事情、使用他們厭惡的技術(shù)和工具。”
這是反常理的,看上去就是悖論;你會(huì)認(rèn)為爛程序員才會(huì)把時(shí)間都花在爛技術(shù)上,優(yōu)秀的程序員會(huì)把時(shí)間花在那些尖端的技術(shù)上。不是嗎?
我在自己的體驗(yàn)中發(fā)現(xiàn)了這個(gè)悖論,直到后來我才明白為什么會(huì)是這樣。
什么樣的工作會(huì)讓程序員們厭惡不已?
這對一些有經(jīng)驗(yàn)的程序員來說并不是什么新聞,但我要把這向那些非編程人員解釋一下:
好程序員厭惡做那些本來可以自動(dòng)完成的事情。如果一個(gè)程序員被指使去做一個(gè)機(jī)器(通常是電腦)能自動(dòng)完成的事情,他會(huì)非常的懊惱。程序員的志向是讓機(jī)器盡可能多的替他們完成任務(wù),只有剩下的一些機(jī)器不能完成的工作才會(huì)自己出手。
這是一個(gè)程序員應(yīng)該具有的一種非常有益的本能。
一個(gè)簡單的需要自動(dòng)完成的工作的例子: 想象一個(gè)程序員瀏覽一個(gè)有1000行代碼的文件。他想找到第791行,因?yàn)檫@一行被認(rèn)為有問題需要修改。但編輯器現(xiàn)在顯示到第30行。大多數(shù)人都會(huì)簡單的拖動(dòng)滾動(dòng)條一直到自己想要的那一行。但一個(gè)好程序員是不會(huì)去干這樣的事情的。他們會(huì)使用一個(gè)能夠使他們直接跳到特定行的編輯器。例如,在我使用的編輯器里,“Ctrl-L -> 791 -> Enter”就能做這樣的事情。
這個(gè)例子很簡單;更復(fù)雜的例子有很多。
好的程序員厭惡做重復(fù)性的工作的原因是,這些小事情會(huì)打斷程序員的思緒。思緒是一個(gè)脆弱的東西;一旦思緒被打斷,需要花很久才能再接起來。如果你每5分鐘就被這種體力工作打攪一次,你的思緒就無影無蹤了。
在日常工作中,程序員需要處理各種各樣的技術(shù)工作、使用各種各樣的工具。程序員喜歡那種含“體力勞動(dòng)”相對較少的工作。程序員喜歡那些只需要很少的體力勞動(dòng)的技術(shù)和工具(Python,Django,git等都屬于這一類),討厭那些需要大量體力勞動(dòng)的技術(shù)和工具。(這個(gè)我就不舉例了:)
但程序員必須即要處理那些有趣的自動(dòng)化的技術(shù),同時(shí)也要做那些討厭的,需要體力勞動(dòng)的工作。好的程序員會(huì)盡可能的使他們的生活遠(yuǎn)離那些爛技術(shù),但總有一些很糟糕的技術(shù)他不能簡單的拋棄。有時(shí)是因?yàn)樗麄冮_發(fā)的產(chǎn)品需要這種技術(shù);例如,所有的web開發(fā)程序員都必須要跟HTML打交道,但HTML里有很多很討厭的屬性。有時(shí)一些很爛的技術(shù)不能拋棄只是因?yàn)橛写罅康娜嗽谑褂盟麄儯绦騿T必須去使用它們。
大部分的時(shí)間都是花費(fèi)在了爛技術(shù)上
從這個(gè)角度看,你就能很清醒的理解這個(gè)悖論為什么會(huì)出現(xiàn)了。爛技術(shù)會(huì)用掉大量的時(shí)間和精力。好的技術(shù)只需要很少的時(shí)間和精力。程序員每天的時(shí)間和精力是有限的。這有限的資源中很多一部分被投入到爛技術(shù)上,正是因?yàn)闋€技術(shù)需要你付出更多。換句話說就是,他們主要的日常工作都是在跟他們討厭的技術(shù)和工具打交道。因此,好程序員很痛苦。
我希望我的這篇文章最終能給解決這個(gè)問題帶來一些啟示,但估計(jì)不會(huì)很多。我們能做的事情就是盡量的拋棄那些爛技術(shù),使它們遠(yuǎn)離我們的生活,而那些暫時(shí)拋棄不了的,我們只能忍受。
it知識(shí)庫:關(guān)于程序員的痛苦的一種悖論,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。