在 POSSCON 教育主题的演讲中,John "maddog" Hall 发表了题为“FOSS 教你两到三遍”的演讲。作为一名拥有 42 年计算机行业从业经验的资深人士,maddog 见证了这一切。此后,他将注意力转向教育领域,致力于培养一批具有思考能力和自主学习能力的终身学习者。
我将直接跳到我最喜欢的部分:如果我们希望学生能够学习“开源之道”并参与 FOSS 社区,我们需要教给他们哪些技能?以下是 maddog 列出的他们需要掌握的技能:
- 进行分布式开发
- 许可软件
- 制定正式标准
- 按照标准编写代码
- 激励软件开发者
- 定位并吸引用户和开发者社区
- 随时随地创新
- 评估和衡量客户需求
- 比较多个执行相同功能的程序
- 分享
好的。让我们稍微倒带一下。这个列表从何而来?
这一切始于多年前,当时 maddog 自己还是个大学生。所有软件都是我们今天所说的“开源”——代码在开发者之间友好地传递,鼓励修补和修改。与 maddog 共事的许多开发者都是业余爱好者——他们并非以编写软件为生,或者至少一开始不是。而且他们可以做到,因为分享的文化意味着业余爱好者可以获得与专业人士相同的资源,因此业余爱好者可以轻松地在学习和技能方面赶上甚至超越专业人士。
这与当今软件开发专业的学生所面临的世界形成鲜明对比。他们的大部分信息都被锁定在专有的教科书中。他们接受培训以使用专有软件,这需要大量资金、与行业有联系的教授或访问地下学生盗版网络。(这并不新鲜;1976 年,当 AT&T 阻止新南威尔士大学的一位名叫 John Lions 的教授出版他对 UNIX 源代码的注释时,业余爱好者自己做了这件事,将盗版书的复印件的复印件的复印件从一只手传递到另一只手。)他们被要求从头开始为许多个人作业创建程序,但在您自己的情况下很难创建有趣的软件。如今,大多数软件项目都是复杂的生物,由大型团队在很长一段时间内引导其发展。这就是学生毕业后将要进入的世界——但在经历了四年的“抛弃型”项目后,他们并没有为此做好准备。
公司知道这一点,聪明的公司会找到除简历和成绩以外的其他方法来筛选新员工。Maddog 讲述了 Mark Shuttleworth 首轮 Canonical 招聘的故事。Shuttleworth 没有筛选简历,而是坐下来分析 Debian 邮件列表存档,以确定他想聘请哪些开发者。Shuttleworth 最终聘请了来自世界各地的开发者。这是有道理的;为什么优秀的软件开发应该成为少数国家的专属领域?世界各地的学生不应该利用他们的聪明才智和才能来盗版美国软件,而是应该创建自己的程序来解决当地的需求吗?
这就是列表的由来。显然,学习特定的算法、语言和工具是不够的;学生需要的不仅仅是接受技术人员的培训,而是作为服务提供商接受教育,他们通过从事鲜活的项目来解决社区的问题,就像外科医生学习如何在活体上进行治愈艺术一样。
一旦学生掌握了这些基本技能,他们就可以利用大量的鲜活例子来学习他们在课堂上遇到的任何主题。内核和操作系统、多线程、并发或编程语言?对于这些中的每一个,都有多个在生产中使用的蓬勃发展的开源项目。在学习电话通信方面的专题课程?看看 VoIP、Asterisk 和 Android。学习电气工程?有 SPICE、Arduino 以及大量的电路模拟器和电路板布局工具。法律、英语、哲学?看看 Creative Commons 和 Project Gutenberg。
当然,这并没有告诉我们如何教授这些技能,或者如何开发程序来始终如一地教授和评估这些技能——但这将是另一篇文章的主题。
9 条评论