freeCodeCamp 教全世界编程的首个 10 亿分钟

Kevin freeCodeCamp 今天

译者的话:原文由 freeCodeCamp 创始人 Quincy Larson 于 2018 年 11 月发布在 freeCodeCamp 的 Medium 专栏:https://medium.freecodecamp.org/the-first-billion-minutes-the-numbers-behind-freecodecamp-the-tiny-nonprofit-thats-teaching-9c2ee9f8102c。


小型非营利组织 freeCodeCamp 是如何在短短几年内发展成风靡全球的编程社区的?它的现状如何?它在 2019 年有什么计划? 这三个问题的答案都能在此文中找到。个人觉得这是一篇很有意义的文章,希望大家读后能对 freeCodeCamp 的过去、现在和将来有更深入的了解。


世界各地的人们使用 freeCodeCamp 的时间加起来已经超过了 10 亿分钟(相当于 2000 年)。


换句话说,如果把这时长换算成一个人的年龄的话,那么他已经可以和耶稣共餐了。



在过去的 4 年里,我们这个小型非营利组织和围绕我们组织涌现的大型开发者社区的快速发展就像旋风一样。


我们正在帮助数百万的人学习编程,其中有数千人由此找到了他们第一份软件开发者工作。


几周前我参加了一个会议,去见我的一些偶像,比如 Wes BosScott TolinskiJessica Lord 和 Chris Coyier 这样的开发者大牛。


他们之前以为 freeCodeCamp 只是一个博客或者 YouTube 频道,完全没想到我们已经发展成了一个如此庞大的社区,对此他们感到十分惊讶。


很显然我很不擅长宣传 freeCodeCamp 已经达到的规模,所以现在我写这篇文章来说明一下。


初来 freeCodeCamp.org 的朋友,你们知道这个平台的访问量已经超过 Codecademy(一家已经融资 4700 万美元的编程教育创业公司)了吗?


Similarweb 上 freeCodeCamp.org 和 Codcademy.com 的流量对比分析(译者注:SimilarWeb 是免费提供网站排名和竞争性数据分析的网络平台,用户只需输入域名信息,就可以评估相应网站的人气,并实时监控该网站的表现)


我们的访问量也超过了 Udacity 的访问量,而这家公司的估值已达 10 亿美元。



Similarweb 上 freeCodeCamp.org 和 Udacity.com 的流量对比分析


注意:freeCodeCamp 2018 年的预算仅仅是 20 万美元,这与其它大型教育网站每年花的上千万美元相比微乎其微。


在这篇文章里,我会分享一些关于 freeCodeCamp 全球影响力的数据,探讨我们是如何在众多社区志愿者的参与和几千人的资助下取得这些成绩的。


你可以想象一下:如果 freeCodeCamp 有更多的预算,还会取得多大的成就。


这里我不拐弯抹角——我们希望你也为 freeCodeCamp 的资助者


只要支付比一份三明治的价格还少的钱,你能帮助你自己和成千上万的人学习编程。


“资助 freeCodeCamp。” “啥?你自己去资助吧” “sudo 资助 freeCodeCamp。” “好的。” (漫画 Obligatory sandwich,来自 XKCD)


10 亿分钟是怎么来的


freeCodeCamp 社区分布在这些平台:我们的在线课程、论坛、技术指南,以及 YouTube 和 Medium。


我没有混合计算用户在我们 YouTube 频道的浏览量、课程完成量和文章阅读量,而是标准化地统计用户在使用这些平台的资源上花费的总时间。


Google Analytics 能精确地测出这些数据(译者注:Google Analytics 是谷歌为网站提供的数据统计服务)。


但是这种测法存在两个问题:


1. 很多人使用广告屏蔽器,这样也会屏蔽 Google Analytics,所以这些人的使用时长未被纳入统计数据。


2. 编程项目挑战是 freeCodeCamp 课程中最耗时的部分,但人们通常是在 Giltch、CodePen 这些平台或是在本地编写他们的项目,所以人们花在编写项目上的时间也不被纳入统计数据。


由此可见,人们花在 freeCodeCamp 上的时长实际上是比下面展出的数据要多得多的,不过我还是喜欢保守一点。


过去 4 年有多少人使用了 freeCodeCamp


过去 4 年人们花在 freeCodeCamp 上的时长统计,单位:分钟


现在我们一起来回顾  freeCodeCamp 过去几年的发展,去了解这些数据背后的故事。


2015 年:创建免费在线编程课程


