The most systematic computer science major study plan: Stanford University, UCB and other world-class universities CS courses | Attached textbook list...

Xiao Xiao from the bottom of the recessed non-Temple
qubit reports | Public number QbitAI

Is the cost too high to study abroad? (The epidemic continues, it is even difficult to go abroad?)

Self-study computer-related courses and don’t know where to start?

Now, the most systematic computer learning roadmap is here!

A list of 9 basic computer subjects that must be learned , with video courses and reference textbooks from famous universities such as Stanford , Berkeley , and Massachusetts Institute of Technology . The road to CS becoming a god is just around the corner.

As long as you close your eyes and follow the road map, you can also have the perfect experience of studying computer science in a world-class university.

Recommended self-study materials

Let's take a look at the relevant materials in the 9 subjects to be studied. (Book link is attached at the end of the article)

List of teaching materials and videos of 9 subjects

Programming

"The Construction and Interpretation of Computer Programs" author Alan J. Perlis

Regarding the classic model of programming and basic computer terminology, this book basically has an introduction. Many people say that this book subverts their basic understanding of programming.

Of course, if you don’t need a deep understanding of programming, you will have a basic understanding of the relevant concepts after finishing the first three chapters of the book.

The supporting video teaching suggestion is the SICP course video offered by Stanford.

computer system

"In-depth understanding of computer systems" author Randal E. Bryant / David O'Hallaron

If you want to quickly understand the low-level perspective of software, this book is a very good recommendation. Through the first six chapters of this book, I have basically mastered most of the computer system knowledge needed to write software.

The accompanying video explanation is Berkeley's "Great Ideas in Computer Architecture" course.

Algorithm and data structure

Steven S. Skiena, author of "Algorithm Design Manual"

If you are tired of a large number of formulas and proofs of theorems, this book is a good choice. All the purposes of the algorithm-related theorems and formulas in the book are to solve practical problems .

The supporting video is Stanford's algorithm design course.

Mathematical theory

"Mathematics in Computer Science" author Eric Lehman, etc.

Although mathematics theory is no longer a necessary knowledge for programmers, learning mathematics is still a huge help for writing good code.

The supporting video is the MIT course of the same name.

operating system

"Introduction to Operating System" author Remzi H. Arpaci-Dusseau, etc.

Compared to the more classic basic operating system textbooks, the biggest advantage of this book is its readability . Not only the structure is clear, but also the exercises contain high gold content, which helps to quickly understand the content of the operating system.

The instructional video of the supporting operating system comes from Berkeley.

computer network

"Computer Network: Top-Down Approach" author James F. Kurose / Keith W. Ross

It is said that this is the most effective one after school among all 9 subjects. Whether it is related technical terms in the computer industry or some obscure agreements, your questions will be answered after you finish this book.

Supporting video teaching is Stanford's Introduction to Computer Networks.

database

《Readings in Database Systems》作者 Joseph M. Hellerstein等

Still worrying about learning database? Don't be afraid, this is a subject that most people have to think about, because compared to other subjects, self-study databases are somewhat difficult.

Compared with textbooks, it is a better choice to start with a video lesson and complete a database management system independently.

The supporting teaching is Berkeley's database video course.

Programming language and compiler

"Principles of Compilation (Dragon Book)", a classic book, self-study is not recommended for newcomers

By learning this subject, you will have the ability to adapt to a new programming language faster.

In fact, it is more recommended for newcomers to study "Crafting Interpreters" by Bob Nystrom (see the end of the article for the method of obtaining it).

The supporting videos are related courses offered by Stanford on the MOOC platform.

Distributed Systems

"Data-intensive Application System Design" by Martin Kleppmann

If you want to make overall plans so that even small programs can run on multiple devices, you need to master the relevant knowledge of this subject.

The supporting course is MIT's video teaching on distributed systems.

When theory meets reality

Although in theory, this learning plan is almost impeccable.

However, is it practical?

Some netizens believe that this study plan is very good, but from the perspective of education, it may not be applicable.

This list of information is pretty good. However, instead of holding books and videos for 1,000 hours, I think we can provide more interesting projects/exercises related to the subject, which will speed up their progress.

Some netizens also said that this list is a bit exaggerated. In the introduction to the checklist, there seems to be some misunderstanding about the current status of the software engineer industry.

According to you, the current self-taught software engineers can't even write "recursive" code?

This is a bit too much. A software engineer who can solve practical problems doesn't even know what stacks, queues and trees are?

In addition to this, there is a more realistic problem.

In fact, the bosses may value your academic qualifications more than your skills (no difference at home or abroad).

Humph, the pressure of academic qualifications is everywhere.

Ask for a salary increase: "It's worth the price for non-undergraduates"

Request for promotion: "Sorry, this job requires a bachelor degree"

Change job: "Sorry, we have already recruited an undergraduate."

Date: "You don't even have a bachelor degree?"

……

If you are not rough or rough, skills are important, but for bosses who don’t understand computers, they may value your academic qualifications more.

Of course, if practical skills and academic qualifications are not the object of your worries, but if you still want to understand the theoretical knowledge of the industry more systematically, this list is completely yours. (You can add it to your favorites)

about the author

Author Ozan Onay

Ozan Onay and Myles Byrne, two faculty members from Bradfield School of Computer Science (San Francisco), are responsible for the professional guidance of software engineers' advanced computer learning, aiming to help software developers produce more durable and high-quality software and become highly influential engineer.

At the same time, Ozan Onay and Myles Byrne also hope to deepen the students' emphasis on basic subjects such as operating systems, computer architecture and databases.

They hope to use their own experience to provide fresh graduate students with better motivation for innovation and technical guidance for producing high-quality software.

Portal:

Information list:
https://teachyourselfcs.com/

Chinese version information list:
https://github.com/keithnull/TeachYourselfCS-CN/blob/master/TeachYourselfCS-CN.md

Ends  -

This article is the original content of the NetEase News•NetEase Featured Content Incentive Program account [qubit]. Unauthorized reprinting is prohibited.

Join the AI ​​community and expand your network in the AI ​​industry

Qubit "AI Community" is recruiting! AI practitioners and friends who are concerned about the AI ​​industry are welcome to scan the code to join, and pay attention to the development of the artificial intelligence industry & technological progress with 50,000+ friends :

Qubit  QbitAI · headlines on the signing of

վ'ᴗ' ի Track new trends in AI technology and products

One-click three consecutive "Share", "Like" and "Looking"

The frontiers of science and technology are seeing each other~

Guess you like

Origin blog.csdn.net/QbitAI/article/details/113100632