百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

后悔大学没看到这个 Github 仓库

off999 2024-12-12 14:21 66 浏览 0 评论

经常有大一的学妹或者非科班转码的学妹在后台问我,计算机都要学哪些课程,有什么先后顺序。

有类似疑问的小伙伴,可以参考Github上「清华大学计算机系课程攻略

img

里面包含了清华CS专业,大一到大四的课程以及推荐书籍资源等,链接如下:

https://github.com/PKUanonym/REKCARC-TSC-UHTgithub.com

截取一些课程目录:

大一上:

大一下:

大二上:

大二下:

大三,专业课明显多起来了:

大四主要是实践、实习、毕设,课不多:

不过说实话,这份攻略对于我们大部分同学来说都只能参考,课程量有点大,时间不充足的话,很难完全跟下来。

但是我觉得这里面大三下的课程非常棒:

  • 操作系统
  • 计算机系统
  • 数值分析
  • 数字图像
  • 存储技术
  • 搜索引擎技术
  • 模式识别
  • 机器学习

可以说大三下的这些课程铺垫非常不错,不管以后走分布式存储、搜索引擎等基础架构方向还是机器学习等算法方向,亦或是游戏引擎、图形处理等方向,都算是入门了。

但是说实话,清华这份攻略好是好,就是太多了,对于时间没有那么充裕的同学,想要一个更加精简的 List,可以参考网易云课堂上的计算机课程图:

我把几门我觉得基本必学的课程用红线框起来了,大家可以作为参考。

另外,学习这些课程的时候,一定要多写代码、做一些Lab,建议把操作系统、计网、csapp这些课程 lab做完(国内有些学校可能没有),可以去国外找计算机四大名校的Lab。

部分学校最大的问题就是 OS、网络、数据库等 CS 核心课程上成了文科!

缺乏一些动手实践 Lab,大部分都是写实验报告,就是不写代码。

为什么美帝在数据库、操作系统、各种工业软件工程能力如此强悍?

**我觉得和他们 CS 强校的教育模式有关,**国外,尤其是美国,很多高校 CS 教育极其注重实践,国内也就少数不错的高校有实践教学,其它都是念 PPT,课后作业就是做 Word 项目。。。。

就拿 MIT 来说,6.830 Database Systems: 这是一门数据库系统的一门核心课程。前半部分比较基础的数据库的知识,后半段主要在讲Distributed Databases 的东西

它们的实验是什么?

是写个小型关系型数据库,比如 lab1实现数据库基本的存储逻辑结构,具体包括:Tuple,TupleDesc,HeapPage,HeapFile,SeqScan,BufferPool等。

我们数据库教什么?

教 SQL 怎么写,教数据库原理(这个还算好的)

大多数高校实验是什么?

用 Java 使用 JDBC 连接 MySQL 写个应用。。。

国外是如何教计算机网络的?

实现 TCP 协议栈~

比如斯坦福 CS 144,CS144 Lab Assignments - 手写TCP - LAB4

我们是怎么学习的?

记住 TCP 三次握手、四次挥手、记住 DNS 使用 UDP 协议....

我们大作业是什么?

有些是 Word 写作业。。。有些是让你用一下 socket api 写个网络程序。。。这是计算机网络原理吗?

操作系统比较典型的是 MIT 6.828,现在改名了。

直接让你基于一个 xv6 去实现一些模块,比如文件系统、多线程。

我们呢?

记住进程和线程区别、记住虚拟内存的各种组关联....

当然也有一些学校会有实验,比如清华 ucore、哈工大 linux0.11。

这就是为什么美国高校有很强的编码能力、造轮子的能力,因为他们的 CS 学生成长环境就是这样的。

CS 专业区别于其它专业一个很大特点就是:

  • 工作后的内容是和专业所学的内容强相关的。

比如你学了数据结构、编译原理、操作系统、计算机网络,如果你从事的是研发岗,那一定离不开这些知识。

  • 主要靠自学

不管是科班还是非科班,想要快速持续的提高技术水平,就得靠自己去钻,尤其离不开自学。

知乎上其实很多问科班和非科班的差别在哪,其实我一直想说,你给自己充足时间去把科班的内容学习一遍,到底还能差在哪呢?

可能唯一差别就是少了一个 计算机学士学位。

也有人把这种自学出家的叫做民科,当然没有任何的讽刺意思哈。

那么计算机专业同学该如何自学呢?

