后悔没早点开源自己的这个仓库

ly_liyi
发布于 2022-10-24 17:03
浏览
0收藏

你好,我是阿秀。

不知道你是否像我一样在最开始学习的时候是从视频入手的,还是直接生啃技术书?

我仔细想了一下自己,不管是以前学C++,还是学Golang,包括工作后学习JavaScript以及Vue、React这些框架,我都是从视频开始入手学,以1.5或者2.0倍速大致看一下,然后再具体开始看书和实践。

一开始我只是看国内的视频,比如某硅谷、某马的不少视频我都看过,还专门写过三篇我看过的优秀计算机编程视频推荐:

我学编程全靠B站了,真香(第一期)

我学编程全靠B站了,真香(第二期)

我学编程全靠B站了,真香-国外篇(第三期)

后来我慢慢就不再满足于国内视频了,开始将自己的“黑手”伸向国外....

自己也在这个过程中慢慢在收集和整理一些经典的计算机编程类视频,其中大多课程都出自世界知名理工科强校,比如麻省理工MIT、卡内基梅隆大学CMU、清华大学等....

最终汇总成了自己今天打算正式开源出来的这个仓库:Awesome-Courses

后悔没早点开源自己的这个仓库-鸿蒙开发者社区

1、几个经典课程

国外优秀系列的计算机编程视频有很多,我想其中比较出名的就是MIT 的6.828、6.824以及哈佛大学的CS-50

这三个视频我都看过了,给那些没看过或者没怎么听说过这三个视频的小伙伴简单介绍一下这三个视频:

CS-50

计算机科学CS-50是经典的计算机入门课程,它还有一个广为人知的外号:计算机速成课

只要是正常高中毕业的同学应该都能听懂,应该算是面向零基础的课程。

这门课一共20集,一天看一集也就只需要20天,这门课的内容包括基本的计算机知识以及基础算法,常见的编程语言等等,还会探讨最新的计算机科学领域的成果,课程发散性思维强。

多说一句,CS50课程的讲课形式让人耳目一新,真正做到了“快乐学习”。。

如果你是非科班,想要转行到计算机来,建议你先看看这个系列视频,大致先了解一下计算机是什么?它是怎么工作的?

可惜的是,截至目前为止我还没在国内没看到很好的计算机速成课。

MIT 6.828

这门课估计我知道的人更多,它是跟《深入理解计算机系统》搭配的一个系列视频。

是的,就是那本在豆瓣读书上编程分类下评分最高的《深入理解计算机系统》,也就是CSAPP。

MIT 6.828的6个lab是你不应该错过的,简单介绍一下这些lab:

Lab1: C, Assembly, Tools, and Bootstrapping

lab1比较偏底层一些,整个过程需要你运用汇编知识以及一些C语言去自从搞清楚计算机从插上电的那一刻到开始运行,整个过程发生了什么,其中还会用到qemu。

Lab2: Memory management.

其实就是os中比较精妙的虚拟内存,当物理内存不够时虚拟内存就派上用场了,并且带你搞明白分页机制。

Lab3: User-level Environments。

lab3比较重要,当初做的时候花了好长时间,lab3的设置基本是贴近用户来设计的。

比如需要你自己去实现进程管理,搞懂中断是怎么回事,比如Linux系统中比较常见的信号,kill命令就是这么实现的。

此外还有中断机制(interrupt),系统调用(system call),缺页处理(page fault handling)等。

Lab4: Multitasking.

lab4也还好,主要是让你实现多CPU的支持,Round-Robin进程调度,Copy-on-Write机制,抢占式多任务(preemptive multitasking), 进程间通信(IPC)等。

Lab5: File system。

个人觉得lab5是最有意思的,因为lab5是带你真正实现一个文件系统。

这可比直接写word实验报告有意思多了.....

Lab6: Networking.

大多数人觉得计算机难学,主要是因为计算机一环套一环,彼此之间又连接紧密,比如lab6就是让你自己实现网络传输功能,这就属于计算机网络的内容了。

老实说这几个lab做下来并不轻松,磕磕碰碰的,不过自己也在踩坑过程中学得越多,会的也就越多了。

MIT 6.824

6.824是麻省理工开设的一门针对分布式系统的课程,中文配套教材是DDIA,也就是《数据密集型应用系统设计》,我的床头前就放着三本书,其中一本就是《DDIA》。

后悔没早点开源自己的这个仓库-鸿蒙开发者社区

相较于6.828,知道它的可谓是少之又少了。

我最开始关注到这门课还是博士师兄给我推荐的,那个时候我才研三,被推荐后刷了一些,做了2个lab就被搁置了。

去年十月份又把这门课捡起来了,趁着平时下班和周末时间磕磕碰碰的刷完了剩下2个lab。

2、越来越多

我清楚的记得是正月初二那天,那天去老家走亲戚拜年,我闲着无聊,就掏出手机刷知乎。

于是就刷到了一个知乎问题:“如何的才能更好地学习 MIT6.824 分布式系统课程?”

在这个问题下,看到很多知乎网友在分享自己的学习经验,远远不止 6.824 这一门学科。

比如6.823这样一门主讲计算机系统架构的课程;6.006这样一门主讲数据结构预算法的课程;伯克利 CS 186这样一门主讲数据库系统的课程;清华大学和上海交大讲操作系统的课程.....

下午回家后就自己手动汇总整理收集了起来,最后分成了下面这些类别:

  • 良心推荐
  • 入门科目
  • 基础科目
  • 进阶科目
  • 专业科目
  • 高级科目
  • 人工智能&AI
  • 操作系统
  • 程序语言
  • 编译器
  • 数据库系统
  • 分布式系统
  • 数据结构与算法
  • 计算机网络
  • 计算机系统设计
  • 研究生课程
  • 实验课

今天正式整理一下开源出来,希望能帮到那些曾经像我一样的本科学弟学妹以及研究生师弟师妹们。

github地址:https://github.com/awesome-cs-community/Awsome-Courses

考虑到国内有些小伙伴访问github容易卡壳,我在码云上也放了一份:https://gitee.com/ForthEspada/Awsome-Courses

巨人的肩膀

在我整理这些课程的过程中也参考了很多人的知乎回答,包括但不限于知乎网友@Ed Huang、@Tianbing、@谭新宇等人,以及下列链接:

​https://zhuanlan.zhihu.com/p/112763953 ​

https://www.zhihu.com/question/57532048 

​https://www.zhihu.com/question/29597104 ​

https://zhuanlan.zhihu.com/p/39030715

https://www.zhihu.com/question/20571226/answer/1901441044 


本文转载自公众号拓跋阿秀


已于2022-10-24 17:03:35修改
收藏
回复
举报
回复
    相关推荐