教授可以教授开源吗?

还没有读者喜欢这个。
Flying textbooks

Opensource.com

teachingopensource.org,我们认为可以,并且我们写了一本书来帮助大家。以下摘录来自我们新教科书的前言,实用开源软件探索,该书根据 Creative Commons BY-SA-3.0 获得许可。这是一本像开源软件项目一样运作的书。换句话说:欢迎补丁。



2006 年 3 月,大卫·A·帕特森写了一篇题为“21 世纪计算机科学教育”的文章。当时,大卫·A·帕特森是世界最大的教育和科学计算学会——计算机协会的主席。在他的文章中——遗憾的是,除非你是 ACM 会员,否则你无法阅读——他倡导对计算机科学的教学方式进行根本性变革。他倡导的变革之一:在标准本科计算机科学课程中纳入开源软件开发课程。

人们可能会认为,如此有影响力的人士发出的如此明确的号召,会引发一股热情。当 ACM 主席宣布“现在是教授开源开发的时候了”时,学术界肯定会效仿,对吧?

情况比这复杂一点。

在过去的几年里,我们花了很多时间与计算机科学教授交谈。我们主要问了很多问题——实际上,是重复问同样的问题。

  1. 你在课堂上使用开源软件吗?(越来越多。)
  2. 你的学生对开源感兴趣吗?(越来越感兴趣。)
  3. 你或你的学生参与开源软件吗?(很少。)
  4. 你教授开源开发实践吗?(几乎从不。)


对于最后两个问题,后续问题总是“为什么不呢?”

答案总是“因为这很难。”

教授们不教授开源实践是有充分理由的。开源倡导者很容易解释这些理由。但在某种程度上,人们必须接受这样一个观点,即大多数教授都是善意的,但受到各种情况的束缚,这些情况使得向学生介绍开源开发变得令人沮丧地困难。

那么为什么要费心呢?

答案很简单:在开源软件项目中取得成功所需的技能,与在任何大型软件项目中取得成功所需的技能完全相同。最大的区别在于,只需一点指导,任何人都可以通过开源世界来培养他们的软件技能。

我们希望这本教科书能够为整整一代想要学习如何以开源方式成为更好的软件工程师的学生提供指导。

标签
User profile image.
格雷格·德科尼格斯伯格是 Ansible 的社区副总裁,他在那里领导公司与更广泛的开源社区的关系。格雷格为 Ansible 带来了超过十年的开源产品和社区领导经验,其中大部分时间都在为开源领导者红帽构建和领导社区。

13 条评论

天哪,我真希望当我还是大学新生的时候就有这本指南!!这太棒了。不过,我有一个小小的吹毛求疵... :)
<cite>
4. 获取 <strong>代码</strong>,作者:格雷格·德科尼格斯伯格和梅尔·蔡
5. 构建 <strong>代码</strong>,作者:格雷格·德科尼格斯伯格
6. 调试 <strong>代码</strong>,作者:格雷格·德科尼格斯伯格
7. 修复 <strong>代码</strong>,作者:杰夫·谢尔特伦
8. 解释 <strong>代码</strong>:文档的艺术,作者:卡斯滕·韦德
</cite>

我们也需要关于开源 <strong>设计</strong> 的章节或几章,你不觉得吗? ;-)

下周在亚特兰大举行的 ACM CHI 会议上有一个 <a href="http://flosshci.org">FLOSS HCI 研讨会</a>。我整理了一个 <a href="http://mairin.wordpress.com/2010/04/06/contributing-to-free-open-source-software-as-a-designer/">案例研究</a>(在梅尔的大力帮助下 :) ),研究了开源社区中设计师的一些问题和建议 - 你认为这可能是一个好的开始吗?

虽然超越代码是元工作 <em><a href="http://theopensourceway.org/wiki">开源之道</a></em> 的一个具体目标,但 <em><a href="http://teachingopensource.org/index.php/Textbook_Release_0.8">实用开源软件探索</a></em> 教科书必须从某个特定的学生受众开始。虽然许多受众的服务不足,但在我看来,最可悲的耻辱之一是学习 <em>计算机科学</em> 的人没有学习参与开源。这就是为什么我对最初的范围和发布感到满意。

我来这里表示同意,并且和梅琳在类似的圈子里工作过,让开源项目超越“代码至上”的理念。作为 <em>实用开源软件探索</em> 的编辑之一,我知道为非编码受众重新混合当前内容并不容易。但是,这是可以做到的,而且应该做到。事实上,我认为标题本身就为包含处理 FOSS 项目的非编码部分的章节(章节组)留出了空间。

然后,在 wiki 上识别一个子集,并根据相同的内容为不同的受众制作不同的书籍就非常简单了。池中章节的数量和质量越高,教科书可以覆盖的学生受众就越多。

从这里开始的一种方法是

