为什么我向每一位自学成才的开发人员推荐哈佛的 CS50x 在线课程
CS50 的“计算机科学导论”是一门免费的在线课程,基于哈佛大学最受欢迎的校内课程之一。在本课程中,您可以学习核心计算机科学概念,例如:
- 算法——二分查找、冒泡排序、合并排序等。
- 数据结构——链表、哈希表等。
- 内存——栈和堆
使用的语言包括 C、Python、SQL,以及一些其他语言,具体取决于你最终选择的课程方向(更新:2021 版似乎取消了这些方向)。网上有很多免费的计算机科学课程,但这是我目前为止找到的最有趣、最引人入胜的一门。
我在标题中写到“自学成才的开发者”,是因为我认为那些没有接受过正规计算机科学教育的人不太可能有机会深入接触这些主题。当然,我会向所有对这些主题感兴趣的人推荐这本书。
以下是我喜欢这门课程的三个方面以及两个潜在的缺点。
优点
- 他们的哲学
- 观看讲座是一种享受
- 作业很有创意
(潜在)缺点
- 可能对你的日常工作没有用处
- 你看不到工作人员实施的任务解决方案
优点
1. 他们的哲学
本课程面向所有编程水平的人士。第一周课程内容如下:
在这门课程中,最终重要的不是你最终相对于同学的成绩如何,而是你最终相对于刚开始时的自己成绩如何。
仅供参考,我有一年的专业经验,但之前没有用过 C 或 Python。有些作业对我来说仍然很难,一周的课程作业大约需要 10 个小时才能完成,具体时间取决于内容(作为一名 Ruby 开发者,Python 比 C 直观得多!)。
这门课程在兼顾初学者和挑战性方面做得非常出色,因为课堂讲解能够很好地引导你理解内容,而作业则需要你认真思考并进行更多研究。此外,课程通常会提供两种作业供你选择,具体取决于你是“更适应”还是“不太适应”。
2. 讲座令人赏心悦目
David Malan 教授的讲座不仅内容丰富,节奏紧凑,生动活泼,创意十足。观看他的任何一场讲座,你大概都会同意他的观点(YouTube上也有)。
3. 作业富有创意
您无需执行“用 C 语言迭代这个数组”等无聊的任务,而是可以使用在此过程中学到的概念来实现照片滤镜、拼写检查器、投票系统和霍格沃茨学生数据库等程序。
我还很喜欢他们的测试系统 Check50,它能在你提交代码时立即提供反馈。当你最终完成所有测试并返回绿色笑脸时,你会感到非常欣慰 :)
(潜在)缺点
1. 可能对你的日常工作没有用处
不管怎样,这都不是速成课程。如果你想快速学习某个特定主题,比如 React,网上有更好的教程(虽然有点跑题,但我强烈推荐Scrimba来学习包括 React 在内的前端语言/框架)。
话虽如此,我认为学习这些计算机科学的核心概念对任何开发者来说都会有所裨益。
例如,我使用 Ruby 哈希(字典)已经很久了,我知道通过键从哈希中查找值比从数组中查找值要快得多。但在学习这门课程之前,我并不了解哈希的底层实现方式。学习哈希表并实际实现一个哈希表,也让我更好地理解了 Ruby 哈希。
2. 你看不到员工实施的作业解决方案
正如我提到的,当你在线提交作业时,你的代码会通过一个名为 Check50 的系统进行测试。你无法看到老师最终的解决方案,也无法与你的代码进行并排比较。
这并非总是个问题,我也理解他们的理由,但有一次我特别希望看到员工实现的解决方案:当我编写 SQL 查询时。我的查询成功了,也通过了 Check50 测试,但无法判断它们是否可以进一步优化。如果能看到员工实现的答案,那应该会有所帮助。
如果你对这门课程感兴趣,我强烈建议你去edX上看看。如果你决定选修,祝你好运。
我还在报名,即将开始 iOS 课程。祝我好运!
更新 - 2020-12-28
最终的项目花费了我一些时间,但我已经完成了课程:)
文章来源:https://dev.to/risafj/why-i-recommend-harvard-s-cs50x-online-course-to-every-self-taught-developer-4a1m