2014 年底,我在我的小房间里创建 freeCodeCamp 的时候,上面只有哈佛和斯坦福的一些课程和一个聊天室,遇到问题的时候我们会在聊天室里讨论。


2015 年有了全新的改变,我们开始创建课程,后来演化成今天的 1800 小时全栈开发者课程。


当时网上已有数不清的免费的编程入门学习资源,但与此相比,freeCodeCamp 的课程有两大特点:


1. 我们的课程完全是交互式的,你可以在浏览器通过一个个编程挑战来学会编程的基础知识。


2. 我们的课程是开源的,任何人都能对其改进(目前已有上千人参了与改进)。


正是因为这些开源贡献,课程的广度和功能都有了质的飞跃。


现在我们的课程内容涵盖了从 HTML、CSS、JavaScript 基础到一些更高级的开发工具的使用,如 Node.js、React 和数据库,甚至还有像无障碍、信息安全、测试框架等更深层的内容。


渐渐的,越来越多的人通过 freeCodeCamp 来学习编程,并为他们的第一份开发者工作做准备。直至 2018 年,已经有上千名 freeCodeCamp 校友获得了 freeCodeCamp 的证书,成为软件开发者。


我们 Linkedin 页面的截图

https://www.linkedin.com/school/free-code-camp/

(译者注:LinkedIn 中文名为领英,是全球最大职业社交网站,用户完成注册后会自动产生和带入电子名片,多为商业人士使用)


2015 年,人们共使用 freeCodeCamp 3700 万分钟,相当于 70 年,或者说一个人的一生。70 年前,联合国通过了《世界人权宣言》。


2016 年:freeCodeCamp Medium 专栏和 freeCodeCamp 论坛诞生


freeCodeCamp 早期的博文大多是我写的,社区里有很多人也写了一些优质文章,在 Medium 上面创建专栏分享这些文章非常方便。


有很多人向我们的 Medium 专栏提交关于编程教学、计算机科学的文章,或是他们学习编程的心得。


最开始这些文章的编辑都是由我一个人完成的,但在编辑了上千篇文章后,我觉得自己得去找些帮手了。


我们组建了 Medium 编辑团队,同时有众多志愿者参与进来,帮助提高文章的可读性。


之后我们依旧有选择性地发布文章,并且在保证高质量的前提下发布了更多的文章。


你可以在 freeCodeCamp 的 Medium 专栏中按话题、月份、年份来浏览热门文章


已经有许多 freeCodeCamp Medium 专栏的作者凭借他们的文章积攒的名气找到了工作或者成为自由职业者。


感谢数百万优秀的作者和编辑的付出,我们的专栏已成为 Medium 上最大的专栏,目前已拥有 50 多万名订阅者。


freeCodeCamp 社区论坛


2016 年我们还创建了论坛,以便人们遇到问题时寻求帮助。


感谢那些非常友好的论坛管理员,因为他们,大多数问题能在一两个小时内得到回复。


人们也可以在论坛展示他们的项目,并且总是能得到建设性的反馈。


“寻找开发者工作” 是论坛里最受欢迎的版块之一,在那里人们可以分享找工作的经验和方法,并且相互鼓励。


“寻找开发者工作” 版块的截图


论坛不需要登录就能访问。大约 80% 的人进入论坛的时候选择不登录,他们只是想在论坛上找到想要的答案,然后继续敲他们的代码。


2016年,人们花在 freeCodeCamp 上的时长为 1.9 亿分钟,相当于 310 年,这和列支敦士登建国的时间一样长(译者注:列支敦士登是欧洲内陆国家,位于瑞士与奥地利之间,以阿尔卑斯山美丽风光、低税率和高生活水平著称)。


2017 年:我们创建了 freeCodeCamp 技术指南


至 2017 年,已经有数千人完成了 freeCodeCamp 的大部分课程并找到了开发者工作。而当他们和其他开发者一起工作的时候,经常会碰到一些不熟悉的技术相关概念和术语。他们不想花一个下午的时间浏览 Wikipedia 的脚注,而是想要快速获得足够好的答案,所以我们创建了 freeCodeCamp 技术指南。


这个技术指南涵盖所有与软件开发相关的概念,供他们搜索。


技术指南的用词很简单,母语不是英语的人也很容易理解,同时这些释义也很简短,适合人们在忙碌间隙喝杯咖啡的时间阅读。


freeCodeCamp 关于 Python 的技术指南


