wiki地址:https://csdiy.wiki/
GitHub地址:https://github.com/PKUFlyingPig/cs-self-learning

新冠肆虐,网课当道,CS爆火,这一系列的事件都让自学计算机成为了一种潮流。

随着欧美众多名校将质量极高的计算机课程全部开源,自学CS成了一件可操作性极强的事情。毫不夸张的说,只要你有毅力和兴趣,自学的成果完全不亚于你在国内任何一所大学受到的本科CS教育(当然,这里单指计算机专业领域,大学带给你的显然不止是专业知识)。

该指南中涵盖了作者在自学CS中的踩坑记录,欧美名校的好课推荐以及学习心得,与论坛的「自学氛围」十分契合。
推荐的课程领域涵盖了 操作系统,体系结构,计算机图形学,编译原理,数据库系统,计算机网络等等

从最初的想法开始,到断断续续完成这本书,再到树洞的热烈反响,我很激动,但也五味杂陈。原来在北大这个园子里,也有那么多人,对自己的本科生涯并不满意。而这里,可是囊括了中国非常优秀的一帮年轻人。所以问题出在哪里?我不知道。

我只是个籍籍无名的本科生呀,只是一个单纯的求学者,我的目标只是想快乐地、自由地、高质量地掌握那些专业知识,我想,正在看这本书的大多数本科生也是如此,谁想付出时间但却收效甚微呢?又是谁迫使大家带着痛苦去应付呢?我不知道。

我写这本书绝不是为了鼓励大家翘课自学,试问谁不想在课堂上和那么多优秀的同学济济一堂,热烈讨论呢?谁不想遇到问题直接找老师答疑解惑呢?谁不想辛苦学习的成果可以直接化作学校承认的学分绩点呢?可如果一个兢兢业业、按时到堂的学生收获的却是痛苦,而那个一学期只有考试会出席的学生却学得自得其乐,这公平吗?我不知道。

我只是不甘,不甘心这些通过高考战胜无数人进入高校的学子本可以收获一个更快乐的本科生涯,但现实却留给了他们遗憾。我反问自己,本科教育究竟应该带给我们什么呢?是学完所有这些课程吗?倒也未必,它也许只适合我这种nerd。但我觉得,本科教育至少得展现它应有的诚意,一种分享知识的诚意,一种以人为本的诚意,一种注重学生体验的诚意。它至少不应该是一种恶意,一种拼比知识的恶意,一种胜者为王的恶意,一种让人学无所得的恶意。但这一切能改变吗?我不知道。

我只知道我做了应该做的事情,学生们会用脚投票,树洞的关注量和回帖数证明了这样一份资料是有价值的,也道出了国内CS本科教育和国外的差距。也许这样的改变是微乎其微的,但别忘了我只是一个籍籍无名的本科生,是北大信科一千多名本科生中的普通一员,是中国几百万在读本科生中的一分子,如果有更多的人站出来,每个人做一点点,也许是分享一个帖子,也许是当一门课的助教,也许是精心设计一门课的lab,更或许是将来获得教职之后开设一门高质量的课程,出版一本经典的教材。本科教育真的有什么技术壁垒吗?我看未必,教育靠的是诚意,靠的是育人之心。

今天是2021年12月12日,我期待在不久的将来这个帖子会被遗忘,大家可以满心欢喜地选着自己培养方案上的课程,做着学校自行设计的各类编程实验,课堂没有签到也能济济一堂,学生踊跃地发言互动,大家的收获可以和努力成正比,那些曾经的遗憾和痛苦可以永远成为历史。我真的很期待那一天,真的真的真的很期待。

PKUFlyingPig

2021年12月12日写于燕园

以上摘自csdiy.wiki的后记,写的太令人动容了,某种程度上说,该wiki的创建和论坛创立的初心是一样的。

一大早的惊喜,真的很感动,在平行时空中也有人与我们走着相似的路。我们的社区也是在做着类似的事情,一方面是沉淀学习的经验,另一方面是聚集更多像我们这样对更有诚意的 CS 教育的向往的同学,可以更有信心地自由探索,少一些顾虑。感觉这个 Wiki 正是 0xFFFF CS Wiki 想要做的事,只是我们到目前的积累还是太少,高度远不及不及这位同学。

某种意义上北大是高考体系所有鄙视链中最 Top 的学校(无意争论清华 / 北大 😆 ),也同样遇到与我们相似的困境,这么一想其实没什么好纠结的了,剩下的事情不过行动,搞起来吧!

自学的坏处

当然,作为CS自学主义的忠实拥趸者,我不得不承认自学也有它的坏处。

第一就是交流沟通的不便。我其实是一个很热衷于提问的人,对于所有没有弄明白的点,我都喜欢穷追到底。但当你面对着屏幕听到老师讲了一个你没明白的知识点的时候,你无法顺着网线到另一端向老师问个明白。我努力通过独立思考和善用Google来缓解这一点,但是,如果能有几个志同道合的伙伴结伴自学,那将是极好的。关于交流群的建立,大家可以参考仓库README中的教程。

第二就是这些自学的课程基本都是英文的。从视频到slides到作业全是英文,所以有一定的门槛。不过我觉得这个挑战如果你克服了的话对你是极为有利的。因为在当下,虽然我很不情愿,但也不得不承认,在计算机领域,很多优质的文档、论坛、网站都是全英文的。养成英文阅读的习惯,在赤旗插遍世界之前,还是有一定好处的(狗头保命)。

第三,也是我觉得最困难的一点,就是自律。因为没有DDL有时候真的是一件可怕的事情,特别是随着学习的深入,国外的很多课程是相当虐的。你得有足够的驱动力强迫自己静下心来,阅读几十页的Project Handout,理解上千行的代码框架,忍受数个小时的debug时光。而这一切,没有学分,没有绩点,没有老师,没有同学,只有一个信念 —— 你在变强。

也说下我关于其中两点对应的解决策略的思考:

  1. 交流沟通不便:也许可以通过 论坛、群聊和频道、定期在线会议 的方式去实现,分别对应异步沟通、半实时IM、充分的面对面交流的场景。
  2. 自律问题:应用一些项目管理的手段,帮助参与人一起规划学习计划,对学习的进度有所把控,这也是最近的 Missing Semester 计划CS50 计划 在尝试探索的部分。

晚些看看能不能拉作者过来玩耍

    0x0001 准确来说,不能称为“自学的坏处”,而是“自学中需要客服的困难”。因为说的“自学的坏处”,会误解为,是因为”自学“而导致出现的某些负面状况。而实际上,从更大的范围去看,交流困难、英文资料、自律问题,这些需要克服的困难不仅仅只是在自学的时候才出现的。这些困难在有老师授课也会出现,在厂里工作也会出现。而这些克服这些困难的本身也是学习的一部分。

    2 个月 后

    © 2018-2025 0xFFFF