為什麼我們不要 .NET 程序員

本文是從 Why we don』t hire .NET programmers 這篇文章翻譯而來。

  也許你已經知道了,我們正在招聘最優秀的程序員。不錯,每個人都這樣說。但是我們的程序員能打敗你們的——任何時候。比如,米奇雖然只有5英尺高,但他是一個有相當實力的擊劍手。維托爾德以前是一個6』3″的職業冰球選手。內特喜歡以丟匕首為樂。當然,他們都是很有水平的程序員。

  發現這些人才,並不是你好好上班就能完成的事。事實上,我生活的一半時間都花在了上面,而麗莎差不多投入了她全部的時間。我們有一支招聘大軍,搜遍世界任何一個角落,沒有一份簡歷漏掉。總共算起來,我們有大量的簡歷。很多我們根本不看,因為簡歷——說實話——完全沒有價值。相反,我們把所有的重點都放在了 幾個關鍵問題上,我們會問所有的應聘者,每個問題的主旨都是要揭示一個關鍵信息:這是我們真的想要的人嗎?

  你知道,經驗是廉價的。只要有時間,你就能有經驗。技術本領難求,但事實上只要你努力就能得到——很多人都能做到。但是態度就不一樣了。你要麼有,要麼沒有。我們要找的是對編程有熱情的人,他們離不開編程。他們大多是大學之前——有些是中學之前——就開始編程了,而且一開始就停不下來。他們開發各種程序,從彙編到jQuery,從個人電腦到移動手機,從複雜的底層計算圖形到高端的社交網絡。他們各個領域無所不至。

  無所不至,但是,不包括 .NET。

  讓我來解釋一下——.NET是一個很不錯的語言。它很新潮,很獨特,各種花哨的東西應有盡有。如果你要是開發Windows Mobile 7 應用(統計數據顯示你應該不是),它應該是你的不二選擇。選擇 .NET 也是一種選擇,如果有誰要做這樣的選擇,我不會阻止,但要問一聲「為什麼?」

  不要誤解我的意思:.NET 在你的簡歷上並不意味着一個大紅叉。但在電話篩選中的確會引起我的疑問,其中的理由讓我們用個開心的比喻來解釋:

  用 .NET 進行編程就像是在麥當勞做烹飪。那裡有全套神奇的設備能夠自動的造出所有的東西。只有你按一下正確的按鈕,跟着提示燈的指示,你就可以批量的製造出完美無缺的1.6盎司的漢堡,比地球上的任何其他人都要快。

  然而,如果你想做出一個1.7盎司的漢堡,很抱歉,你做不到。很簡單,沒有這樣的按鈕。餡餅是預先做成了那樣的尺寸。它們做出來之後就被冷凍,所有你無法把它們揉到一起做成其它尺寸,解凍機和烹飪機是一體的,你沒有辦法在它們之間進行攔截。麥當勞的廚房產出的食品精確的和麥當勞的菜單保持一致的——這種模式使你的大腦不需要任何的思考。可是,它不能偏離菜單,對烹飪機器的任何你妄想的壓擠變形都會導致它停止工作,而被送回返廠維修。

  然而,我們要找的是另外一種人。一種能夠用削尖的樹棍在野外篝火上燒烤松鼠的人——那是在深山老林里為了生存而捕捉並剝了皮的松鼠。我們不需要快餐店廚師長,我們要的是由野狼帶入文明社會的《蒼蠅之王(Lord of the Flies)》,在堆滿銅錢底壺和精選香料的法國廚房裡餵養大的人。我們要的人不僅僅能做漢堡,他要能夠從無到有做出任何東西

  你也看見了,微軟是特意這麼做的(而且非常成功)。.NET要跟其它所有東西都表現出儘可能的不同,讓程序員們遠離細節,這樣就導致他們完全徹底的依賴微軟神奇的編程工具套件,讓這些工具替他們思考。微軟早在舞台上只有他一個演員時就這樣做,明確的使這些東西要麼很難移植到非Windows平台,要麼看起來很難實現,以此來保持他的壟斷地位。

  這種做法——或者這種對立的思維——導致了無數的分歧。小的方面,比如在文件路徑中使用反斜杠,而不是像其它經典系統中使用正斜杠,或在DirectX中使用左旋坐標系統,而不是使用自從計算機誕生以來就採用的右旋坐標系統。大的方面,比如通過無數的分層把網絡架構搞的晦澀難解,使人們很難想象出位元組在網絡中如何傳輸的。還有成百上千這樣的事情:他們的開發工具在你沒有寫任何代碼前就先生成了一大堆複雜的文件,笨重的服務器上本來對於任何人只需要敲幾下鍵盤的操作卻非要啟動一個遠程的GUI終端,那是一個對開源許可協議過敏的編程文化。這樣的事情舉不勝舉。

  這些並不會讓你成為一個「差程序員」。如果你只想儘快的做出一個1.6盎司的漢堡,把餘生奉獻到無盡的系列菜單上,那所有的這些特立獨行對你來說不會有任何影響。但是,每天你在那種廚房裡的日子並不是真正的廚房生活,學不到如何做真正的食物,寫不出真正的代碼。

  更糟糕的是,在微軟廚房裡學一天的東西需要兩天去忘記,我是說,一旦你心安理得的走上了.NET的事業道路,你很難再走回頭路。因為你被深深的桎梏到了這些工具和技術里,而這些工具和技術跟 .NET 之外的東西毫不相干,這樣一來,對於一個創業公司來說,你實際上沒有什麼價值,你的這些年就如南柯一夢。

  那麼,這篇文章是要告訴你什麼?兩個事情:

  1. 如果你想着在一家創業公司工作,別用.NET。它會讓你不受歡迎。
  2. 如果你創辦了一個公司,想招聘真正的人才,留心那些簡歷上有 .NET 的人,問他們為什麼要寫上它。

  這些聽起來很刺耳,但卻是事實。有時候我們只有松鼠可以吃,我們需要能把它做出好的味道。

  請關注我們的新浪微博:http://weibo.com/aqee


想在手機閱讀更多程式設計資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems