也許你已經知道了,咱們正在招聘最優秀的程序員。不錯,每一個人都這樣說。可是咱們的程序員能戰勝大家的——任什麼時候候。好比,米奇雖然只有5英尺高,但他是一個有至關實力的擊劍手。維托爾德之前是一個6’3″的職業冰球選手。內特喜歡以丟匕首爲樂。固然,他們都是頗有水平的程序員。程序員
發現這些人才,並非你好好上班就能完成的事。事實上,我生活的一半時間都花在了上面,而麗莎差很少投入了她所有的時間。咱們有一支招聘大軍,搜遍世界任何一個角落,沒有一份簡歷漏掉。總共算起來,咱們有大量的簡歷。不少咱們根本不看,由於簡歷——說實話——徹底沒有價值。相反,咱們把全部的重點都放在了幾個關鍵問題上,咱們會問全部的應聘者,每一個問題的主旨都是要揭示一個關鍵信息:這是咱們真的想要的人嗎?編程
你知道,經驗是廉價的。只要有時間,你就能有經驗。技術本領難求,但事實上只要你努力就能獲得——不少人都能作到。可是態度就不同了。你要麼有,要麼沒有。咱們要找的是對編程有熱情的人,他們離不開編程。他們大可能是大學以前——有些是中學以前——就開始編程了,並且一開始就停不下來。他們開發各類程序,從彙編到jQuery,從我的電腦到移動手機,從複雜的底層計算圖形到高端的社交網絡。他們各個領域無所不至。無所不至,可是,不包括.NET。服務器
讓我來解釋一下——.NET是一個很不錯的語言。它很新潮,很獨特,各類花哨的東西應有盡有。若是你要是開發Windows Mobile 7應用(統計數據顯示你應該不是),它應該是你的不二選擇。選擇.NET也是一種選擇,若是有誰要作這樣的選擇,我不會阻止,但要問一聲「爲何?」網絡
不要誤解個人意思:.NET在你的簡歷上並不意味着一個大紅叉。但在電話篩選中的確會引發個人疑問,其中的理由讓咱們用個開心的比喻來解釋:架構
用.NET進行編程就像是在麥當勞作烹飪。那裏有全套神奇的設備可以自動的造出全部的東西。只有你按一下正確的按鈕,跟着提示燈的指示,你就能夠批量的製造出天衣無縫的1.6盎司的漢堡,比地球上的任何其餘人都要快。app
然而,若是你想作出一個1. 7盎司的漢堡,很抱歉,你作不到。很簡單,沒有這樣的按鈕。餡餅是預先作成了那樣的尺寸。它們作出來以後就被冷凍,全部你沒法把它們揉到一塊兒作成其它尺寸,解凍機和烹飪機是一體的,你沒有辦法在它們之間進行攔截。麥當勞的廚房產出的食品精確的和麥當勞的菜單保持一致的——這種模式使你的大腦不須要任何的思考。但是,它不能偏離菜單,對烹飪機器的任何你妄想的壓擠變形都會致使它中止工做,而被送回返廠維修。less
然而,咱們要找的是另一種人。一種可以用削尖的樹棍在野外篝火上燒烤松鼠的人——那是在深山老林裏爲了生存而捕捉並剝了皮的松鼠。咱們不須要快餐店廚師長,咱們要的是由野狼帶入文明社會的《蠅王(Lord of the Flies)》,在堆滿銅錢底壺和精選香料的法國廚房裏餵養大的人。咱們要的人不只僅能作漢堡,他要可以從無到有作出任何東西。工具
你也看見了,微軟是特地這麼作的(並且很是成功)。.NET要跟其它全部東西都表現出儘量的不一樣,讓程序員們遠離細節,這樣就致使他們徹底完全的依賴微軟神奇的編程工具套件,讓這些工具替他們思考。微軟早在舞臺上只有他一個演員時就這樣作,明確的使這些東西要麼很難移植到非Windows平臺,要麼看起來很難實現,以此來保持他的壟斷地位。開發工具
這種作法——或者這種對立的思惟——致使了無數的分歧。小的方面,好比在文件路徑中使用反斜槓,而不是像其它經典系統中使用正斜槓,或在DirectX中使用左旋座標系統,而不是使用自從計算機誕生以來就採用的右旋座標系統。大的方面,好比經過無數的分層把網絡架構搞的晦澀難解,令人們很難想象出字節在網絡中如何傳輸的。還有成百上千這樣的事情:他們的開發工具在你沒有寫任何代碼前就先生成了一大堆複雜的文件,笨重的服務器上原本對於任何人只須要敲幾下鍵盤的操做卻非要啓動一個遠程的GUI終端,那是一個對開源許可協議過敏的編程文化。這樣的事情舉不勝舉。spa
這些並不會讓你成爲一個「差程序員」。若是你只想儘快的作出一個1.6盎司的漢堡,把餘生奉獻到無盡的系列菜單上,那全部的這些特立獨行對你來講不會有任何影響。可是,天天你在那種廚房裏的日子並非真正的廚房生活,學不到如何作真正的食物,寫不出真正的代碼。
更糟糕的是,在微軟廚房裏學一天的東西須要兩天去忘記,我是說,一旦你問心無愧的走上了.NET的事業道路,你很難再走回頭路。由於你被深深的桎梏到了這些工具和技術裏,而這些工具和技術跟.NET以外的東西絕不相干,這樣一來,對於一個創業公司來講,你實際上沒有什麼價值,你的這些年就如南柯一夢。
那麼,這篇文章是要告訴你什麼?兩個事情:
這些聽起來很刺耳,但倒是事實。有時候咱們只有松鼠能夠吃,咱們須要能把它作出好的味道。