3種類型的程序員:“蟲族”,“人族”,“神族”
吃苦耐勞型,“人族”程序員的個人能力并不是很強,但是他們的能力足以完成各種工作了。他們的代碼既不迷人,也不優雅,但是這些代碼可以完成任務,并且工作得也還可以。他們可以使用公司能夠駕馭的任何工具。
堅韌不拔的人族程序員
通常,在一個創業型的公司中,一個人族的程序員可以發展的很好,或者也可能會成為一個技術方面的領導者。37 signals就是一個以人族程序員為主的公司。
“蟲族”程序員
對于一個公司來說,“蟲族”程序員是十分重要的。他們需要使用他們熟悉的IDE(也就是說,他們需要“蟲族”的土地)。管理層必須要聘請足夠多的蟲族程序員才能按時交付產品,即使對于最基礎的產品來說,情況也是如此的,但是他們可以聘請一大堆蟲族程序員來解決擴展的問題。他們依賴于他們的“女皇”。
Visual Studio與Oracle是蟲族程序員的好伙伴
在公司這個“大機器”中,作為一個“小齒輪”,一個“蟲族”程序員可以很好地發揮作用,他們更喜歡使用微軟或Oracle的產品。大多數離岸外包公司都是一個以“蟲族”程序員為主的公司。
“神族”程序員
高級的數學知識是“神族”程序員的主要工具;這極大低限制了他們的數量。他們可以使用像Lisp或ML那樣的語言開發出令人嘆為觀止的產品。
ML是一個通用的函數式編程語言,它是由愛丁堡大學的Robin Milner及他人在二十世紀七十年代晚期開發的。它的語法是從ISWIM得到的靈感。作為元語言的ML是為了幫助在LCF定理證明機中尋找證明策略而構想出來的。(之前的元語言是pplambda,它聯合了一階邏輯演算、多態及Λ演算)。它使用了Hindley-Milner類型推論算法來推測大多數值的類型,而不需要四處使用注解。
神族程序員的起源(陳景潤與華羅庚)
在“神族”程序員成熟到到具有創辦一個公司的遠見卓識之前,他們會一直呆在學術界,例如,Google的PageRank就是一個“神族”程序員的遠見卓識,他一手創辦了Google公司,因此,Google公司是一個以“神族”程序員為主的公司。
寓意
如果你創建了一個公司,那么你必須要聘請員工來做事。你必須找的合適的人,把他們放到合適的工作崗位上,這樣的話,公司才能作為一個整體運營下去。
在一個公司中,每種類型的程序員都有他們的優點和缺點,我們的目標是利用這些優缺點,調整公司的組織結構,讓大家可以高效率地在一起工作。
如果我們忽略掉了他們之間的區別,或者對他們之間的區別存在錯誤的認識,那么我們會喪失他們可以在一起工作的可能性,這樣的話,就無法做出真正偉大的產品了。