pengzhangzhi / self-taught-CS

The notes and Lab code of public courses I have taken.

Home Page:https://pengzhangzhi.github.io/self-taught/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

计算机自学指南

在这个仓库里,我会保存我所上过课程的资料、笔记、实验代码。这些课程都非常优质并且开源。

在这里,我衷心感谢无偿开放这些课程的教授们、老师们。我来自一所普通大学,接受着普通的教育。老师上课也只是拿出十几年前的课本,反复念叨听不懂的名词。我印象很深刻的是大一时,一位头发花白,再过两年就退休的C++老师,展示了一段hello world 代码。我看见他引用了一个陌生的头文件,于是上网去查。结果查到:那是2006年的C++规范,目前(2020年)已经被抛弃了。我瞬间觉得无语又好笑。系里这样的操作还很多。比如开不出有价值的课就只能开很多门编程语言课 (c, c++, python, java, c#),每个都教一遍,但每次只教if,while的语法。期末大作业就是XXX管理系统。我《动态网站设计》课程的大大作业支撑着我完成另外两门《软件工程》和《计算机实训》。这些课的唯一区别只是名字不同。经过本科的几年教育,我和同学们已经熟练掌握了如何使用CSDN 复制代码。稍微学的好的同学,还学会了CRUD。我不明白,花一个学期教的数据库,回过头发现自己只学会了select from xx。而那位老师还非常自信,每每上课都要和同学们吹嘘一番自己拿了某某教学奖。真是可笑。 笑完后,我在想,这么学下去,我能收获什么?本科的教育到底在教什么?

听到MIT 一位教授在课上谈论关于教育的本质: Education is all about what's left over after the semester. 我幡然醒悟。回想我上过的课,比如C语言,因为工作中用不上,很多语法细节我已记不大清了。但有些东西深深扎根在我脑海里:浮点数、堆栈、指针和内存。这些东西在我之后工作中经常出现,尤其是代码报错时。 如果一门课只是在教你XXX的定义是...., 它有以下...性质。那上这门课除了能帮你通过考试外毫无意义。 几个月后,所有关于xxx的记忆都会消失在你脑海里,仿佛它们从未来过。多年以后,当别人提起它时,你会觉得我好像听过,但怎么也想不起来。 如果是这样,那何必浪费时间上这门课?不如在家睡觉。

抱着这样的态度,我在网上搜寻能启发我思路的课程。我找到很多优质的开源课程。丰富的课程资料,课外阅读,有挑战性的实验,详尽的说明。有些老师上课深入浅出,有些老师触类旁通。有的老师收集大量的阅读资料,让你对一个领域有深入的了解。有的老师设计有趣的lab和proj,锻炼你的代码能力。在他们的课上,我对计算机的认识更加深刻。这是一门工程学科,一切新技术的发明都是为了解决现有问题。计算机的发明是为了进行复杂的计算。操作系统的发明是为了提升计算机的性能和安全,linux的发明是为了让人人都能用上操作系统······ 所有的知识都不是原封不动的就在那里,它们都经历过不断的探索和反复探索。对理论的深刻了解和动手能力的提升让我越来越爱上计算机这门学科,爱上科学。 这些教授,有的塑造了我的科学观念,哲学**,有的锻炼了我的动手能力,让我面对未知的科学问题,都底气十足。真诚地感谢你们!

我自学过的课程可以在这个链接查看。

补充

很遗憾,我发现的绝大多数课程都来自国外,主要来源于MIT, UCB, Stanford这样的美国名校。不过我也注意到国内有些老师正在真正“改革”**的计算机教育,其中我受益良多的是浙江大学翁恺老师的这门程序设计入门——C语言

Update, 08/2023, I have become a Ph.D. student in computer science.

About

The notes and Lab code of public courses I have taken.

https://pengzhangzhi.github.io/self-taught/

License:MIT License


Languages

Language:Python 49.6%Language:JavaScript 39.6%Language:Assembly 4.3%Language:Java 2.1%Language:Scilab 1.7%Language:HTML 1.6%Language:CSS 0.4%Language:Scheme 0.2%Language:Shell 0.1%Language:C 0.1%Language:Batchfile 0.1%Language:ANTLR 0.1%Language:Hack 0.0%