年轻程序员的技术实力和创新活力依然旺盛。
这在我参与今年全国最大的大学黑客马拉松 PennApps 时所目睹的勤奋工作中显而易见。在 48 小时内,我的高中和大学同龄人创建了各种各样的项目,从 为卧床不起的病人设计的基于眨眼的通讯设备 到 具有物联网连接的墨西哥卷饼制作器。开源精神贯穿整个活动,不同的群体因共同的构建愿望、思想和技术诀窍的自由流动、大胆的实验和快速原型制作以及参与的热情而紧密联系在一起。
那么,我想知道,为什么开源在我的技术极客同龄人中不是一个热门话题呢?
为了更多地了解大学生在听到“开源”时的想法,我调查了几位与我同属一个专业计算机科学组织的大学生。这个社区的所有成员都必须在高中或大学期间申请,并根据他们在计算机科学方面的具体成就和领导能力进行选拔——无论是领导学校机器人团队,还是创立非营利组织将编程带入资金不足的课堂,或其他一些有价值的事业。鉴于这些人在计算机科学方面的成就,我认为他们的观点将有助于理解年轻程序员对开源项目的吸引力(或不吸引力)。
我准备和发布的在线调查包括以下问题
- 你喜欢编写个人项目吗?你是否曾经为开源项目做过贡献?
- 你觉得开始你自己的编程项目,还是为现有的开源工作做贡献对你更有益?
- 你如何比较为生产开源软件的组织与生产专有软件的组织编码所带来的声望?
尽管绝大多数人表示他们至少偶尔喜欢在业余时间编写个人项目,但大多数人从未为开源项目做过贡献。当我进一步探索这种趋势时,出现了一些关于开源项目和组织的常见先入为主的观念。为了说服我的同龄人开源项目是值得他们花费时间的,并为教育工作者和开源组织提供关于他们学生的见解,我将解决三个最主要的先入为主的观念。
先入为主的观念 #1:从头开始创建个人项目比为现有的开源项目做贡献更有经验。
在我调查的大学生程序员中,26 人中有 24 人断言,开始他们自己的个人项目感觉可能比在开源项目上构建更有益。
作为一个刚入计算机科学领域的新生,我也曾这样认为。我经常从年长的同学那里听说,个人项目会让我更受实习招聘人员的欢迎。从来没有人提到过为开源项目做贡献的可能性——所以在我的脑海里,这并不重要。
我现在意识到,开源项目为现实世界提供了强大的准备。为开源项目做贡献培养了对工具和语言如何组合在一起的认识,这是个人项目都无法做到的。此外,开源是协作和合作的练习,培养了学生在沟通、团队合作和问题解决方面的专业技能。
先入为主的观念 #2:我的编码技能还不够好。
一些受访者表示,他们被开源项目吓倒了,不确定在哪里做贡献,或者害怕阻碍项目进展。不幸的是,自卑感,特别是经常影响女性程序员的自卑感,并不会在开源社区止步。事实上,“冒名顶替综合症”甚至可能会被放大,因为开源倡导者通常拒绝官僚主义——尽管官僚主义使内部流动变得困难,但它有助于新人了解自己在组织中的位置。
我记得第一次在 GitHub 上浏览开源项目时,我对贡献指南感到多么害怕。然而,指南的目的不是鼓励排他性,而是提供指导之手。为此,我认为指南是一种在不依赖层级结构的情况下建立期望的方式。
一些开源项目积极地为新的项目贡献者开辟空间。TEAMMATES,一个教育反馈管理工具,是众多将问题标记为“新手入门”的开源项目之一。在评论中,各种技能水平的程序员理清了实施细节,这表明开源既是热情的初级程序员的场所,也是经验丰富的软件老手的场所。对于仍然犹豫不决的年轻程序员,一些开源项目已经周到地采用了冒名顶替综合症免责声明。
先入为主的观念 #3:专有软件公司比开源软件组织做得更好。
在我调查的 26 位受访者中,只有 5 位认为开源和专有软件组织在声望方面被认为是平等的。这很可能是由于误解,“开源”意味着“无利可图”,因此质量低下(参见“开源”不就是意味着免费吗?)。
然而,开源软件和盈利软件并非相互排斥。事实上,小型和大型企业通常为免费的开源软件付费以获得技术支持服务。正如红帽 CEO Jim Whitehurst 解释说,“我们有工程团队跟踪对 Linux 所做的每一次更改——错误修复、安全增强或其他任何内容——并确保我们客户的关键任务系统保持最新和稳定。”
此外,开放性本质上促进而不是阻碍质量,因为它使更多人能够检查源代码。Mobify 首席执行官 Igor Faletski 写道,Mobify 的“25 名软件开发人员和质量保证专业人员”的团队“与世界上可能使用 [Mobify 的开源] 平台的所有软件开发人员相比,简直是小巫见大巫。他们中的每一个人都是该项目的潜在测试人员或贡献者。”
另一个问题可能是,年轻程序员没有意识到他们每天都在使用的开源软件。我使用了许多工具——包括 MySQL、Eclipse、Atom、Audacity 和 WordPress——几个月甚至几年,才意识到它们是开源的。大学生经常急于下载教学大纲指定的软件来完成课堂作业,可能没有意识到哪些软件是开源的。这使得开源看起来比实际情况更陌生。
所以同学们,在尝试之前不要否定开源。查看这个初学者友好的项目列表和这六个起点,开始你的开源之旅。
教育工作者,提醒你的学生开源社区成功的创新历史,并引导他们走向课堂外的开源项目。你将帮助培养更敏锐、准备更充分、更自信的学生。
3 条评论