As a computer major, what are the top five courses that you should study most?

Unknowingly, I have been a programmer for 6 years.

Become bald, and become stronger.

If I go back to my university career, I will definitely study the following courses seriously, at least my hair can be cut by half!

1. Principles of Computer Composition

2. Computer operating system

3. Principles of computer compilation

4. Data structure and algorithm

5. Computer network

1. Principles of Computer Composition

The principle of computer organization is a good explanation of how computers work. When a girl asks you about a computer problem, the answer is hidden in this course (fog).

Recommended books: "In-depth understanding of computer systems"

This book looks at the entire computer system from the perspective of a programmer, so it is very suitable for programmers. But this book not only contains the relevant knowledge of computer hardware, but also contains the relevant knowledge including operating system, computer network and so on.

2. Computer operating system

No matter what programming language you learn, you can't avoid dealing with the operating system. For example, if you learn Java and use multi-threading technology, the operating system is actually responsible for managing processes and threads; for example, you learn the knowledge of memory allocation, c++ You can allocate a section of memory directly, and at this time, it actually calls the API provided by the operating system for memory allocation.

If you don’t understand the operating system, you will be confused when you learn advanced special effects of programming languages ​​in the future, when it comes to thread process scheduling, memory allocation, or learning Linux-related knowledge. Therefore, only if you learn the operating system, we will Able to learn other languages ​​and technologies better.

Based on this, knowledge points of computer operating systems frequently appear in the written test.

Graduated programmers or programmers in non-major classes can read the following two articles, and they should review and study again.

Third, the principle of computer compilation

First of all, a formal question: The principle of compilation is not easy to get started !

In other words, you need to prepare some basic knowledge to learn.

The study and practice of compilation principles are usually based on the accumulation of computer compilation process, basic computer working principles, and even certain mathematical knowledge, which are distributed and applied in different stages of compilation principles. Without the accumulation of these basic knowledge, you will soon be unable to continue learning at a certain stage due to insufficient knowledge.

So, first seriously accumulate the above-mentioned one and two before getting started.

Four, data structure and algorithm

I believe that both students who have graduated or those who are studying at school have been tortured more or less by the course of data structures and algorithms. The beginning of the course of data structure and algorithm talked about a very important concept: program = data structure + algorithm , for beginners may not be able to fully understand this sentence, but for students who have been working for two or three years, I believe this sentence The words are convinced.

For the learning of data structure and algorithms, I personally think that there should be three steps: first, you should have a general understanding of what an algorithm is, and you can get started through some popular science books. I call this process the introductory stage ; then you can try to implement something that is easier In this way, we can have a deeper understanding of the data structure and algorithm. This process is called the practical stage ; finally, to understand the relevant mathematical principles behind the data structure and algorithm, this process is called the principle stage.

Five, computer network

Knowledge of computer networks is still used quite a lot at work. After all, the so-called CURD engineers are always dealing with API-related services.

Regarding the content of computer basics, I have compiled 4 manuals, which have been downloaded 100w times on the entire network . Almost a programmer has a set of hard-core basic knowledge, including data structures and algorithms, operating systems, computer composition principles, computer networks , and graphics. +Practical case, usual development +Finish interview, help you quickly establish an overall view of computer science, consolidate basic computer skills, and take off in an instant~

Download link: Graphical operating system, network, computer composition PDF download!

About the Author

Author: Hello everyone, I am a programmer Brother Wu. I have open sourced a project LeetCodeAnimation on GitHub. Currently, it has 60k stars. The algorithm is explained in the form of animation. It has helped thousands of programmers get started with the algorithm. Welcome to pay attention to the public account. "Five minutes to learn algorithms", learn algorithms with us.
Reprinting instructions: Reprinting is prohibited without authorization