在Coursera上完成计算机科学学位

Hacker News Top 新闻

摘要

一位拥有21年经验的软件开发者讲述了在全职工作的同时,通过Coursera完全在线完成计算机科学学士学位的经历,强调了这一决定背后的灵活性和个人动机。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/05 22:33

在 Coursera 上完成计算机科学学位

来源:https://notesbylex.com/completing-a-computer-science-degree-on-coursera

2022年9月,我在Coursera上看到一则广告后,一时冲动报名了计算机科学学士学位。在没有学位的漫长职业生涯之后,我一直有想拿个学位的念头,但不确定该如何着手。而现在,大约3年9个月后(最后3个月在等成绩),我终于完成了我的学位——完全是在全职工作之余的业余时间完成的。

我的最终考核成绩

这篇文章简要记录了我的经历。

我的背景

我无学位的技术职业生涯已近21年,其中约14年是软件开发者和MLE(机器学习工程师)。我十几岁时就从高中辍学,只想尽快进入职场、独立生活。我通过MCP、MCSA、A+这类认证进入技术领域(当时它们风靡一时),这足以让我在18岁时找到一份帮助台工作。从那里开始,我跟随自己的兴趣,最终走向软件工程,后来又专注于机器学习。

到目前为止,缺少学位并未成为我职业道路上的障碍。我从同事那里听说,澳大利亚往往更看重经验和态度,而非正规教育,而在海外则可能相反,所以或许我在这一点上运气不错。我甚至可以说,“自学成才”通常被雇主视为一个优点,前提是你看起来确实自学了工作所需的技能。话虽如此,我并非真正的“自学”——我认为“自我教育”是更合适的说法。我通过MOOC(向David J. Malan的CS50、Andrew Ng的机器学习课程和Jeremy Howard的fastai致敬)、证书、书籍和Kaggle,收集了我想要的工作所需的技能。我的简历“教育经历”部分总有内容可写。我之前曾写过关于软件开发是一门手艺的看法,并且认为教育应该穿插在工作经验中进行。当然,我承认我的经历使我在这方面带有相当的偏见。

然而,缺少学位确实影响了我到海外工作的能力。年轻时,我曾进入一家我感兴趣的美国公司的面试最后一轮,结果发现E-3签证(一项澳美特定协议)要求至少拥有学士学位。尽管目前我没有海外工作的打算,但有这个选项总归是好的。

我也真心热爱学习,并且有兴趣找出自己的知识盲点。此外,这也是一个在真实学习问题上测试Zettelkasten方法的借口。

最后,我不再年轻了。有时我会想,自己是否应该在20多岁时拿到学位。现在,当我接近40岁时,我不想在40多岁时对30多岁说同样的话。

关于学位

该学位100%远程完成。

它在Coursera上托管——你可以在那里观看讲座,那里也提供课程资源,如实验笔记本和测验。Coursera还提供与教学人员交流的论坛(但很少被使用),并且你通过它上传作业。

该项目由伦敦大学国际部(其远程学习分支)运营。伦敦大学金史密斯学院负责批改作业和考试。

同学的一张伦敦大学证书(姓名已模糊处理)

考试本身使用Inspera监考软件远程进行。我从其他学生那里听说,在COVID之前,人们实际上会去当地的教学中心参加考试。2022年也曾有一个短暂的窗口期,考试是无人监考的——你一旦开始,只需在4小时内完成,可以开卷/上网。但我想LLM的成功迫使他们增加了监考。

Inspera Integrity Browser,显示我最后两门考试

我相信肯定有类似的项目。老实说,我并没有货比三家去寻找替代方案。但我已经熟悉Coursera平台,这个项目很适合我的生活方式。

先修课程和基于表现的录取

课程先修要求规定需要高中文凭。不过,他们提供了一条替代路径,称为基于表现的录取(PBA)。基本上,你需要参加两门模块(编程入门I,以及一门数学模块),如果两门都通过,你就有资格进入完整学位课程。这些模块会计入你的最终成绩,所以不是浪费时间,而且你能很好地了解这个项目是否适合你。

费用

另一个对我有利的点是,你随学随付,按模块缴费。对我来说,在澳大利亚,一个模块目前费用为823英镑(约合1,600澳元),最终项目算作双倍模块,还有一些小额附加费用。