其实看着很多,概况起来就是(下面只涉及CS专业课):

  1. 计算机导论 + 一门编程入门语言
  2. 算法与数据结构
  3. 操作系统
  4. 计算机网络
  5. 数据库系统
  6. 特定领域知识,如:计算机图形学、信息安全、System方向、分布式

学习的途径就是:

多看国内外 CS 名校的一些开放课程 + 看经典的书 + 多写代码!!!

毕竟现在MOOC、Udemy、B站上学习的资源都是很丰富的。

比如:[CS经典课程][https://mp.weixin.qq.com/s/bkLpjLxqQHaBTwCiz3VwBA]

简单列举几个学科:

一、计算机导论

首先建议从计算机导论课程开始,推荐下面这些课程:

  • Harvard的CS50 CS50: Introduction to Computer Science
  • Berkeley的CS61A CS 61A: Structure and Interpretation of Computer Programs
  • MIT的6.001 mit-6.001

二、C 语言

随后建议学习一门语言,可以是 C、Java、或 Python,我推荐 C语言(当然,也可以是Python!这不是重点,重点是要多去写,入门时提高对编程的兴趣),提到C语言,我这里推荐国内浙大翁凯老师的课,看过的都说好~

分为两门,第一门是面向高考结束想提前自学一点编程的,叫大学先修课:

  • C语言程序设计CAP-大学先修课

虽然叫先修课,但是覆盖了C语言的主要知识点,也适合大一新生~

第二门是

  • C语言程序设计进阶

会带你用C语言完成一些有趣的项目,比如一些图形界面小游戏,先修课学习 C 语言语法基础,进阶课带你项目实操,搭配使用,你就是同学中的大神!

有了语言基础之后建议学数据结构与算法:

三、数据结构推荐:

  • Stanford CS106系列
  • CS106A: Programming Methodologies

四、算法推荐:

  • 6.046(进阶) Design and Analysis of Algorithms - MIT
  • MIT的6.006 Introduction to Algorithms
  • Coursera上的Princeton课程
  • Berkeley的CS61A 和 CS61B

五、操作系统推荐:

  • CMU的15-213
  • Berkeley的CS162,

这两个都是有视频有lab的好课

还有一个非常经典的 MIT 6.828,附带一个xv6 lab

课程:6.828: Operating System Engineering

六、 组成原理、体系结构:

  1. MIT的6.004,
  2. CMU的15-213
  3. Berkeley的CS61C

七、计算机网络:

  • Stanford的CS144,lab 很有意思

新手快速自学的方法

一个原则,来自翁凯老师:

学计算机一定要有一个非常强大的心理状态,计算机的所有东西都是人做出来的,别人能想的出来,我也一定能想得出来,在计算机的世界里没有任何的黑魔法,所有的东西只不过是我现在不知道而已,总有一天我会把所有的细节、所有的内部的东西全搞明白的

这里,也有一个问题,确实大部分的东西,只要你一直深挖下去,可能都能搞明白。

但是要注意时间成本,软件行业已经不是一般的复杂和巨大,任何一个领域的知识的复杂性都足够耗费掉我们一生的时间,所以一定要抓住主线,对于技术和知识,要学通用的、流行的,可以尝试面向面试学习。

“打破砂锅问到底”式的学习虽然精神可敬,但效率并不划算。

要在适当的层次上抽象出一层,并且认可这一层提供的接口,不去深究内部实现,了解原理即可,不必深究内部实现。

比如学习 HTTP,那么就先认可 TCP 提供的稳定可靠传输,而不继续深挖 TCP 的内容。

新手,一定不要一直看书,保持看书的时间不超过 50%。

  1. 看书学习基本的理论
  2. 编程练习
  3. 有了新领悟,继续看书

反复的循环。

来源于编程指北 ,作者编程指北

相关推荐

win11家庭版和专业版哪个好(win11家庭版和专业版哪个好用)

win11用专业版本最好,玩游戏最稳定。相对于前代的操作系统来讲,windowS11系统无论哪个版本都非常稳定,但是在门斗41所有版本当中,最稳定的是专业版,但是这个版本占用的空间很大,对硬件的要求...

win7连不上win10打印机拒绝访问

原因及解决方法:1.在Win10Cortana搜索框中,搜索控制面板将打开;2.转到控制面板,选择查看方法作为一个小图标,然后单击程序和功能;3.单击以启用或禁用Windows功能选项;4....

电脑主机不启动但通电(电脑主机开机不通电没反应)

第1步:首先检查电脑的外部接线是否接好,把各个连线重新插一遍,看故障是否排除。第2步:如果故障依旧,接着打开主机箱查看机箱内有无多余金属物,或主板变形造成的短路,闻一下机箱内有无烧焦的糊味,主板上有无...

苹果一体机怎么重装系统(苹果一体机重装系统win10)

苹果更换硬盘后,如果您没有创建一个启动磁盘或者使用TimeMachine备份系统,您可以按照以下步骤重新安装操作系统:1.准备一个可用于安装系统的启动磁盘。您可以使用官方提供的macOS安装介质(...

装系统的u盘怎么制作(装系统怎么制作u盘启动盘)
装系统的u盘怎么制作(装系统怎么制作u盘启动盘)

1、下载安装u当家u盘启动盘制作工具,完成之后打开该软件2、将之前准备好的U盘插入电脑,U当家会自动识别并选为默认,如果有多个U盘可以在“选择U盘”的下拉框中选择要制作成U盘启动盘的U盘。3、点击下面的“一键制作”按钮。(如果是电脑主板是U...

2025-11-15 07:03 off999

台电u盘怎么样

感觉台电U盘还是可以的,我知道台电是国内最成功的数码产品制造商之一,是一个致力于IT及消费数码类产品研发、生产、销售及服务的一体化品牌,U盘很好用,用的人很多。威刚是480Mbit/S只是USB2...

u盘重装系统蓝屏进不去(u盘装系统重启蓝屏)

尊敬的用户您好:可按下面的步骤进行系统盘装系统:1.买一张win7光盘,将系统光盘放入光驱里。2.打开电源,然后观察屏幕的提示,在启动系统之前有按“f2进行bios设置。3.设置启动方式。找到boot...

win快捷键大全(win快捷键大全表)

win快捷键:单独按Windows:显示或隐藏“开始”功能表Windows+BREAK:显示“系统属性”对话框Windows+D:显示桌面或恢复桌面Windows+M:最小化所有窗口Windows...

u盘突然要格式化怎么回事(用着的u盘突然要格式化)

U盘提示格式化的原因可能有以下几点:文件系统损坏:U盘的文件系统可能出现损坏,导致无法正常读取和写入数据。病毒感染:U盘可能被病毒感染,病毒会破坏文件系统或隐藏文件。不兼容的文件系统:U盘可能使用了一...

路由器pppoe怎么设置(路由器如何设置pppoe上网)

移动宽带PPPOE是不用设置的,你只要把帐号和密码填上其他都不选就能上网。但是要注意连接到你电脑的网线是直接经过一个路由器后连接到猫上的,因为我见过有人是这样连接的猫---路由器---路由器---电脑...

win7桌面图标设置在哪里(win7桌面图标在哪个文件夹)

要调出Win7桌面图标,首先需要进入桌面。可以通过点击任务栏上方的“显示桌面”按钮或按下Windows键+D快捷键进入桌面。在桌面上右键单击空白区域,选择“个性化”,然后选择“更改桌面图标”选项。在弹...

win7手机壁纸(windows7手机桌面主题)

1.首先我们打开手机进入到桌面,找到设置图标点击打开。华为手机如何设置自定义锁屏壁纸2.进入到设置界面之后,点击下方的显示选项。华为手机如何设置自定义锁屏壁纸3.然后我们就可以在显示界面中找到壁纸...

怎么开启路由器wifi(怎么开启路由器的dhcp功能)

把路由器改为开放网络方法如下:1、打开浏览器,在地址栏输入路由器网关IP地址(路由器背后的标签上有,一般是192.168.1.1),输入登录用户名和密码(一般均为admin);2、登录成功后就显示运行...

win10加载不出来桌面黑屏(window10加载不出来)

方法一、如果是遇到了突发性黑屏首先尝试使用Ctrl+Alt+Delete组合键来进行电脑重启一般重启可以解决大部分黑屏故障。win10电脑黑屏按什么键恢复_win10电脑黑屏一键恢复的方法方法...

怎么用火绒关闭win安全中心(win10火绒安全软件怎么关闭)

一、火绒防火墙关闭方法在电脑上运行火绒软件后,点击首页界面的“防护中心”,在病毒防护界面可以关闭文件、U盘、邮件等保护功能,。系统防护:在该界面可以关闭系统防护功能,。网络防护:可以关闭网络保护等功...

取消回复欢迎 发表评论: