在 teachingopensource.org,我们认为可以,并且我们写了一本书来帮助大家。以下摘录来自我们新教科书的前言,实用开源软件探索,该书根据 Creative Commons BY-SA-3.0 获得许可。这是一本像开源软件项目一样运作的书。换句话说:欢迎补丁。
2006 年 3 月,大卫·A·帕特森写了一篇题为“21 世纪计算机科学教育”的文章。当时,大卫·A·帕特森是世界最大的教育和科学计算学会——计算机协会的主席。在他的文章中——遗憾的是,除非你是 ACM 会员,否则你无法阅读——他倡导对计算机科学的教学方式进行根本性变革。他倡导的变革之一:在标准本科计算机科学课程中纳入开源软件开发课程。
人们可能会认为,如此有影响力的人士发出的如此明确的号召,会引发一股热情。当 ACM 主席宣布“现在是教授开源开发的时候了”时,学术界肯定会效仿,对吧?
情况比这复杂一点。
在过去的几年里,我们花了很多时间与计算机科学教授交谈。我们主要问了很多问题——实际上,是重复问同样的问题。
- 你在课堂上使用开源软件吗?(越来越多。)
- 你的学生对开源感兴趣吗?(越来越感兴趣。)
- 你或你的学生参与开源软件吗?(很少。)
- 你教授开源开发实践吗?(几乎从不。)
对于最后两个问题,后续问题总是“为什么不呢?”
答案总是“因为这很难。”
教授们不教授开源实践是有充分理由的。开源倡导者很容易解释这些理由。但在某种程度上,人们必须接受这样一个观点,即大多数教授都是善意的,但受到各种情况的束缚,这些情况使得向学生介绍开源开发变得令人沮丧地困难。
那么为什么要费心呢?
答案很简单:在开源软件项目中取得成功所需的技能,与在任何大型软件项目中取得成功所需的技能完全相同。最大的区别在于,只需一点指导,任何人都可以通过开源世界来培养他们的软件技能。
我们希望这本教科书能够为整整一代想要学习如何以开源方式成为更好的软件工程师的学生提供指导。
13 条评论