黑客準則對開發者有利還是有弊?
原創【51CTO.com快譯】程序員在項目進程、開發方式和最佳實踐上強調獨立性和創新精神,這對他們來說是不利的。
我為自己是一名黑客而自豪,我所掌握的編程技術主要靠自學成才。早在上世紀80年代,我先從初步掌握Basic開始,再逐漸學習Pascal 、計算機語言、C語言甚至還有類似Forth那樣的obscure語言等。對我而言,編程的樂趣就在于不斷的探索和試驗,而計算機就是一個能夠以我的意志自由修改的世界,由此獲得的知識便是對自己的獎勵。
我們這一代人都是靠自學,但今天要想進入編程領域則變的更加便利,新手可以先從學習HTML和JavaScript上路,然后是PHP 、或者為電子表格寫Visual Basic宏代碼,最終升級到全面的應用開發。入門工具有很多,如微軟的 Small Basic ,在歷史上從未出現過如此高質量的供學生學習用的應用源代碼。計算業已經發展壯大,但黑客精神依然存活得很好。
但是,我不得不質疑:這真的是件好事嗎?如果每個美國小學生掌握的電腦知識比他們的父母還要豐富,為什么印度IT外包供應商HTC的CEO Vineet Nayar聲稱,大多數美國大學畢業生“達不到應聘標準” ?美國人在技術上真的落后嗎?亦或是,在黑客理念的熏陶下培養出來的程序員無法適應現今的工作?
美國人是如何落入黑客情網的
總的來說, PC革命史上的創始人都是黑客, Steve Jobs和Steve Wozniak共同創建蘋果時,大學還都未畢業;而比爾蓋茨直到2007年才畢業。
顯而易見,這些類似的事例主導了美國公眾的意識。美國人熱衷于從貧窮到富裕、從渺小但富有勇氣的門外漢成長為行業精英的故事。而早期個人電腦時代的故事就像是濃縮版的美國夢。
難怪有段時間,計算機編程在美國公眾的意識里就相當于黑客。如果你連續幾天都對著電腦,做一些常人無法理解的事情,可能你命中注定要干一番大事業,也許會成為下一個比爾蓋茨!不論你在做什么,10年之后我們有可能會在報紙上看到你。你的媽媽可能會為你擔心,但她也會為你感到驕傲——即使開始她并不理解你所做的事情。
當然,這十分可笑,真正的行業精英鳳毛麟角,并不是每個程序員都會聞名于世——事實上這很困難。但一些程序員用一些伎倆非法牟利,把對計算機的熱愛轉化成無窮的財富,這更加愚蠢——也存在風險,因為他把心思用錯了地方。
美國程序員錯在哪里?
HTC 的Nayar認為,他碰到的美國大學畢業生都一味追求高薪,而在印度、中國、巴西和南非這些國家的學生并沒有這種期望——他們更容易投入學習“枯燥”的細節開發過程、六西格瑪和ITIL等專業法則,并廣泛了解系列開發工具——美國畢業生的簡歷中往往看不到這些。
換句話說,美國的大學畢業生希望被當成“牛人”,并得到同等待遇,而發展中國家的畢業生則更傾向于團隊工作。兩者都著重于成功,但在不同的期限,成功的定義也各不相同。
問題變的更加深刻了。美國式黑客不但不是合格的團隊成員,也不是合格的程序員,鑒于以上原因,新的畢業生不被看好。 “牛仔程序員”可能精通技術,但他們的代碼不能長期維護,他們也不太可能遵守組織發展進程和編碼標準。導致的結果是,質量——包括測試、調試、代碼審查和重構——很可能受到影響。
美國的軟件開發管理人員常常抱怨印度的程序員太木,和美國程序員相比,他們缺乏直覺和創業特點。但Nayar卻說,美國的程序員已經在錯誤的道路上越走越遠。難道在20世紀80年代我們過于崇尚黑客理念了,以至于培養出的程序員無法適應現在的商業環境?
教育改革時機已到?
部分原因可能是程序員都接受過美國大學的教育。如果要開發軟件,你必須取得計算機科學學位。但獲得高等計算機科學學位的人會告訴你,計算機科學通常被認為屬于數學分支。而這種更高的水平,與實踐要求卻相差甚遠,要想在商業環境獲得成功,程序員需要接受實踐培訓。
也許需要針對這樣的學生——相比探索計算機理論來說,對計算機工業更有興趣——設立一種新的計算機工程學士學位,來彌補計算機科學體系。程序員的頭銜往往是“軟件工程師”和“軟件設計師” ,但他們受到的培訓與真正的工程師和設計師所必須具備的條件還相差甚遠。 (在一些國家, “工程師”和“設計師” 的頭銜甚至受法律保護,電腦程序員不允許使用。)一個真正的軟件工程師不僅要在軟件開發要點上,還要在進程、方法、經營戰略和有效溝通上接受強化訓練——Nayar認為現在的學生在這些方面比較欠缺。
千萬別誤解我的意思,我一直為自己是一個黑客感到自豪,我認為,具有黑客精神的青年學生在計算機專業上總是更加優秀。但是,黑客行為準則在今天的經濟體制下并不適用。和上世紀80年代釣大魚的故事一樣,“計算機技術出色就意味著一夜成名”的時代已經過去,我們應該教育年輕的黑客們,使他們對黑客準則的熱情降溫。簡言之,是時候讓軟件開發成熟起來了。黑客準則是好的,但良好的團隊精神和協作能力才是明天成功的關鍵。我們的教育系統只有在這些領域提供良好的基礎,年輕一代的開發員才會茁壯成長起來。
【編輯推薦】