悲催的程式設計師悖論

2021-06-27 15:44:16 字數 1376 閱讀 2543

優秀的程式設計師常常會花大部分的時間去做他厭惡的工作,使用他同樣厭惡的工具和技術。

這從某種意義上來說是個悖論。通常我們的直覺是,差勁的程式設計師才會把時間花在蹩腳的技術上,而優秀的程式設計師的時間是用在高新技術上的。沒錯吧?我在實踐中發現了這個悖論,而直到後來我才明白原因。且聽我一一道來。

程式設計師鄙視什麼樣的工作?

對於那些有**開發經驗的程式設計師而言,簡直就是明知故問,不過在這裡我主要是給非程式設計人士解釋一下。

如果一件事完全可以自動化完成,那麼那些優秀的程式設計師通常是對此不屑一顧的。如果強迫程式設計師去做完全可以讓機器(通常是計算機)就可以辦到的事,他會氣得想揍你一頓。程式設計師的願望是能讓機器來幹完所有的活,是所有哦,哈哈。而只有那些機器辦不到的事,程式設計師才會有興趣去搗鼓一下。

這是任何乙個身心健康的程式設計師的本能想法。

下面給乙個需要自動化完成的事例。假如程式設計師在瀏覽**文件的時候,需要修正791行的bug。檔案總共有1000行,但是他的檔案編輯器只能顯示30行。大多數人會直接選擇向下滾動——滾動——滾動,然後一直到791行。但是作為優秀的程式設計師,能幹這麼愚蠢的事嗎?他會寫乙個能自動跳轉到具體行數的編輯器。例如,「ctrl-l -> 791 -> enter」 就是我所用的編輯器。

這個例子很簡單,複雜的也有。

究其原因就是,乙個優秀的程式設計師討厭去做這種機械的、重複的事情,因為這些繁瑣的小事會打斷他們的思維過程。思維是那麼的脆弱,一旦被打斷,就像火車一樣,需要整理一段時間之後才能再次啟動。如果每隔5分鐘就需要做點手動的工作,那麼你的思維火車恐怕到不了任何地方。在日復一日的工作中,程式設計師需要使用各種工具各種技術來完成各種專案。所以無怪乎他們會喜歡那些「體力勞動」相對較小的工作,並且特別厭惡需要大量手動操作的專案工作。他們喜歡幾乎都不需要手動的技術和工具(比如python,django 和git),討厭需要大量手動的技術(這個我就不給例子了,大家自由發揮)。

但是因為工作需要,程式設計師在使用可愛迷人的自動技術的同時,也不得不使用面目可憎的需要手動操作的技術。這時候區別就來了,優秀的那些程式設計師會試著不去運用這些惱人的技術,但是也有他根本無法避免的時候。有時是因為他正寫著的軟體的需要,比如,所有程式設計師在做web程式時,無法避免的要使用令人頭大的html語言。有時候這些落伍的技術不能被淘汰的原因僅僅只是因為大家都在用,而程式設計師需要和大家協作這麼簡單。

時間都被浪費在這些落伍的技術上

從這個角度來看文章開頭提出的悖論就容易理解了。這種差勁的技術占用了程式設計師大部分的時間和精力,而那些好的技術則不是。每個程式設計師每天的時間和精力都是有限的,就因為軟體本身的問題,使得他們把大部分的時間精力致力於那些讓他們討厭的技術和工作上。就是這個原因,那些優秀的程式設計師苦不堪言!

我特別希望能在文章的最後提出解決這個問題的方法什麼的,但是很遺憾沒有。我們能做的就是儘量減少不好的技術,讓它們滾出我們的生活,而對於那些不能避免的,牢記乙個字——忍吧。

悲催的程式設計師,以及程式設計師的悲催

我盡量用平和一點的口吻跟你說說關於程式設計師的那點事兒。1.我在乙個叫摩托羅拉的公司幹過,那地方有50 的人整天幹的事情就是催另外25 的人沒完沒了的解剩下那25 的人造成的bug。我是個程式設計師,每天敲敲打打,哪天電腦崩潰了你會發現我這輩子啥都沒留下。大多數人甚至都沒有想過我們是怎麼把手機搗鼓出...

悲催的程式設計師,以及程式設計師的悲催

我盡量用平和一點的口吻跟你說說關於程式設計師的那點事兒。1.我在乙個叫摩托羅拉的公司幹過,那地方有50 的人整天幹的事情就是催另外25 的人沒完沒了的解剩下那25 的人造成的bug。我是個程式設計師,每天敲敲打打,哪天電腦崩潰了你會發現我這輩子啥都沒留下。大多數人甚至都沒有想過我們是怎麼把手機搗鼓出...

悲催的程式設計師,以及程式設計師的悲催

悲催的程式設計師,以及程式設計師的悲催 我盡量用平和一點的口吻跟你說說關於程式設計師的那點事兒。1.我在乙個叫摩托羅拉的公司幹過,那地方有50 的人整天幹的事情就是催另外25 的人沒完沒了的解剩下那25 的人造成的bug。我是個程式設計師,每天敲敲打打,哪天電腦崩潰了你會發現我這輩子啥都沒留下。大多...