Graduated from the computer science department and has been engaged in software development for more than ten years. He joined a software company before he graduated from a standard class and began to do software development work. With more than ten years of programming experience, he has met many programmers who are not from a professional class. There are also a lot of people, so the criterion for being a good programmer is never measured by the class. The only reference standard for technical work types is accumulation over time, and the level of accumulation will naturally be higher. Of course, if supplemented with a reasonable career plan, a better effect will be achieved.
However, many programmers from non-major classes still feel that they need to make up at the basic level psychologically, and they will also consciously carry out basic level reinforcement in their spare time. This involves a question of how to become an excellent programmer, or how an excellent programmer is forged, and share some information based on years of programming.
The first material is the hard core basic knowledge that programmers must know
Due to space reasons, in order to avoid affecting everyone's reading experience, only screenshots are used to show part of the content. There is a free way to obtain the detailed and complete version at the end of the article!
After reading it, you can have a basic understanding and introduction to computers, and it is the basis for training your kernel. We look at the outline
table of Contents:
Basically cover all the basic knowledge of computers, from CPU to memory, explain what is binary, disk, compression algorithm, operating system, assembly and other knowledge.
Part of the content display:
1. What is CPU
Second, the CPU is a collection of registers
- Program counter
- Conditional branch and loop mechanism
- Flag register
- Function call mechanism
- Implement array through address and index
Three, the physical structure of the memory
- Memory read and write process
- Realistic model of memory
Fourth, the use of memory
- pointer
- Array is the realization of memory
- Stack and queue
- Linked list
- Binary tree
Five, recognize the compression algorithm
- File storage
- Definition of compression algorithm
6. FreeBSD Port helps you use source code easily
Seven, BIOS and boot
8. Assembly language and native code
Nine, the syntax of assembly language is opcode + operand
- Instruction analysis
- Function call mechanism
- Internal processing of functions
- Global variables and local variables
- Temporarily ensure the memory space used by local variables
- Processing of loop control statements
- Conditional branch processing method
- Understand the necessity of program operation logic, the relationship between application and hardware
10. The relationship between application and hardware
- Support IN instruction and OUT instruction of hardware input and output
- Test input and output programs
- Interrupt request from peripheral device
- Use interrupts for real-time processing
- Use DMA to realize massive data transmission in a short time
- Text and picture display mechanism
The second piece of information is the operating system that programmers must know
The entire operating system is written as a collection of programs, linked together to form a large binary executable.. The client sends
Send messages to communicate with the server, the client does not need to know that these messages are on the local machine.. Hard real-time operating system regulations
An action must be completed or occur within a specified time, such as automobile production... From another perspective, multi-threaded programming can
Enough to improve the programmer's programming ability and programming thinking.
Outline drawing:
The content involves six major aspects:
- Know the operating system
- Processes and threads
- Memory management
- File management
- I / O
- Deadlock
- Operating system interview questions
- Operating system core concepts
1. Know the operating system
- operating system
- Introduction to Computer Hardware
- Operating System Museum
- Operating system concept
- System call
- Operating system structure
Two, process and thread
- process
- Thread
- Interprocess communication
- Scheduling
Three, memory
- No memory abstraction
- A memory abstraction: address space
- Virtual Memory
- Page replacement algorithm
Fourth, the file system
Five, I / O
Six, deadlock
Operating system interview questions
- Explain what is an operating system
- Explain what is the main purpose of the operating system
- What are the types of operating systems
- Operating system structure
- What is on-demand paging
- Advantages of multiprocessing systems
- What is the kernel
- What is a real-time system
- What is virtual memory
- What is process and process table
- What is the difference between threads, threads and processes
- What are the benefits of using multithreading
- What is RR scheduling algorithm
- The situation that caused the system to deadlock
- Different levels of RAID
- What is DMA
- What are the benefits of multithreaded programming
- What is a device driver
- Communication between processes
- Inter-process state model
- What are the scheduling algorithms
- What are the page replacement algorithms
- What are the indicators that affect the scheduler
- What is a corpse process
More interview information and resume sharing:
Due to space limitations, the editor only displays all the contents of this actual combat document here. Friends who need to obtain a complete document for learning can follow the editor and add assistant VX: mxx2020666 to get it for free.
Written at the end of the article
As a programmer, phased learning is indispensable, and it is necessary to maintain a certain degree of continuity. This time, during this phase, I conducted a systematic review of some key knowledge points, which on the one hand consolidated my own The foundation, on the other hand, has also improved the breadth and depth of their knowledge.
Hope everyone can get their favorite offer!
——Like + follow, add assistant VX: mxx2020666, you can get it for free