最近,我有幸参加了红帽公司的吉娜·利金斯在 2015 年学院计算科学联盟 (CCSC):中南部会议上关于开源教学的演讲。
开源是...
吉娜首先问听众,有多少人教开源?没有人举手!这意味着吉娜必须从开源的背景开始讲起——她说开源就像一块饼干(美味)。当你烤饼干时,你可以与你的朋友和家人分享饼干和食谱。如果你分享食谱的人对坚果过敏,而食谱中需要坚果,那么这个人可以修改食谱。人们也有可能拿走食谱并加以改进。当然,现在你可以去商店买饼干而不是做饼干,但你不会确切地知道这些商店购买的饼干的所有成分。而且,也很难复制它们。如果你尝试了,你将面临因分享专有饼干而被起诉的风险。
开源的另一个例子:你不会买一辆引擎盖被焊死的汽车,那么我们为什么要购买专有软件呢?如果你看不到发生了什么以及引擎盖下发生了什么,那么你就只能接受汽车现在的样子,这可能不是很好。虽然有些人对此感到满意,但计算机极客不应该如此。我们应该想进去修修补补。
许可
了解版权很重要。吉娜分享了一张漂亮的鲜花图画,该图画自动受到版权许可的保护,因此她将其更改为知识共享许可。开源和自由和开源软件之间有什么区别?区别在于,自由许可始终要求你根据自由许可分享你所做的事情。因此,如果你是在开源许可下,并且你进行了修改,你可以更改许可。如果你是在自由许可下,你没有该选项——许可必须保持不变。
开源的历史
了解开源魔力的来源非常重要。在 50 年代,软件和硬件捆绑在一起。在 60 年代,这种情况发生了变化,因为司法部认为捆绑硬件和软件是垄断行为。1983 年,理查德·斯托曼启动了 GNU 项目,该项目是自由和开源运动的开始。然后,在 1989 年,发布了第一个 GPL(GNU 通用公共许可证)。
每个计算机科学毕业生都应该了解这段历史!尤其是理解开源许可,因为我们需要知道人们使用我们软件的权利。
有趣的统计数据
财富 500 强公司中有 90% 使用开源软件。
美国所有 50 个州的政府都使用开源软件。
如今 76% 的开发人员使用开源工具。
致学生
学生需要了解开源,以便他们在找工作时做好准备。通过学习开源,学生可以通过在虚拟团队中工作和协作来向他人学习编码。通过从事开源项目,学生学习如何学习,因为没有人会牵着你的手,你必须自己学习很多东西。这就是学生学习如何解决问题、提出聪明的问题和阅读文档的方式。通过教授开源,学生可以处理真实的代码,fork 该代码,并讨论为什么这是一个好/坏主意。
作者注:我个人不记得我在计算机科学课程中编写的任何程序;它们对我没有任何好处,也没有保存下来供我回顾。从事开源项目的学生会知道他们正在处理真实的代码,这些代码正在被真实的人们使用。
贡献项目
如果你正在寻找项目,请查看人道主义自由和开源 (HFOSS) 项目,因为这些项目吸引了更多样化的受众。它们也是让更多女性参与进来的好方法。从事项目是教授学生的一项重要技能,因为在现实世界中你永远不会单独工作。此外,你编写自己的代码的可能性非常小。通常,你将添加到已存在的项目中,并学习如何与其他开发人员沟通。
从事开源项目还将使你能够与行业贡献者建立联系;学生们会发现这在找工作时有很大帮助,并且这是他们证明自己的方式!
开源的狂野西部
我们如何区分开源和专有?我们已经讨论过许可,但还有其他需要了解的事情,例如开源原则和开源社区。
原则包括
- 开放交流:沟通是透明的
- 参与:当我们可以自由协作时,我们才能创造
- 快速原型设计:可能会导致快速失败,但这会带来更好的解决方案
- 精英管理:最佳想法获胜
- 社区:团结起来,我们可以做得更多
这一切听起来都很棒,对吧?嗯,有一些问题。首先,如果你是一名教师,你习惯于了解你所教内容的一切。开源项目很可怕,因为你不会完全了解它们。这里有一个机会,通过将自己置于这个角色中,你可以教你的孩子不知道一切也没关系,并向他们展示如何提出正确的问题并学习如何学习。这就是我们成长的方式:即使我们的代码没有被接受,我们也会成长。学习到这一点将使学生能够学习任何系统。
接下来,为开源做贡献可能会让你成为陌生土地上的陌生人。很多时候没有经理或负责人,这可能有点像狂野西部。这不是你可以控制的环境。你将成为客人。这不会像走进教室然后说:这就是我们今天要做的。此外,有时开源社区中的某人可能会具有攻击性。随着自由和透明,随之而来的是意见,有时这些意见的表达方式并不礼貌。如果开源中有一个人力资源部门,那么有些事情就不会发生,但开源不是这样运作的。它就像互联网,一切都是开放的,任何人都可以说任何话。好消息是,作为一名教师,你可以在这些情况下帮助你的学生,并告诉他们什么是适当的礼仪,什么是不适当的礼仪。你可以从吉娜的 ApacheCon 主题演讲中了解更多关于开源项目礼仪的信息。
吉娜说:“令人惊叹的是,可怕的事物可以如此美妙。”
教师如何以开源作为合作伙伴向前迈进?查看 POSSE:一个教教育工作者他们需要知道什么才能在课堂上教授开源的会议。此外,查看 TeachingOpenSource.org 并注册邮件列表。最后,请务必探索 OpenHatch,以寻找构建课程的机会和工具。
修订自 这篇文章。
9 条评论