大学公布的课程总费用在14,666英镑到21,829英镑之间,取决于你的居住国和学习进度。我的总费用大约为17,000英镑,约合33,000澳元,分3.5年支付。我通过用只需订阅Coursera的课程替换了3个模块,进一步节省了费用(见下文“先前学习认可”部分)。

由于这是直接适用于我职业的教育,本国内也可享受税收抵扣。澳大利亚税务局允许你申请自我教育费用的抵扣,只要该学习“维持或提高你当前工作活动所需的特定技能或知识”。作为软件工程师攻读计算机科学学位显然符合这一要求,至少我的会计师是这么说的。

工作量

仅仅因为是在线学习,并不意味着它容易。即使你是软件老手(像我一样,以及其他许多学生),熟悉课程内容会有帮助,但你仍然需要完成工作。

每个模块都有强制性的期中作业,然后是期末考试或期末作业。作业通常又长又具挑战性,考试也相当难。

他们允许你每学期最多选修4个模块(或2个模块加最终项目),外加一门补考,并且必须在6年内完成,这大约要求每学期修2个模块。完成PBA后,我平均每学期修3个模块,并在学期之间获得了RPL证书(见下文)。在最后几个学期,我选了4个模块,那是相当大的工作量。

不过,许多学生选择一口气完成4个模块,我认为完成课程最快可能的时间是整整3年。

总体而言,我发现在期中考试和期末考试之前的几周,学位学习占据了我大部分空闲时间。从早期模块到后期模块,工作量显著增加,最后两个学期无疑是最难的。我生命中有些非常紧张的时期,凌晨4点起床,完成一场4小时的考试,然后工作一整天,晚上再赶作业。

先前学习认可

如果你在其他地方学过等效模块,大学确实提供先前学习认可的替代方案。他们还有一些Coursera证书,可以替换整个模块,只需要Coursera订阅。我用这种方式替换了三个模块:

我将这些与常规模块穿插进行。我在2023年4月完成了Google证书(大约3个月,每周10小时),正好赶上我的第一个学期结束。两个IBM证书我在2024年7月连续完成,在期中考试后的间歇期,同时还在修三个常规模块。它们总共为我的学位节省了整整一个学期。请注意,认可的资格列表自那时起已有变化,请查看当前页面。

课程分解

课程主题相当典型,就是计算机科学学士学位的内容,没有意外。有一些数学(不过比工程学位少),大多数内容都很动手实践。

课程作业中有不少有趣的项目。一些亮点包括:一些音频可视化工具、几个JavaScript游戏(包括一个鼓励你加入创意的台球模拟)、一个用JUCE构建的DJ模拟器、一个受Karl Sims 1994年《进化中的虚拟生物》启发的进化算法项目、一系列有趣的信号处理练习、几个围绕抓取和分析网页数据的不同的研究项目,以及最终开放的最终项目——我构建了一个在Apple Silicon上端到端训练和运行的乳腺癌检测乳房X光分类器(见cm3070-final-project)。

我的JUCE DJ模拟器在运行中:

还有带啮齿动物的台球游戏,杀死它们可以获得加分(我不在现实世界中提倡这一点):

以下是我走过的完整路线:

学期模块RPL证书(同时进行)
2022年10月编程入门I,离散数学Google IT支持(替换了计算机工作原理)
2023年4月编程入门II,计算数学,Web开发
2023年10月计算机科学基础,算法与数据结构I,软件设计与开发
2024年4月面向对象编程,数据编程,图形编程IBM数据科学(替换了数据科学),IBM AI工程(替换了机器学习与神经网络)
2024年10月计算机安全,算法与数据结构II,数据库,网络与Web
2025年4月计算机科学家专业实践,数据库与高级数据技术,人工智能,智能信号处理
2025年10月自然语言处理,最终项目

如果你想深入了解模块,学生社区维护了一些很好的资源:world-class/notes,一个学生运营的仓库,人们在这里发布课程笔记;以及world-class/REPL,一个课程材料和资源的集合。还有一个电子表格,有人根据往届学生的评分,分解了每个模块的难度及其他指标。

最好的部分

课程中我最喜欢的部分之一是与其他学生合作。Coursera会邀请你加入一个学生Slack工作区,这基本上是一个《蝇王》式的混战场,没有任何明显的官方代表。

