成為一個喜鵲程式設計師

2016-04-26    分類:程式設計師人生、首頁精華2人評論發表於2016-04-26

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

我時常在想,軟體開發人員在某些方面和喜鵲——一種臭名昭著地喜歡偷發亮的物品來裝飾它們巢穴的鳥類非常類似。像喜鵲,從定義上說明軟體開發人員是一種異常聰明,又有好奇心的動物。但是,我們非常非常容易因為閃亮的新玩具而分心。

Magpie with item in beak

我一點也不覺得閱讀類似Scott Hanselman的《Ultimate Developer Tool list》鼓舞人心。相反,它令人疲勞。軟體世界前進的改革步伐是無情的。我們的周圍充斥著各種所謂閃亮和新的東西,其概念本身開始瓦解,一遍一遍又一遍地重複這些陳詞濫調,直到它們成為無意義的名詞。“閃亮”和“新穎”最終成為平凡,甚至是司空見慣。於是,新穎不再唯一,閃亮也不再有趣。最終,你會厭倦於無休止地追逐閃亮的新事物。

並不只有我這樣認為。Jeremy Zawodny也注意到正在減少光澤的閃亮新事物:

在一年前,我退訂了Steve的部落格,因為他習慣於寫那些令人窒息的時尚玩意兒,喜歡寫最新最閃亮的東西——常常一天幾次。我看到過太多的人,只是為了跟上這種拍馬莫及的炒作速度,而忘記去考慮這些閃亮的最新事物是否真的能對實現巨集偉藍圖有所幫助。

Dave Slusher表示同意:

[Robert Scoble]說過,大家發給他的電子郵件太多了,而這些都是無效的公共關係。他建議我們將訊息寫在他的Facebook牆上。那個時候我已經關注了Scoble的Facebook,所以我肯定這樣的話他說過多次。能Twitter,不要email。能Jaiku,不要Twitter。留言,發資訊,打電話,發郵件,再到不要發郵件,不要打電話。夠了!我沒有試過與他取得聯絡,我只是覺得這隻一貫的喜鵲,從這個平臺講到那個平臺,講的都是垃圾,讓我覺得厭煩不已。一年多前我之所以放棄TechCrunch,也是因為相同的感覺。我已經厭倦於那些所謂的另闢蹊徑——略為不同於當前的做事方式,以及不認可這種微小的改變值得我們顛覆性地拋棄一切來擁有。我正式宣佈放棄追逐更新、更閃亮的事物。

這不僅僅是因為科技新聞是無窮無盡的。也是軟體宗教戰爭潮漲潮落的必然,但是這場戰爭不斷地讓我們失望,就像偏離正路的岩石跑到了一條快速流淌的溪流。我敢打賭,David Megginson概括的這個過程聽上去非常熟悉:

  • 1.精英(大師級)開發人員發現有太多平庸的人正在使用其當前的程式語言,於是開始尋找一些能夠更好地將他們區別於那些庸庸碌碌同事的程式語言。
  • 2.精英開發人員不願走尋常路,於是想要尋找新的、鮮為人知、使用者甚少的語言。
  • 3.精英的開發人員推動了新語言的發展,他們貢獻了程式碼,編寫了多種庫等,然後傳播新語言。亞精英(高階)開發人員跟隨精英開發人員的腳步,也來學習新語言,開闢了書籍、培訓等的市場,同時也加速了語言的開發和測試。
  • 4.亞精英開發人員,往往擁有巨大的影響力(因為精英開發人員往往是孤膽英雄,趨向於獨立地工作於研究專案,而不是窩在生產開發團隊裡),他們會推動新語言在工作場所的發展。
  • 5.注重定期學習的龐大的開發人員群體然後認為,他們必須購買書籍、參加課程以便於學習一門新的語言。
  • 6.於是回到開頭,精英開發人員發現有太多平庸的人正在使用其當前的程式語言,於是開始尋找其他能夠更好地將他們區別於那些庸庸碌碌同事的程式語言。

現在,請你坐好,因為接下來我要告訴你一些壞訊息。你對Ruby on Rails感興趣?那是去年的風向標,我們現在已經朝別的方向行進了。

如果你認為,從統計的角度來說,絕大多數的程式設計師還沒有體驗過任何形式的動態語言——更不用說Ruby——那就太荒謬可笑了。一些動態語言功能已經滲透到了Java和.NET的堡壘,並逐漸取得了不同程度的成功。這些所謂的思想領袖會在任何人有機會到達之前,離開這座虛擬的廢棄城鎮。

我之所以成為一名程式設計師,是因為我愛電腦,要熱愛電腦,你必須熱衷於改變。我正是如此。但我認為喜鵲開發人員有時改變自己的手藝反而是一種損害。Andy Hunt和Dave Thomas的看法是,Pragmatic Programmers(實用型程式設計師)是Ruby中最後一波改變的重要組成部分,這在一份2004年的IEEE column中說得非常詳細(pdf)。

使用者不關心你使用的是J2EE,COBOL,還是其他。他們只希望你能提供他們想要的功能。所以,你需要幫助他們發現他們真正需要的是什麼,然後一起想象系統是什麼樣的。
與其得意忘形或盲目地去。追逐技術的前沿,還不如專注於[用COBOL]為自己或客戶建立一個有效的系統。不但易於使用,還易於理解和快速部署。框架使用多種技術的混合:用於建模的技術,用於程式碼生成的技術,還有一些可重用的元件,等等。我們工作最根本的是務實原則,目的是為了有效完成工作,而不能僅僅是因為新穎或時髦就被迷得神魂顛倒。
當我們試圖使用全能型應用程式框架來終結其他所有應用程式框架的時候,我們(作為一個行業)就會一敗塗地。

不要覺得不夠,如果不能用最閃亮,最新的東西裝飾你的窩。只要有效,並且能滿足你和你的使用者,那麼誰會在乎你使用的是什麼技術?

新事物是美的,它有著一種猶抱琵琶半遮面的神祕感。不要在不知不覺中讓追求新的、閃亮的東西成為你的目標。不要成為喜鵲開發人員。有選擇性地追求閃亮和新穎的東西,有助於你成為一個更好的開發人員。

譯文連結:http://www.codeceo.com/article/magpie-developer.html
英文原文:The Magpie Developer
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章