程式設計師的優勢和劣勢

Web開發者發表於2012-06-24

  有段著名的對話:

  男:我是程式設計師。 女:哦,程先生,你好。 男:哈,客氣了,叫我序員就好。

  現實中的程先生多種多樣,如果不去考慮程式設計師、工程師、架構師等不同的title到底有什麼區別,作為通過計算機語言與機器打交道的人群,至少有很多共同的特徵。

  程式設計師比其他行業有一個天然的優勢,就是自己幾乎可以隨心所欲的創造出工具來幫助自己,從而大大提升工作效率。這一點在許多傳統行業中是完全不可能的,比如:一名建築工程師,他如果想隨心所欲地馬上著手創造一把符合他手頭工作的錘子,則並不太容易。這種效率提升的前提,是可以將重複手動勞動的自動化。就像一個本來要挖20米深地基的工人,忽然變出10個機器人代替他挖,而他只需要在旁邊小屋透過玻璃窗眯著眼睛喝咖啡一樣。所以,利用好這個優勢後,優秀的程式設計師可以將效率提升至少一個數量級。

  程式設計師還有一個天然的優勢,他的學習成本和創造成本都比較低。首先,技術水平的提升是不依賴複雜昂貴的專有裝置和密集的人員的,他需要的只是電腦和網線。其次,創造成本中,除了時間之外,材料成本完全電子化,知識和創意通過程式碼體現在二進位制中。而更不錯的事情是:創造出的東西在世界範圍內都是可以重用的,可以基於大量經過他人完善測試的庫來避免自己的重複勞動。所以,利用好這個優勢,在於勤於動手去嘗試去做,整理好可以重用的通用庫,然後在需要的時候毫不吝嗇地將自己的想法實現。

  不過,也有劣勢

  程式設計師的世界是理想化的,不存在非邏輯的干擾因素。如果已經設計出一套完美的邏輯去做一件事,無論做多少遍,也不會出現無法處理的僵局。所以程式設計師希望這個世界井然有序,每個實體像系統中的各個模組一樣各司其職、準確而高效地互動。而在現實的世界中,只要你有權有錢,善於搞人際關係和鑽制度的空子,你就能把錯的說成對的,把黑的說成白的。老老實實、埋頭苦幹的人,眼睜睜看著乾坤顛倒、小人得志,而只能束手無策、一籌莫展。

  老實說,只要有兩個以上的人待在一起,就會有“政治”。這很自然。程式設計師早就練出了對公正有非常良好的判斷力。程式碼要麼能執行,要麼不能。坐在那裡爭論程式碼是否有問題,這是毫無意義的,因為你可以執行程式碼,答案自然就有了。程式碼的世界是非常公正的,也是非常嚴格有序的。許許多多的人選擇程式設計,首要的原因就是,他們寧願將自己的時間花在一個公平有序的地方,一個嚴格的能者上庸者下的地方,一個只要你是對的就能贏得任何爭論的地方。

  是。有人會在旁邊冷笑,並可能說出類似 “Too Simple, Sometimes Naive” 這樣的江湖名句。某種意義上,我並不是個純粹的理想主義者,但我還是有些偏執地要說:可程式設計的世界,就是程式設計師自己構架的理想國。

相關文章