有些学生自告奋勇,以铁腕手段管理Slack,批评那些发错频道的人。一些校友在Slack上闲逛,帮助学生、回答问题。还有其他往届学生出没于Slack频道,偶尔发些挑衅信息。一切都很混乱又搞笑。

除此之外,还有一种高成就学生分享作业视频和截图的文化,其中一些令人印象深刻,这激励我做到最好。

有来自世界各地的非常迷人的人,他们有着像我一样有趣而曲折的职业故事。一位同学在乌克兰战争期间完成了她的学位。另一位同学自学了Web开发,并经营自己的工作室来自筹教育经费。还有一位同学在攻读学位期间生了两次孩子,在担任全职教师的同时完成了理学学士学位,甚至还完成了一个硕士学位。还有我的朋友Django,他从乌干达的一个难民营完成了他的学位,用太阳能板给笔记本电脑供电,用移动数据学习。他的故事本身成了一部传奇:向乌干达难民营运送一台笔记本电脑。

每当我感觉学习艰难时,总有许多处境比我艰苦得多的人让我脚踏实地。

最糟糕的部分

我的头号抱怨是拿到成绩的时间太长:大约3个月。所以你通常是在即将提交期末考试的时候才拿到期中成绩。这时间太长,无法有效利用反馈。

如果你某门模块不及格,你可以只补考你失败的部分。但因为期末成绩在下一个学期开始之后很久才出来,你可能要等整整一年才能补考。这已被证明是课程参与者最大的挫折。

小组项目也是常见的抱怨。你会被随机分到一个小组,但往往不清楚组员是否真的在参加课程——很多人完全处于幽灵组。对于我参加的唯一一门有小组项目的科目,我遇到的小组还算不错。然而,我们确实有不愉快的经历:一个成员在最后一周出现,我们基本上别无选择,只能让他不干活而加入。尽管后来他们修改了教学大纲,现在只有一门科目有强制性小组项目,而且只是期中部分——还算可以。

Coursera平台本身也需要许多生活质量方面的改进。它常常与实际项目不同步,并且不知道考试是在Coursera之外完成的。提交所有内容需要上传多个文件,包括视频,而且无法在不重新上传所有内容的情况下编辑你的提交。所以如果你花了30分钟上传一个视频,然后发现报告中有个打字错误,你必须重新开始。

Inspera也是一款相当难用的软件,有许多误报导致它在考试中途突然关闭。他们在考试期间确实有额外的支持人员来帮助。由于只有4小时完成考试,并且要面临等一年才能重考的风险,这是一种非常令人焦虑的体验。

联系支持人员也很困难。我有一门成绩没有像其他人那样及时出来,花了几周才解决。

建议

一些对我有用的做法:

  1. 尽早开始作业,并频繁提交。 我喜欢先完成一个从头到尾、可以勉强通过的版本,然后不断迭代。一旦我知道作业是什么,我就开始推进,并边做边提交草稿,这大大减轻了截止日期带来的压力。
  2. 再三检查你的提交。 一个非常常见的错误是人们没有检查他们是否正确提交了所有内容。我会为项目提交创建一个检查清单,截下提交屏幕的截图,甚至记录所有上传资产的S3 URL。
  3. 找到适合你的学习时间并保持规律。 对我来说,是清晨。我通常需要工作到很晚,所以下班后很少有学习时间;相反,我早早上床睡觉,在一天的工作开始之前学习几个小时。
  4. 先攻克难点模块。

相似文章

ossu/computer-science

GitHub Trending (daily)

OSSU 的计算机科学课程提供免费的、自学式的 CS 教育,采用来自顶尖大学的高质量在线课程,旨在匹配本科学位要求。

@Jolyne_AI: GitHub 上有一份被无数自学者奉为“计算机本科平替”的课程清单:open-source-cs,已经收获 2 万+ Stars。 它把 MIT、斯坦福、普林斯顿等顶尖高校的免费公开课,按传统 CS 本科的培养路径重新编排:从入门到进阶、…

X AI KOLs Timeline

GitHub 上的一份开源计算机科学课程清单 open-source-cs,汇集 MIT、斯坦福等名校免费公开课,按本科培养路径编排,已获 2 万+ Stars,适合自学者系统学习。