Computer basic knowledge for programmers is very important, important degree is high, want to become a senior programmer, must have a good computer foundation, but why do you need a foundation?

Figure this out, and it will be much clearer what the basics are.

The first question is, is there a big difference between a system with 10 users and one million people on the back end?

This is something that many beginners don’t understand. For the front end, it’s not that different. For the back end, it’s a world of difference.

The back-end code is run on the server. The server is the same as the PC, which also needs CPU, memory, hard disk and bandwidth. When the system is used more, there will be performance bottlenecks.

Problems such as insufficient memory, CPU running to 100%, insufficient disk, etc., are often handed over to operation and maintenance to detect and deal with. Do developers need to understand?

Different solutions bring different resource usage.

So the back-end people have to do performance optimization, and a lot of things, the difference between professional and non-professional, is getting things done.

From this point of view, do you see any back-end basics?

Principles of computer composition, to tell you the physical structure of the computer, how data is stored.

The computer operating system tells you how to manage memory, what a process is, what a thread is, what an IO is.

Computer networks tell you what TCP and HTTP are and what a message is.

The purpose of these courses and basics is to give you a better understanding of the underlying implementation principles of your own programs and provide you with the foundation to solve performance problems.

If you have a problem with C/C++ one item is a very enthusiastic one (● ‘◡’ ●).

What is the difference between a btree index and a hash index? Which scenario should each be used in.

If you don’t have a foundation in data structures, the only thing you know about BTree is force numbers.

What the hell is a hash, a hash algorithm? What the hell is that?

If you don’t understand these two concepts, can you create indexes well? Sure, it’s very simple, but will creating an index solve the problem and make access faster?

It’s easy to try either index, but this one doesn’t work and use that one.

This is the solution when there is no culture, and the right way to learn is to take the time to understand what a Btree is, what a hash is, how it is implemented at the bottom, and then decide what kind of index to do in conjunction with the business scenario.

Normally, the principle of composition is enough.

But how long do you have to learn such a vast body of knowledge?

Also, the actual basics that are used are so closely tied to the work situation that maybe only 20 percent will be used, you just don’t know which 20 percent.

The conclusions are as follows:

1 computer composition principle, computer operating system, computer network, database, data structure, algorithm, these are six basic courses to learn

2. You don’t have time to study systematically, so you can only look for things that are likely to be used in your job. Go through them first to have basic concepts, so that you can know which field you belong to when you encounter problems later.

3 For systems with no users, there’s not much need to take basic courses because you don’t have to solve these problems. But the salary is equivalent to the problems you can solve. Are you willing to stay as a junior programmer?

4. Programming thinking is practiced in basic courses, but it is also more important in work.