• Stars
    star
    54,539
  • Rank 198 (Top 0.01 %)
  • Language
    HTML
  • License
    MIT License
  • Created about 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

计算机自学指南

CS 自学指南

Everyone should enjoy CS if you have a good teacher to teach you a good course.

License Issues Stars

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

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

我很庆幸在自己大一的时候就选择了自学 CS 这条路,它让我爱上了计算机这门学科,也无比丰富了我的视野。

但同时,自学这条路也有很多困难和阻力:课程繁多不知如何选择,资料零散甚至残缺,作业难度不知深浅,课内任务还需要花时间应付······这些主客观因素叠加到一起,使得好课虽多,却只能在收藏夹里吃灰。

在大学的第四个年头,我想把这一路自学走来的经验和教训,把那些让我受益终身的课程记录下来,分享给大家,形成了这本CS自学指南,以期能给所有想自学计算机的朋友一点帮助。

我的目标是让一个刚刚接触计算机的小白,可以完全凭借这些开源社区的优质资源,少走弯路,在 2-3 年内成长为一个有扎实的数学功底和代码能力,经历过数十个千行代码量的 Project 的洗礼,掌握至少 C/C++/Java/JS/Python/Go/Rust 等主流语言,对算法、电路、体系、网络、操统、编译、人工智能、机器学习、计算机视觉、自然语言处理、强化学习、密码学、信息论、博弈论、数值分析、统计学、分布式、数据库、图形学、Web 开发、云服务、超算等等方面均有所涉猎的全能程序员。此后,无论是选择科研还是就业,我相信你都会有相当的竞争力。

你可以在线免费阅读这本书

英文版请移步这里

如何成为贡献者

一个人的力量终究是有限的,对于书中任意章节你若有想要补充的内容,欢迎各位提出 Pull Request。如果你想贡献一门新的课程,可以参考目前 repo 中的 template 文件作为模版,并在 mkdocs.yml 文件中添加其navigation,当然你还可以在 CS 学习规划 里的对应模块为其添加言简意赅的导语。如果你有想推荐的书籍,请参考 好书推荐 模块上方的注释按相应格式添加内容。

对于中英混合排版的要点规范,可以参考这个仓库,我们将会对您的 Pull Request 做相应的校对,具体原因参见这个 issue

本书的英文版也正在翻译中,如果你想参与到翻译的队伍里,可以参考这个 issue

同时由于个人水平有限,书中难免有笔误甚至概念错误之处,也请各位不吝赐教,在 issue 中提出来。

关于交流社区的建立

本书支持页面评论功能,因此如果你想自学某课程,可以自己建立群聊后(QQ 微信皆可)在对应的课程页面下方发表评论,注明你的学习目标以及加入交流群的途径。此外,过去已有不少朋友在 issue 里建立了类似群聊,可以自行选择直接加入。

Star History

Star History Chart

鸣谢

特别感谢 @AlfredThiel 为项目制作了精美的 Logo。

许可

项目贡献者编写的部分依照 MIT LICENSE

其余部分(包括但不限于书中提到的课程资源、开源书籍以及视频内容)遵循原作者规定的许可。

More Repositories

1

Self-learning-Computer-Science

the resources I use to learn computer science in my spare time
2,961
star
2

CS61A

JavaScript
589
star
3

CS61B

course resources for UCB_CS61B 2018 summer
Java
326
star
4

MIT6.S081-2020fall

MIT undergraduate operating system course
C
295
star
5

CS144-Computer-Network

Learning materials for Stanford Computer Network course : CS144
C++
281
star
6

CS186

Learning materials for UCB CS186: Introduction to Database System
229
star
7

CS61C-summer20

all the course resources of UCB's CS61C course -- Great ideas in computer architecture
C
175
star
8

CS229

Jupyter Notebook
167
star
9

UCB-CS70

discrete mathematics and probability theory
163
star
10

CS106L

CS106L : Standard C++ Programming Course
C++
155
star
11

NandToTetris

all the course resources and my completion for all the projects
Hack
149
star
12

Computer-Network-A-Top-Down-Approach

My learning materials for Computer Networking : A Top Down Approach
Python
138
star
13

CMU10-714

Learning material for CMU10-714: Deep Learning System
Jupyter Notebook
137
star
14

CS149-parallel-computing

Learning materials for Stanford CS149 : Parallel Computing
C
122
star
15

MIT6.824

distributed system
Go
109
star
16

Princeton-Algorithm

Java
75
star
17

EECS126

UCB EECS126 : probability theory and random processes.
Jupyter Notebook
64
star
18

UCB-CS170

This repo contains all the learning materials for UC Berkeley's course CS170 : Efficient Algorithms and Intractable Problems
Jupyter Notebook
61
star
19

Standford_CVX101

Stanford convex optimization course
Jupyter Notebook
56
star
20

MIT6.031-software-construction

learning materials and implementation for MIT6.031: software construction problemsets
Java
55
star
21

cs50_ai

cs50 AI course resources
HTML
54
star
22

CS61C-labs

my implementation for the CS61C labs in 2020 summer version
C
51
star
23

CS224n

all the notes, ppts and homework for CS224n
JavaScript
49
star
24

CS169-Software-Engineering

Learning materials for UCB CS169 : software engineering
36
star
25

CS110L

Stanford CS110L: Safety in Systems Programming
Rust
33
star
26

EE16A

UCB EECS16A Designing Information Devices and Systems I
Jupyter Notebook
30
star
27

UCB-EE120

UC Berkeley signal and system course
Jupyter Notebook
30
star
28

pku-cs-self-learning

This repo is deprecated.
27
star
29

CS186-Rookiedb

My implementation for CS186 proj2 - proj5
Java
27
star
30

pku-os-course

Course website for Operating System course in Peking University.
HTML
13
star
31

PKUFlyingPig

my personal repo
12
star
32

UCB-CS161

computer security
Jupyter Notebook
12
star
33

Hadoop_vs_Spark

研究生课《网络大数据管理理论和应用》大作业项目代码
Java
10
star
34

Thesis-Template

Thesis template for undergraduate students at Peking University.
10
star
35

MIT18.330

undergraduate numerical analysis course in MIT
Jupyter Notebook
8
star
36

CS143-compiler

Learning materials for Stanford Compiler course : CS143
Java
6
star
37

MIT6.1600

Learning resources for MIT6.1600: Foundations of Computer Security.
Python
5
star
38

CS186-proj1

Project 1 for CS186: SQL
Python
4
star
39

ArchiveMachine

the backend of the project of Software Engineering
HTML
4
star
40

RISC-V_CPU

UCB-CS61C project3 : RISC-V CPU design
Python
3
star
41

homepage

My homepage
HTML
3
star
42

os-course

website for operating system course at Peking University
HTML
2
star
43

machine-learning-exercises

codes for the exercises of Machine-Learning by ZhouZhihua
Jupyter Notebook
2
star
44

CS179

CS179 : GPU computing
C++
2
star
45

NeuralNetwork-by-RISC-V

implement a simple MNIST classifier by RISC-V
Python
2
star
46

GameOfLife

C implementation of the Game Of Life
C
1
star
47

dotfiles_MacOS

FlyingPig's Dotfiles repository
Shell
1
star
48

CS186-proj6

My implementation for CS186 project 6: NoSQL
Python
1
star