<ol>
<li>在 Teaching Open Source wiki 上创建一个新的以设计为中心的教科书登陆页面。</li>
<li>为本书的第一个版本创建目录,希望重用另一本书中的现有章节。</li>
<li>如果章节标题与设计重点冲突,请尝试与上游章节作者合作解决此问题。例如,我们可以将所有章节重命名为例如文档章节的“解释源代码”吗?这对设计受众有意义吗?</li>
<li>如果章节标题不起作用,只需创建一个新的容器章节,并使用 MediaWiki include 机制来拉入内容。</li>
<li>在附近插入我们已经拥有的特定于设计的章节,例如按摩您引用的案例研究。</li>
<li>通过这半天或一天的工作,我们可以让教科书的某些部分已经开始或接近完成,并了解有多少工作要做。</li>
<li>开始招募作者,然后编写所需的内容。</li>
</ol>
如果您喜欢这个想法,也许可以将其作为对 Fedora 设计团队和您认识的其他设计社区的挑战。我自愿帮助 MediaWiki 的管理、园艺和理解用于重新混合的内容。(这有助于我实现编写“如何重新混合本书”附录的目标。)我们可以转换为 DocBook,并在 PDF、HTML 和 Epub 格式中获得漂亮的 Fedora 品牌(或任何品牌)。

因为开源更像是一种病毒式活动,而不是从架构理解开始

我的意思是,如果教授被感染,那么他可以更容易地感染他的学生

而实际上,他们中的大多数人对开源免疫
因为很难教授只在几天/几个月内有效的东西
相反,只有理论甚至超老的架构理解才能导致长期记忆

这就是为什么很难将开源引入学术界
也许 30 年后......当开源被证明是移动物体时
XD

那么我们可能会有类似物理课程的角/圆开发感觉

XD

开源的蓬勃发展给大学将开源纳入本科课程带来了问题。开源不断变化的性质需要不断升级,因此是教授/导师的主要分心之处。与此同时,人类反对变革的普遍天性也阻止了学者们这样做。尽管在这方面取得了一些进展,但主要是在发展中国家,开源已开始被认为是唯一可行的方式。尽管开源要纳入大学课程还有很长的路要走。

但不如学者们想让我们相信的那么真实。特定开源项目的性质经常变化——但开源方法本身实际上已经非常完善。只是没有人费心以适当的学术方式向学者描述它。那是我们的任务,我们不能仅仅因为困难就放弃。(并且不要犯错,这确实很难。)

但是开源人员已经知道如何加入社区并进行开发了......
很少有开源人员被告知要做某事...*x*
他们只是主动去编码和讨论
他们不会等待学位或硕士学位才去做任何事情

他们是真正的男人(包括女人)

...因为我第一次尝试参与一个已建立的、著名的开源项目的经历非常不愉快,所以我直到五年后才再次尝试。情况就是那么糟糕。

如果当时我有一本这样的指南....我就不会那么沮丧,也不会浪费所有那些时间了!

那是“开源主义”了
你可以因兴趣而加入
或者你可能不加入
或者你可能通过 fork 一个项目来加入...导致你自己的兴趣

那不是问题
这就是发展方向

只是尝试弄清楚你如何与社区互动以及它如何反馈

它不会将任何东西固定或限制在一个“盒子”中
开源本身就像液体

自由形式并最终达到其良好形式
当它崩溃时,这意味着它将进入另一个自由的良好形式

感觉像水滴并导致波浪

那是现代病毒式营销想要模仿的一部分...

根据我在西北地区的有限学术经验,我总结出即使毕业生职业生涯中工具和技能将成为主流,但开源仍未被教授的三个可能原因。<a href="http://seniorenhandys.blog.de">艾米莉</a>

我认为他们不仅可以,而且应该教授开源方法和实践。我认为他们可以在开源社区内进行教学。

与开源社区互动涉及许多软技能,这些技能是专业的现实生活技能。正如蜂蜜所建议的那样,他们可以硬着头皮自己学习...... 但为什么我们不能将其融入正规教育呢?

毕业生常常不得不做同样的事情:离开学校后,他们最终开始发展他们需要的“真正”技能。

在学生受教育期间将他们带入开源的 <em>狂野</em> 世界可以为他们带来巨大的好处。他们可以找到志同道合的人,建立工作方面的专业联系,建立支持方面的个人联系 - 并在世界上找到自己的位置。

除了代码之外,还可以发展许多技能和能力。

感谢您的回复,它反映了我在阅读 <a href="https://open-source.net.cn/education/10/4/can-professors-teach-open-source#comment-1271">蜂蜜·麦克的评论</a> 后的一些想法。由于开源软件的狂野和自然根源,许多先驱者都具有坚韧不拔、自己动手的态度,他们不理解那些不像他们那样的人。我们这些追随这些第一批先驱者的人对这种态度有亲和力,但这种态度可能成为潜在贡献者人口中相当大一部分人的障碍。

