本文來源於我在InfoQ中文站翻譯的文章,原文地址是:http://www.infoq.com/cn/news/2012/05/sweng-cs-degree
軟體工程師這個角色並不一定需要電腦科學學位。然而,近日Yahoo CEO Scott Thompson因電腦科學學位造假而被迫辭職一事引起了人們的熱議,我們是否需要一個大學文憑呢。比如說,在Andrew Binstock為Dr. Dobb所撰寫的一篇名為“Software Engineers All!”的文章中提及了軟體工程師是否真的需要一個電腦科學學位才能完成好工作。
Binstock說到:
軟體工程師這個新術語與其表示的實際含義並不相符。在早些時候,“分析師”這個頭銜為人所津津樂道。在昔日的資料處理世界中,入門層級是“程式員”。當需要變換頭銜來反映這種職位時,程式員又被提升為了“程式員/分析師”,最後的層級就是“分析師”。這種變化表明員工已經將程式遠遠拋在腦後了。但事實上,大多數分析師要比那些初級同事做更多的編程工作。除了某些職位需要將分析作為編程的補充以外,分析常常並非工作的主要組成部分。
文章提到馬克 紮克伯格與比爾蓋茨都是軟體工程師,他們很成功,但卻並沒有電腦科學學位。因此,Binstock的結論是:
這種不明確的“等式”為那些具備良好編程技能但卻缺乏學術造詣的人們提供了很大的空間。總而言之,你現在應該明白我的意思了。親愛的讀者,你們就是軟體工程師!
並非所有讀者都認同Binstock的結論。比如說,pjmlp就說到:
對於每一種職業來說都有一條學習路徑來證明這個人具備所需的技能,能夠完成自己的工作。我的經驗就是自學成才的程式員是無法交付大多數軟體公司所期望的高品質的產品,因為他們的技能只能通過業餘時間所習得。
RussG則持有不同的觀點:
很遺憾,電腦科學學位無法保證一個人能夠成為優秀的程式員。一般說來,電腦科學與電腦編程是兩回事,大多數畢業生都希望畢業後能夠在學術界謀得一席之位,他們並不想加入能夠開發出百萬行代碼應用的團隊。
另一個重要的討論點涉及到軟體工程中更為具體的角色,比如說軟體架構師。負責系統架構的軟體架構師需要電腦科學學位麼,他可以是自學成才的軟體工程師嗎?工程師是否既需要學術教育,也需要很多的實踐經驗嗎?愛因斯坦曾經說過,“從理論上來說,理論與實踐是一樣的。從實踐上來說,他們則是不同的”。
查看英文原文:Do Software Engineers Need a Degree in Computer Science?