软件工程师需要计算机科学学位么?
软件工程师这个角色并不一定需要计算机科学学位。然而,近日 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?