> 正如蜂蜜所建议的那样,他们可以硬着头皮自己学习
> 自己...... 但为什么我们不能将其融入正规教育呢?

特别指出这一点是因为它关系到我过去几年一直在思考的事情。我的朋友和同事 <a href="http://blog.melchua.com/">梅尔·蔡</a> 谈到了社区中的“隐形段错误”。正如代码中的错误可能导致软件悄无声息地崩溃并退出一样,社区互动中的错误也可能导致个人出现这种情况。每当有人以参与的眼光看待社区,并因直接、间接、因为意外的障碍、因触及 -ism(性别歧视、年龄歧视、种族歧视、新手歧视等)或几乎任何事情而感到厌恶时,如果那个人随后离开而没有人知道原因(或者他们甚至在那里并离开了),那就是一个隐形的段错误。

可悲的是,人们似乎天生就抵制看到、理解和改变导致社区隐形段错误的条件。性别歧视是困扰人的一个好例子,因为它比其他歧视更根深蒂固,对那些性别歧视的人来说也不那么明显,而且我们许多人都是“无意中”性别歧视的。实际上,这关系到我们如何通过根据人与人之间真实或感知的差异来识别和采取不同的行动,从而使人们感到不受欢迎。如果我开始用假/模仿的口音来模仿每个来找我谈论我的开源项目的人,那么很明显 i) 我不是罗宾·威廉姆斯,这根本不好笑,ii) 也许我有点种族主义,或者至少在文化上很笨拙。但是,如果我开始与每个女人或年轻人/老年人交谈,就好像他们不了解技术一样,就好像他们是物体而不是人一样,就好像他们不属于这里,因为他们不是像我这样的家伙一样,人们不会认为这是不合适的(不是罗宾·威廉姆斯)和性别歧视。好吧,有些人会这样认为,但同样多的人不会,他们给出了 <a href="http://geekfeminism.wikia.com/wiki/Category:Excuses_for_sexist_incidents">常见的论点清单</a>。

让我们的自由和开放世界成为那些路过的人们感到欢迎和安全的地方是每个人的义务。我们会发现他们中的更多人会留下来。

我们有一个非常大...超级大的开源社区...感觉就像世界上所有的人口...

在这种情况下,“世界”= 开源社区
但我们有来自不同国家的人...
我们有一些我们理解和普遍的价值观
但我们也有一些差异

没有必要将个人价值观深入整合到项目建设中...虽然用语言来说可能有点棘手....

但可以自由 fork...
如果真的有人带路,那就太好了...
但如果没有,那么你将成为自己的领导者...如果你足够坚强...那么你就能达到目标...如果你不够坚强...那可能会发现自己实际上对这个话题不太感兴趣...感觉就像伟大的爱迪生制造了第一个灯泡?...今天的开源开发要容易得多...

开源就像日常生活一样运作....你会从 A 摊位买东西...你会从 B 摊位买另一件东西...你不会只在一个地方寻找所有东西....

开源带来的是真正的自由...你可以将其商业化并坚持下去...当有人不喜欢它时...那就再做一些东西...

如果对这种机制采取稍微乐观的态度,那么任何开源活动实际上都是在努力创造一个更美好的世界....除非只是从源代码中窃取,而从不贡献...

因为通过开源开发,实际上也在构建一个社会模型...不同主题的不同圈子,以及不同的专家和不同的开源“学校”或“社区职业”建设的三角形垫脚石模型....

根据我在西北地区的有限学术经验,我总结出即使毕业生职业生涯中工具和技能将成为主流,但开源仍未被教授的三个可能原因。

1) 微软回扣 - 免费或大部分免费的软件供使用。对我来说,这不是一个很好的理由,因为 MySql 和 Linux 等也都是免费的。但我怀疑微软交易的一部分是,只要学校在整个过程中都使用微软产品,并且没有过多强调其他产品,学校课堂培训产品之外所需的软件也会得到补贴。

2) 以我的经验,尤其是在我居住的州,许多在专业上了解和使用开源的人没有四年制学位,更不用说硕士学位了。大学不想要经验丰富的专业人士,他们想要学术专业人士,因此他们不会聘请那些有知识的人。

3) 由于第 1 点和第 2 点,大学可以/能够聘请的唯一合格教授只接受过微软基础软件的培训和经验,并且对开源软件的接触/经验有限。因此,他们不了解或感觉不够自在地使用或谈论开源,而只是传统的花言巧语。

我意识到我可能是错的,我对这方面的接触仅限于一个地点和一个机构的政策,但我禁不住认为,除了我所就读的机构之外,还存在一些相关性和相似之处。

知识共享许可协议本作品根据知识共享署名-相同方式共享 3.0 未本地化许可协议获得许可。
© . All rights reserved.