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