像 freeCodeCamp 的其它内容一样,技术指南也是开源的,开发者们正在不断扩充它的内容。


该技术指南是连续两届  Hacktoberfests 黑客松上最受欢迎的开源项目。


目前它包含了近 5000 篇关于各种技术和计算机科学概念的文章。


2017 年,人们花在 freeCodeCamp 上的时长为 3.16 亿分钟,大约为 600 年。这个时间有多长呢?北京故宫大约是 600 年前建成的。


2018 年:经过 4 年的努力,我们的 YouTube 频道终于火了


在 freeCodeCamp 成立之初,我们就在 YouTube 上传视频和直播了,但 YouTube 从未真正向用户推荐过我们的视频。


我们猜测这可能是因为 freeCodeCamp 的频道从不播放广告,YouTube 从这里赚不到钱,所以没有帮我们推荐。


不管怎么样,我们很开心 YouTube 给了我们一个免费的平台上传和管理视频(上传高清视频是很贵的)。


但是在今年一切发生了改变,freeCodeCamp 成为了 YouTube 上增长速度最快的编程频道。


到目前为止,我们频道的观看时长增长了 1100%。


YouTube 的算法是一个黑匣子,所以我们只能猜测为什么 YouTube 突然开始向用户推送我们社区的频道。


或许是因为我们发布了一些关于 Python、数据库设计、SQL 和 Java 等主题的深入的长教程。


又或许是因为在过去四年里,我们几乎每天都在上传视频。


freeCodeCamp YouTube 频道播放列表截图


不管 YouTube 是基于什么原因帮助我们推送,人们似乎能从我们的频道学到很多东西。因此,我们将持续做这些事情:发布高质量的教程、演讲和编程直播。


截至 2018 年 11 月,人们花在 freeCodeCamp 上的时长为 4.93 亿分钟,约为 937 年。如果我们穿梭回到 937 年以前,兴许能听到英国牛津大学的第一场讲座。


2019 年的计划:支持多语言版本、开发课堂模式、为全球 freeCodeCamp 城市社区提供更好的工具


这是个很大的计划,如果预算足够的话,我们可以实现它。



我们的目标是拥有 1 万名资助者,这能使我们的年预算由微薄的 20 万美元增加至更合理的 50 万美元。


以全球非营利组织的标准来看,50 万美元并不算多,但这能使我们帮助到更多的人,更快地扩充我们的学习资源。


以下是我们 2019 年的目标。


目标一:多语言版本的 freeCodeCamp


我们已经开始将 freeCodeCamp 的课程和技术指南翻译成几种主要语言:

  • 阿拉伯语

  • 中文

  • 葡萄牙语

  • 俄语

  • 西班牙语


我们希望不同语言的 freeCodeCamp 前端基于同一个数据库平行运作,并且给不同语言的用户提供单独的论坛。


我们已经组建了多语言翻译团队,数百名贡献者正在优化和扩展这些翻译。


多语言版本上线后,地球上约 80% 的人可以使用他们的母语学习编程,而且是完全免费的。


并且学员不会碰到生硬的机器翻译,因为所有的翻译都由其对应语言为母语的人审核过,他们懂得这门语言背后的文化。


但是要达到这个目标,我们的服务器和其维护成本会剧增,所以我们需要更多的资助来支付这些成本。


目标二:课堂模式


freeCodeCamp 的课程专门为成人学员设计,学员的平均年龄是 30 岁。


我们收到了世界各地许多老师们的请求,他们想要将 freeCodeCamp 引入他们的教学当中。


在许多高中、大学、职业培训中心甚至监狱,已经有数百名老师将 freeCodeCamp 的教程纳入他们的教学内容。


但这对老师来说不够方便,因为他们必须告诉学生将自己的 freeCodeCamp 个人页面设置为公开模式(默认是不公开的),然后手动检查学生在 freeCodeCamp 的学习情况。


为了让老师们更方便地使用 freeCodeCamp,我们想开发课堂模式,以便他们更轻松地布置学习任务和检查学生的学习进度。


如果我们获得更多的资助,我们可以分配出更多资源让课堂模式在 2019 年成为现实。


目标三:为城市社区提供更好的工具


freeCodeCamp 的学员在全世界 2000 多个城市建立了社区。大部分社区每周都会聚到一起敲代码,有的社区还会举办会议或者黑客马拉松。


这些城市社区是分布式运营的,社区组织者会策划活动或者找赞助方提供免费活动场地。


我们想更好地支持这些社区组织者、社区成员还有他们的赞助方。


