神文系列(2)——喜鵲開發者

在上一篇文章的評論裡面,有人提到了《The Magpie Developer》。這也是一篇好文章,只是應用範圍沒有《Teach Yourself 10 Years of Programming》那麼大。不過沒關係,該看的還是要看。

英文版:The Magpie Developer

中文版:喜鵲開發者(The Magpie Developer)


正文


我經常感覺,開發人員很像我們所說的喜鵲,以不停的獲取很多小玩意來裝飾他們的窩而著稱。就像喜鵲一樣,開發人員通常都被定義為聰明的、好奇的生物。但是我們太容易被一些時髦的新鮮事物分心。

Scott Hanselman的終極開發工具列表( Ultimate Developer Tool list)不會再使我有新鮮感。相反,它越發使我疲勞。軟體開發的改變速度是非常迅速的,而我們太沉迷於一些自身概念就在不斷瓦解的新鮮事物,就像一個英語單詞如果一遍一遍的不斷重複就會變成毫無意義的母音和輔音,新事物最終都會變為平凡常見的,當他們被稱為新事物時他們便不會是獨一無二的、有趣的。最終,你會厭倦這無止境的新鮮玩意兒。

無獨有偶,Jeremy Zawodny也注意到了《新事物的不斷黯淡無光》(the diminishing luster of shiny new things):

一年前我退訂了Steve的博客,因為他每天不斷的更新最新最潮的一些小東西,頻率實在是太高了。而我認識中的很多人都被捲入到了這令人窒息的新事物的喧囂中,而往往忘記了去思考那些新出現的事物在我們的長期發展中是不是真的那麼重要。

Dave Slusher也一致同意:

[Robert Scoble]說他收到過太多通過郵件來獲取他的PR releases,但這並沒有什麼卵用。他建議你應該到他的Facebook wall中留言,Dear god and/or Bob… 在我關注Scoble期間,我看到他說了太多類似這樣的話:別發郵件、發推特,別發推特、通過Jaiku聯繫我,在留言板留言、發簡訊給我,不要打我電話、發郵件給我,不要發郵件給我、不要打電話給我… 真的是夠了!我甚至都沒嘗試去聯繫過他,我發現我已經厭倦了他高頻的從一個平台遷移另一個平台,這簡直就是Bullshit!當我一年前拋棄TechCrunch時我也有這樣的感覺。我已經十分反感聽到用另一種只有細微差別的方法來代替我們現在已經在做的事情,這些細微差別何以能讓我們拋棄一切然後奔向它?我正式宣布放棄搜尋一些光鮮亮麗的事物。

不只有永無止境的新技術,而且還有永不消停的軟體宗教戰爭(thousand software religious wars )都使我們疲乏,就像激流中的巨石那麼的討厭。我相信David Megginson概括的這些過程聽起來會十分熟悉:

  1. 一些頂尖的開發者們注意到太多的菜鳥們都在使用他們正在使用的編程語言,然後他們開始尋找一些新的東西來區分他們更優秀於一些普通的同事。
  2. 他們會丟掉一些他們看起來非常煩人的一系列舊東西,從而尋找一種新的、鮮為人知的語言讓他們看起來明顯成為少數精英部分。
  3. 他們開始促進新語言的發展,提交代碼,編寫框架等等,推廣新語言。然而,高級開發者們也跟著這些頂尖開發者們轉向新語言,創造一些列的圖書,培訓等等,並且加速發展著這門新語言。
  4. 這些高級開發者對社區有著很大的影響,開始把新語言推向平常的工作中。
  5. 大量菜鳥們又開始意識到他們必須去買一些書,上一些課來學習這門新語言。
  6. 頂尖的開發者們注意到太多的菜鳥們都在使用他們使用的編程語言,然後他們開始尋找一些東西來區分他們更優秀於一些普通的同事。

希望你安靜的坐著,因為我還有一個壞消息給你。你對Ruby on Rails很感興趣對嗎,但它已經過時了,我們已經拋棄它使用新的東西了。

大量主力的開發人員從沒有接觸過任何一門動態語言,更別說Ruby。但一些動態語言的特徵已經慢慢的不同層次的滲透進了Java和.NET的堡壘。這些所謂的思想領袖留下了一座其他人沒有機會到達的虛擬鬼城。

我成為了一名開發者是因為我熱愛計算機,然而熱愛計算機,你必須擁抱變化,然而,我願意。但是我在想,喜鵲開發者們有時候喜歡通過改變來削弱他自身的技能。Andy Hunt 和 Dave Thomas在2004 IEEE column (pdf)上說的很好:

用戶才不關心你是否用了J2EE、Cobol或者一些奇妙的東西。他們只需要他們的信用卡授權被正確的處理,賬單被正確的列印出來。你幫助他們發現了他們真正的需求和一個他們設想中的系統。

相反的,被想要艱難登上最新技術的巔峰而沖昏頭腦的,Pete正在集中精力為客戶構建一個系統(使用COBOL)。它很簡單,幾乎是簡單的最高標準。但是它易用,易懂,可快速部署。Pete的框架混合了一些技術:模型,核心的生成器,可復用的組件等等。他實踐了最基本實用原則、什麼技術適合用什麼技術,而不只是什麼最新使用什麼。

當我們嘗試想造出一個全功能的應用框架來替換市面上所有的應用框架,我們肯定會失望。也許是壓根沒有這一類大一統的理論。就像後現代主義的其中一個印記:沒有宏大敘事,沒有大事件來指引我們,相反的,是有許多小的故事而組成。一些人認為,這就是我們這個時代的特點。

別因為自己沒有去嘗試那些新鮮事物而感到自己不夠好。誰會去關心你使用了什麼技術,只要它運行的流暢,你和你的用戶都滿意,這就足夠了。

新事物的美麗之處在於:永遠都會有新的東西出現。不要讓追求新鮮事物無意中成為你的目標。避免成為一個喜鵲開發者。有選擇性的追求一些新的東西,你將會發現你會成為一個更好的開發者。

推薦閱讀:

外語學習你都走過哪些彎路?
【認真想】想要提升自我,該讀什麼書?
大學一年級怎麼學習法理學和憲法?
不追求神話一般的速讀,我們該怎樣合理提高閱讀速度?
漢語言文學 師範 學習過程中無法找到重點,覺得知識點過於繁雜怎麼辦。?

TAG:编程 | 吹逼 | 学习方法 |