原文:The Story of MyCodeSchool: Tragedy, Triumph, and Two Friends Who Changed Programmer Education Forever,作者:Quincy Larson
我在 2012 年开始学习编程。那时候有一个 YouTube channel 叫作 MyCodeSchool,我的朋友们全都在上面学过算法和数据结构。
只要观看几分钟 MyCodeSchool 的视频,你立即就可以感受到:
- 这些开发者对计算机科学真的很有热情
- 他们非常擅长教学
当时,我 31 岁,是一名老师,正在尝试找第一份软件工程师的工作。和大多数人一样,我一边观看视频,一边记笔记。后来我探索出一条充满乐趣的道路。
仅仅几年后,我注意到 MyCodeSchool 已停止发布视频,接着我发现了其背后悲惨的原因。
我越挖掘,就越意识到这个故事的重要性。现在,我把它分享出来。
我也会和大家分享一些 MyCodeSchool 早期的照片和洞察,他们从未公布过这些内容。
每一位开发者都应该了解这两位老师之间的友谊故事,以及他们如何在短时间内席卷编程界。
这是一个悲伤的故事,也是一个鼓舞人心的故事。我很荣幸能够把它转述给你们。
这个故事是关于 Harsha 和 Animesh 如何将积淀数十年的计算机科学知识,传递给全世界数百万学生,让每个人都可以轻松获取这些学习资源。
”手被卡在罐子里的猴子“
Animesh Nayan 是一名成绩平平的学生,很少上课。他时常坐在教室的最后一排,这样方便溜出学校。当教授点名时,朋友会替他掩护。
但是 Animesh 喜欢编程,而且他很擅长。在课余时间,他沉浸在算法、数据结构和系统设计的世界中。
事实上,Animessh 是一个非常出色的开发者,他刚毕业就找到了一份梦寐以求的工作——成为微软的软件工程师。
Animesh 和我进行了详细的交流,并且直言不讳地告诉我他对印度高等教育的看法:“我们国家每年都有大量的计算机科学工程毕业生,但是其中只有 15% 到 20% 的人可以在 IT 支持的服务行业中工作,只有 3% 的人可以在 IT 产品公司工作——而这 3% 的人,需要对计算机科学概念(例如数据结构和算法)有更深入的理解。”
“当前的计算机科学教育标准是满足行业对人才数量的需求,而不是满足行业对人才质量的需求。”
就像是命中注定一样,解决这个“质量问题”成为 Animesh 生命中的关注点。
但是,直到在微软工作差不多五年之后,他才意识到这一点。他很擅长做那份工作,但那并不是他内心的召唤。那是外界想要他去做的,而不是他自己想要的。
“首先,我试图通过获得良好的成绩和一份好工作来使我的父亲感到高兴。然后,我试图通过一周内修复 20 个 bug 来使我的经理愉快。我厌倦了这种状态——只是获得别人的认同,而不是回应自己内在的需求。我想,如果我告诉别人我在微软工作,人们会觉得我很棒。但是,除此之外,我到底是谁?”
Animesh 将自己的困境比作一只猴子:它伸手进罐子里,拿到一些花生。为了把手伸出来,它不得不放开一些花生。但是猴子的天性阻止了它放开花生,所以它只是呆在那里,被困住了(的确,在现实生活中,人们就是用这种方法捕获猴子的。)
“生活中有很多类似的场景,我们就像那些猴子,即使获得某样东西的过程让我们痛苦不堪,但是我们仍然坚持要去得到它,比如金钱。”
但是,为微软工作确实给他带来了名誉,并使他在家族中受到欢迎。许多朋友和亲戚在学习计算机科学时遇到了问题,都会向他求助。他们希望自己能够复制 Animesh 的成功。Animesh 也尽力帮助他们。
“我发现他们中大多数人的基础都很薄弱,特别是在编程方面——而我觉得这是计算机科学的核心技能。”
他目睹了 Salman Khan 通过制作可汗学院的数学视频所取得的成就,觉得自己也可以为编程和计算机科学做类似的事情。
“我的方法是通过一个好的视频使复杂的计算机科学概念变得易于理解。我会花好几周的时间思考如何以最佳方式简化和解释算法。”
2012 年,他在 YouTube 上发布了他的第一个 15 分钟的课程。
“听到自己的声音,我觉得有些尴尬。在妻子的鼓励下,我还是把它发布出来。令人惊讶的是,当时没有多少人以易于理解的方式教授计算机科学,所以我的视频很快就在“时间复杂度”这一关键词的搜索结果中排到第一名。我受到鼓舞,于是制作了更多视频。”
2012 年年中,他发布了几个视频之后,一些程序员开始联系他,想和他协作。但是 Animesh 已经看中了一位他早就认识的程序员——毕业于印度信息技术学院(IIIT Allahabad)的 Harsha Suryanarayana。
”谦逊的傻瓜“
Harsha 不是普通的没工作的计算机科学专业毕业生。他是一位传奇的非常优秀的开发者,不仅在校园内而且在国际上都很有名气。
以下是 Harsha 的部分成就:
- 他在 ICSE(译者注:印度高考的一种)中三门科目的分数都很高
- 他代表印度参加了 ACM(国际计算机学会)的国际大学生程序设计竞赛(ICPC)。
- 他在 Top Coder 上获得“红色”排名,并且是整个竞赛平台上排名最高的印度程序员(译者注:Top Coder 是世界级的程序设计竞赛平台,获得 2200 分以上者的排名为红色,被称为 “red coder”。我没搜到全世界共有多少 “red coder”,了解这一比赛的读者可以在文末留言分享一下)
- 他是有史以来首个参加 Google Code Jam 的印度人(译者注:Google Code Jam 谷歌全球编程挑战赛是一项国际编程竞赛,目标是为谷歌选拔顶尖的工程人才)
Harsha 的名声如此之高,朋友们甚至叫他 “Lord Harsha”。但是,他却更喜欢称自己是 “Humblefool”(译者注:字面意思是“谦逊的傻瓜”,大概就是保持谦虚和天真好奇的态度,持续去探索世界吧)。
Animesh 在谈到 Harsha 时说:“我也尝试过竞争性编程,但是我的得分甚至还不到他的一半。我记得我写了一封电子邮件,向他讲述 MyCodeSchool。我以为他会太忙,没时间回复。”
但是 Harsha 第二天就给他打电话,描述他对 MyCodeSchool 的许多想法。
Harsha 并不像在 Animesh 那样在大型软件公司上班,而是忙于为计算机科学专业的学生举办编程训练营。Harsha 邀请 Animesh 到训练营帮他上课。
“他的训练营不是我期望的那种。他讲得很快,可能认为有些概念和细节太琐碎而无需讲解。尽管他是最和善的人,但很多学生都没有真的参与进去,也感到问问题会显得愚蠢。Harsha 也意识到了这一点,但他不知道该如何突破障碍并改变自己的参照框架。他需要降低自己的假设,并与班上的每个人保持良好的互动。”
Animesh 从中看到了机会。他所掌握的计算机科学知识不足 Harsha 的一半,但是他擅长分解概念并进行解释。他感觉他俩可以结合成为一个强大的团队。然后,他很快就有了一个机会,检验这个想法。
微软印度开发中心希望 Harsha 和 Animesh 帮助培训新员工。Harsha 创建编程挑战,Animesh 专注于演示。他们探索一些方法,将入职培训做成游戏化体验,增加幽默感,并促进团队协作。
他们的训练营得到了参与者的热烈欢迎和好评。微软希望雇用他俩进行更多培训,这是对 Harsha 和 Animesh 基于团队的教学方法的很好的认可。但是他们的抱负远不止于企业培训。
第二年,他们花了一年的时间教授竞争性编程,并且一起举办了冬季编程训练营。
他们一起参加了创业加速器的课程,然后创建了一个网站,mycodeschool.com,还雇用了一批实习生。
“我们讨论了很多哲学,觉得仅仅追逐金钱并不是人这一生最好的活法。我们创办公司的想法相当轻松,不太担心筹集资金或快速增长,我们只是想享受我们所做的一切。”
直到一切结束,你才会意识到自己经历了“文艺复兴”
“我一直都记得那天是 2014 年 6 月 15 日,我收到微软的电子邮件,邀请我们为他们开展另一个训练营。我想和 Harsha 讨论,所以那天晚上我给他打电话。他没有接电话。我给他打了几次,都没有回应。我想他会像往常一样尽快回电。”
第二天早上,Animesh 接到一个朋友的电话,让他看当地新闻。
Harsha 和他的妻子 Neha 晚上在过马路时被汽车撞到。Neha 在医院里,后来伤好了。但是 Harsha 在被送到医院时就离开了。他只有32岁。
“什么?你确定那是我们的 Harsha 吗?” Animesh 回忆道,“我不敢相信。但是这个消息是真实的。我崩溃了。”
这个噩耗立即在整个竞争性编程社区传开,大家都感到很痛心。
Top Coder 以他之名(humblefool)举办了一场比赛。
Animesh 这样怀念他的朋友:“Harsha 之所以选择去天堂,是因为上帝需要天才程序员。”
MyCodeSchool 之后的生活
Animesh 回忆了他的那段时期:“接下来的几个月非常艰难,我试着继续做事,但我感到孤独、悲伤和不知所措。”
Animesh 决定他需要改变步伐。他的妻子在 Google 印度公司工作,有机会内部转岗到美国。“我想,为什么不去美国呢?这可能是一个很好的改变。硅谷是一个非常令人兴奋的地方,我一直想体验一下。”
几个月后,Animesh 收到了 Facebook 等科技巨头的聘用书。如今,他是 Google 搜索团队的一名工程师,负责 Google 和 YouTube 搜索引擎算法。
在我和 Animesh 交谈时,他和家人一起围坐在家里的桌子前。他告诉我:“我现在是两个优秀孩子的父亲,生活很美好。但是,有一种力量不断在我体内制造内心的冲突。每天,我都会收到一些电子邮件,感谢 MyCodeSchool,并问我为什么不再制作视频。”
“我不知道该说些什么。我想回去教学,但这很辛苦。我想花很多时间和孩子待在一起。如果我要回去做视频,我就得辞掉工作。这股力量每天都在增长,也许它将重燃我对教学的热情。我还不知道。”
然后,Animesh 的思路又回到了 Harsha。他回想起他们的一次谈话,“我当时是一名典型的企业家,要他考虑扩大规模,这样我们可以做到更多事情。他说了一些有趣的话。也许我们可以激励一小部分人教学,然后他们可以启发更多人教学,这个链条就不断增长。我们需要太多有热情的老师,不能仅仅是我们自己。这就像是一支可以点燃更多蜡烛的蜡烛。我们不是第一个做这件事的,也不会是最后一个。我们只是链条的中间环节。”
MyCodeSchool 的精神在 freeCodeCamp 社区延续
我常常想,如果 Harsha 还在,如果他和 Animesh 仍在尝试新的编程和计算机科学教学方法,这个领域会是什么样子的。
可以肯定的是:我们会记住 Harsha 和 Animesh 的贡献,记住他们一起创建的开创性课程。
我在各种场合介绍过很多老师,因为他们激励了我,如果不是这些先驱者通过他们的贡献勾勒出愿景,像 freeCodeCamp 这样的社区就不会存在。
Animesh 允许我们在 freeCodeCamp 的 YouTube channel 发布 MyCodeSchool 的算法和数据结构的部分视频(译者注:同时可能会在 bilibili 的 freeCodeCamp 账号发布)。从 12 月起,我们将发布几个视频。
我很荣幸能将这两位传奇老师的教学故事转述给更多有抱负的开发者。
最后,我想分享一下 Animesh 在我与他的对话中提到的轶事。
一位了解 Harsha 的天才的学生问他为什么选择将所有时间都用来教别人。
Harsha 想了一会儿,说道:
“I have always liked the stories where an underdog wins. I just want to be part of one of those stories. 我一直喜欢那些不被看好的人成功的故事。我想成为其中一个故事的一部分。”
(译者注:最后这句话,我保留原文,供大家感受)