目前我们通过 Facebook 群组来组织这些城市社区,因为这是免费的。但 Facebook 的功能有限,透明度有限,也缺乏可靠的方式与社区成员取得联系。


有些城市社区使用 Meetup.com,这个工具比 Facebook 更加专业。但如果大规模使用的话,即使有非营利机构的折扣,我们每年也需要花费 10 万美元。


在过去的 3 年里,我们试验了所有可行的工具,最后发现最合适的仍是 Facebook。所以我们决定开发我们自己的开源工具去帮助城市社区进行组织。这样的话,各城市社区就能完全管理他们自己的数据了,并且我们还可以根据他们的需求来增加相应的功能。


我们开发自己的开源工具还有另一个好处:其它非营利组织也能将这个工具部署到他们自己的服务器,以协调他们各地的组织和活动。


毫无疑问,这需要消耗大量额外的开发时间,还会增加服务器成本。 更多的资助能大大帮助我们。


下一个十亿分钟


我希望这篇文章讲清楚了以下几点:

1. freeCodeCamp 正在帮助数百万的人

2. 以低成本高效益的方式

3. 我们已经精心拟定了能帮助更多人的计划

4. 但是我们需要你们的资助

(在这里 https://donate.freecodecamp.org/ 资助我们吧)


我们希望能拥有 1 万名资助者。


2019 年可能会是 freeCodeCamp 有史以来最重要的一年。


当然,我不会说“如果你不资助 freeCodeCamp,我们就会垮掉” 或者其它吓人的话。


现实是:我们已经在这里了,我们不会消失。freeCodeCamp 是开源的,最糟糕的情况是我把它当作一个热爱的项目继续兼职运营下去。


所以,与其说一些悲观的话,我更想说:


我们有极好的发展势头,我们正在通过帮助数百万人免费学习编程,改善他们的生活和事业,并且我们可以发展得更快更好,帮助更多的人。


可以说之前从未有过像 freeCodeCamp 这样的社区。我的一些在金融行业的朋友曾私下告诉我说他们觉得 freeCodeCamp 是“近现代史上资金效率最高的组织”。


我们只有一个小小的 5 人全职团队,他们要么写代码,要么产生学习资源。用非营利组织的话说:我们的预算 100% 用于“项目”,没有一分钱用于“筹款”或“管理成本”。


我们在财务和运营方面一直是透明的,我们最近还获得了 GuideStar.org 的白金认证(译者注:GuideStar 是一个存储有大量非营利组织信息的数据库,是世界上最大的非营利组织信息提供站)。


(译者注:该图为 GuideStar 官网上 freeCodeCamp 页面的截图)


我们拥有成千上万名活跃的开源贡献者帮助我们去践行社区的使命。我们的 5 名员工最初都是 freeCodeCamp 社区中高产的开源贡献者。


我们不需要花钱去招聘开发者,我们可以在社区中寻找到合适的员工,他们之前已经利用空余时间为 freeCodeCamp 做贡献,所以我们直接付薪资让他们成为 freeCodeCamp 的全职员工。


我们在服务器方面也非常节俭,已经从一些服务提供方那里获得了非现金赞助,我们在项目的技术架构搭建方面也将成本控制得很低。


freeCodeCamp 架构示意图,我们使用一些开源工具和一些非现金赞助对这个架构进行了优化


freeCodeCamp 可能会成为下一个 Wikipedia(译者注:Wikipedia 是一部人人皆可参与编辑、校订、贡献的世界百科全书)。我们的目标是成为技术教育的 Wikipedia,每个人都可以参与其中,成为内容的贡献者。


截止目前,我们过去 4 年的发展轨迹与维基百科过去 17 年的发展轨迹十分相似。


不同的一点是,维基百科每年得到 1 亿美元的捐款,是我们每年得到的捐款的 500 倍。所以让我们改变这种情况吧!如果我们每年获得 50 万美元的捐款(仅仅是维基百科每年所得捐款的 1/200),我们就能极大地促进技术教育的发展。



请帮助我们实现 1 万名资助者的目标吧,在这里 https://donate.freecodecamp.org/ 设置一个你可以承担的捐款额度,成为 freeCodeCamp 的资助者(最低额度是每个月 5 美元)。


再次感谢 freeCodeCamp 社区的所有成员!


今天,我们庆祝帮助全世界人们免费学习编程的第一个 10 亿分钟。


让我们一起迎接下一个 10 亿分钟吧!🥂