【譯文】程式設計師的兩種型別
翻譯 :陳哲學
歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。
正如Ben Collins-Sussman所說,程式設計師的型別並沒有十四種,與神話相反,實際上只有二種。
軟體開發的世界裡,有著二類程式設計師:我把他們稱作“ 20%”和“80%”。
“20%”這群人,許多人通常把他們稱作“alpha”程式設計師——他們是領導者、先驅者、引領者,是Google和Fog Creek軟體等大型公司都熱衷於招聘的一群人。他們是第一批在90年代安裝了Linux的人;週末只為樂趣去編寫Lisp編譯器和學習Haskell;踴躍地參加開源專案;一直能夠對當下最新、最酷的程式設計技術和工具有著清醒認識。
“80%”這群人,構成了軟體開發行業的主體。他們不愚蠢,卻僅是這個行業的一份子,去了學校,學了剛好夠用的Java/C#/C++,然後找到了為銀行、政府、旅遊公司、律師事務所等編寫內部應用軟體的工作。通常世界永遠看不到他們自己創造的軟體。他們使用微軟遞過來的工具——若在做C++相關的工作通常使用VS.NET,做java開發相關的工作則用像Eclipse和Intellij這樣的GUI IDE(圖形使用者介面整合開發環境)。他們從不使用Linux,怎麼也提不起興趣。很多人甚至從未用過版本控制軟體,如果用過,那隻不過是釋出在微軟盒子的(如SourceSafe),或者一些交給他們的老工具。他們只知道如何把工作完成,然後週末回家,忘記和工作相關的一切事宜。
當我和這一領域的程式設計師團隊一起工作時,我總是被“20%”和“80%”這二群人之間巨大的鴻溝所震撼,這顯得開源陣營和微軟陣營之間的分歧看起來像一條淺溝。
令人震驚的宣告 #1:大部分的軟體行業是由“80%”這群人組成。是的,世界上大多數地方是小型Windows開發公司,或招聘普通程式設計師的小公司。大多數公司只有少數的“20%”這群人,他們通常是遊說反對尖發老闆去改變政策,或升級工具、或使用一個健全的版本控制系統的人。
令人震驚的宣告 #2:大多數alpha-geeks會忘了上述宣告。他們從事開源軟體工作,加入Slashdot上充滿激情的密碼學爭論,下載最新的GIT版本,很有可能會忘記存在“80%”這群人的事實。他們對最新的Linux發行版、AJAX工具包或分散式SCM系統感到興奮,花費整個週末去研究並把有關的學習總結寫在部落格上,但令他們困惑的是,為什麼不能夠打動自己的同事去使用這些工具。
也許這不令我震驚,儘管如此,卻對每個人來說都是一個極好的、重要的提醒。
我經常認為我們在浪費時間寫大多被“20%”這群人閱讀的部落格。按我經驗來看,alpha程式設計師對其他人的影響微乎其微。若有,這需要幾十年的時間。如果你真的想改變軟體開發現狀,想在今年有所作為,你需要幫助我們踏出孤立的alpha程式設計師小群體,去影響世界上其他80%的人的變化。這遠遠比傳道給“20%”這群人要困難得多。這就是為什麼我如此欽佩Scott Mitchell這樣的人,因為他懂得向其他80%的人伸出援手的重要性。
我熱愛程式設計尤其是ASP.NET。我認為它是整潔,有趣和酷的程式語言,你可以從幾乎什麼都沒有,發展到在驚人的短時間內一個全世界都在使用的資料驅動web應用程式。此外,我想把這種熱情傳播給人們。我想對那些可能從未程式設計過,或是正在使用競爭關係的技術,或是剛剛起步的人說——“過來試試ASP.NET這玩意兒,讓我向你來展示它能做什麼!”。這就是我授課(比諮詢便宜),寫作(比授課報酬更高,但仍比不上諮詢),在南加州的當地使用者團體和社群贊助的會議上免費演講的原因。我為的是能廣泛地傳播這門技術。
我認為,像“24小時內教會自己X”使得手藝聽起來廉價的標題就等於在說,“俱樂部已經滿了,走開吧。”這並不是說,“讓我們歡迎新人,讓他們對這門技術感到興奮。”,而是說“新手沒關係,但必須首先意識到學著有多困難,我們工作有多辛苦,我們懂的比他們多。”我擔心,那些我們應該歡迎的人會把來自社會的這種情緒視為自負。
我希望這能對我容易些,因為我同意Scott的觀點。我不擅長他正在做的事情,我認為真正衡量成功標準的不是你令多少alpha極客關注你,而是你幫助過多少個典型的普通程式設計師,哪怕只是一丁點。如果你真的關心軟體開發的技術,那就會幫助我們在“20%”和“80%”這二群人之間搭建起橋樑。
更新:這是一個有爭議的文章,請參閱我對本文後續的進一步解釋。
免費領取驗證碼、內容安全、簡訊傳送、直播點播體驗包及雲伺服器等套餐