TODO

self-learning-list

学习体会 👆

CS61A: Structure and Interpretation of Computer Programs

时间:一个多月,零散时间完成,看配套教材 + 部分 homework + lab + 部分 project

感受:除了 Python、Scheme 和 SQL 语法以外,这门课涵盖了大量的函数式编程和数据抽象。课程的所有代码使用 ok autograder 实现自动检查和打分。hm、lab 和 pj 整体难度不算大,但是做起来很耗时,部分函数式编程的代码比较难想。课程有一个用 pyhton 实现 scheme 解释器的 pj,算是比较大的项目,很有做的价值,可以会深入体会程序构造与运行的原理。

PS:现在课程网站似乎进不去了(需要伯克利账号),不过有人把之前的资源拷贝下来了,详见 链接 的评论区。

CS106L: Standard C++ Programming

时间:一周,只刷课件,没看视频,除了完成课件配套的code外,没有做assignments。

感受:这门课基本满足了我想要进一步学C++特性和语法的需求,包括不限于auto binding, uniform initialization, lambda function, move semantics, RAII, smart pointers等,还讲了一些程序设计原则,十分受益;课程配套的代码不能算是作业,大部分是填充代码,或者是课件例子的实现,不过代码的输入输出还有注释提示很 user friendly,值得一提的是每份 code 都配有 solution,对课后巩固很有帮助;一开始还担心只看课件不看视频有所欠缺,实际课件质量很高,学过 C++ 基础的直接看课件就行。

美中不足:网上课程资源杂乱,视频资源少。我是结合2022 winter2023 spring相互补充学的,22年的code比23年多,23年的某几节课课件做得更好;另外,大家普遍反馈这门课的assignments环境配置易出问题,22年的作业环境配置还需要mit学生账号来连服务器。总之,作业除了23年的HashMap外不推荐做。(ps:我学的时候课程正在更新2024 winter,24年的assignments不再是以前的WikiRacer和HashMap那几个了,具体质量不知)。

MIT Web Development Crash Course

时间:用的零散时间学习,少于一个月,不过课程的性质(Crash Course)决定了不用花很长时间。

感受:我是出于兴趣想学个Web开发技能,这门课基本满足我的心理和技术需求。课程知识点很密集,包含了前端三件套,react 框架,mongoDB,api,socket 编程等,基本覆盖了Web 开发的前后端大部分技术栈,但没有深入讲,更多的是掌握一个网站设计的核心内容;这门课有很大部分时间是在手把手的教写代码,课程自始至终通过构建,升级,完善一个网站来串通所有知识点。

亮点:课程资源丰富,油管有完整视频;coding多,课程代码仓库做的很好,每一步都有对应的git节点,仓库还提供了一个Web开发的skeleton可以复用。(ps:也是学了这门课才起了兴致做了这么个博客网站,尽管也没用上很多前端知识😥)

注:如果想学前端找工作,这门课是远远不够的。

MIT-Missing-Semester

时间:一个视频一个主题,每个视频 60min~90min。

感受:讲了很多可能不是现在就会用到但是未来极大概率要用到的知识、工具和技巧,包括 shell, vim, git, tmux, ssh, 密码学, 数据清洗等。老师讲的很好,密码学那一块,尽管我不是相关专业,也听得津津有味。