多年来,使用实习生和最近的毕业生,我注意到,虽然传统的计算机科学计划产生了解算法和数据结构的学生,但它们在生成准备开发生产代码的毕业生时它们不太成功。企业不希望雇用新孵化的开发商,他们可以立即跳到深渊,但大学可以更好地准备学生在折腾他们的深处。

软件开发是独一无二的,开发人员都是其项目的建筑师和施工工作人员。有很少的行业,同一人们都设计和建造。虽然大学教授毕业生了解建筑的基本面,但它们往往没有教授建筑基础。

以下是计算机科学计划可以改善的三个领域。

1.打破它

我所看到的新毕业生的最大挑战是,他们在较小,更容易解决的块中缺乏分解大问题。他们在大学期间的大多数编码经验来自家庭作业,经过精心制作,教授一个基本的课程。虽然重要的是,作业专注于紧密定义的问题,但有助于学生学习如何将大问题分解为可管理的块。

我从Digipen Tearch of Tearch of Sail大学等比赛开发学校采访的学生经常在这一领域完成,因为他们的学位计划将跨越多个学期的项目集成到课程中。对于大学来说,将一个高级项目作为毕业生要求,同样的贸易学校确实将是教学毕业生如何努力解决更大问题的好一步。如果学会在大学的支持下,在大学的支持下,他们会在企业中工作更好地为企业做好准备。

2.苦难是其他人

狭隘的家庭作业作业有另一个副作用:他们没有让学生练习学习如何与其他人进行编码。软件开发是一项团队运动,但学术编码很少让学生公开到这方面。传统的CS计划确实有集团项目,但范围通常有限,即一方或两个人在其他人的沿海沿着其他人的沿海(根据我的实习生)。

对于小组项目,学生不学会分解大问题,以便多个人可以共同努力,他们不学习如何在多个开发人员跨越工作。这又是一个游戏开发学校Excel的领域;大多数学校都需要长期的游戏开发项目毕业。来自这些学校的毕业生经常被广泛地进行基本的敏捷开发原则和任务跟踪,使其很容易将其插入开发团队。

这些项目强迫学生不仅要学习如何分解问题,以便多个人可以致力于它们,而且还如何沟通发展。软件开发人员的日常生活中的大部分时间都涉及与他人交谈,以解决问题的最佳方式。这是一个你无法自己发展的技能。

3.苦难是其他人的代码

学习谈论软件问题是必不可少的,但更大的挑战正在学习如何阅读和解码其他人的代码。家庭作业问题经常要求学生自己撰写完全新的代码,因此他们不会制定阅读其他人代码的策略。隔离也会导致他们开发在与其他开发人员合作时具有具有挑战性的编码行为。例如,不必要的创造性缩进策略肯定会挫败他们未来的同事。

鉴于这么多开发人员的工作是关于修改他们没有写的现有代码,将学生暴露给这个世界非常重要。长期组项目是解决此问题的可行解决方案,但甚至需要学生使用或修改开源库将有助于将它们暴露给其他编码样式,并将帮助他们学习读取代码。贸易学校,特别是游戏开发学校,将学生介绍给各种游戏发动机和API,以获得Maya和3ds Max等工具。与这些API一起使用教授的指导,教授学生如何使用新技术学习和合作,当他们进入工业时是一个关键技能。

在软件开发中,没有更换经验。确保学生们享受真实世界的软件开发,而他们的教授和同龄人在那里支持他们可以让学生在其职业生涯中取得成功。许多计算机科学课程是谨慎成为程序员小狗工厂,但他们的毕业生并不总是留下所需的软件开发生存技能。将学生敞口到软件开发的工艺以及背后的理论对于生产在企业软件开发世界取得成功的毕业生至关重要。