计算机科学专业应该传授的3件事
没错,只有3件事。我多么希望在大学期间学会很多件事,但是我 深知没有任何专业会对你进行完整而透彻的教育。一门专业是为了传授你基本知识并且教会你学习其他知识的技巧。然而作为一名软件开发员,随着经验的积累,我 发现越来越后悔在工作之前没有学习深入理解过本文中列出的3件事。
我相信,任何计算机专业如果能够更多的关注这3件事,都会变得更有意义。如果工作之前更加深入的学习这3件事,相信我会更具实战经验,而不是去恶补工作所需的每件事。我会更加从容的应对工作上的需求并且成为IT界更加优秀的一员。
1. 开源开发
我发现大学里真的从未传授过开源。虽然一些学生自己接触并且加入其中,但是大多数人根本就不知道。在人的一生中,没有任何阶段能与学生期间一样,有闲暇时间去从事开源开发。并且这对彼此都有好处。而现实是两者(学生和开源运动)经常失之交臂。
我相信大多数计算机科学学科应该鼓励学生展开新的开源项目或者加入已有的项目。这应该成为大学课程和分级过程的一部分。开源项目可以籍此获得宝 贵的贡献,同时学生不仅可以获得实战经验,也可以实际使用开发工具,体验开发过程,并且获得宝贵的人际沟通技巧。这些是学校的模拟环境中提供不了的。(编 注:伯乐在线在去年10月份编译的一篇文章就已提到“对无工作经验的学生来说,开源项目的工作经历绝对是简历上的亮点”,请参阅《程序员:增加编程经验的3种途径》。)
2. 敏捷开发过程(例如极限编程、Scrum)
我会不断修正这一条的内容:我希望大学课程传授任何一种开发过程,甚至是瀑布模型,但是要达到让学生至少有所了解的程度。我发现有关开发过程的 内容都被敷衍的带过。的确有些课程涉及到开发过程,但是没有一门课程真正解释了使用开发过程的必要性并且没有相关的实践应用。在这种情况下学生几乎不能接 受这个概念。
学生学习敏捷开发过程本是一件很好的事情,因为当下它们和行业更相关。向大学生传授敏捷开发过程可能是改善软件行业一个最好的方法。学生会对如 何构建软件有一个真正的理解,并且不会被技术落后的公司洗/脑(周围仍然有许多这样的公司)。而现实情况是,学生参加工作后受公司环境影响,完全忽视了正 确的做事方式。这对学生和IT行业来说都是一大损失。
3. 企业政治/建立人际关系
大多数人可能觉得这件事无关紧要,但是我相信这是目前最重要的一件。在这点上,我就读的计算机科学专业让我失望。过分的强调技术会让你永远也不知道公司里的生活是什么样子的。当然你自己很难理解这一点。
对刚刚从计算机科学专业毕业的学生来说,你认为技术是这个世界上最重要的事情。因此当你在公司站稳脚跟的时候你会大吃一惊:凡事看起来如此不正常并且进展缓慢。你会理解这一切,直到你明白技术根本不是最重要的,企业政治统治着一切。
即使在高科技公司,政治也处在统治地位并且政治的基石是人际关系。恰当的人际关系会让你工作顺利,生活更加称心如意。然而政治和人际关系的定义不明确,没有硬性的规定,凡事都是相对的并且具有弹性。当然,对于满脑子技术的人来说,这是世界上最令人沮丧的事。
然而就像其他事物一样,事情并非一定如此。政治和人际关系的建立具有基本准则。这些准则可以通过学习获得。如果是这样,那业界为什么还到处急需 具有较强人际沟通能力的技术人才?因为并非是毕业生缺乏人际沟通的技巧(许多计算机科学专业的毕业生拥有很强的这类技巧),而是他们缺乏利用这些技巧建立 人际关系的能力。
这都是我的一家之言。我已经毕业好几年了,也许在这期间情况发生了改变并且我上面提及的事情都已经成为大学课程的一部分(这不大可能,如果真是 这样那很让我震惊)。你可能不同意我的观点(其中几点或全部)。你认为还有什么其他重要的科目是计算机科学专业应该涉及的?请在回复中告诉我。
译文出处:伯乐在线 - 职场博客
译文链接:http://www.jobbole.com/entry.php/463