In general, there are several big convenience
- Programming Language Basics
- Data structures and algorithms
- Computer network
- The operating system
At the heart of every aspect
Programming Language Basics
- The difference between new and malloc and the underlying implementation principle
- What do you mean by static? Static in C and C++?
- What about const? Const in C and C++?
- C++ virtual function principle
- Smart Pointers
- How does C implement C ++ objects and private members
- C++ polymorphic implementation
- How to expand the vector in STL
- Initialization of a pointer to a virtual function
- C++ 11 introduction to atomic variables
- What are the c++11 features?
- What do you mean by overloading and overwriting
- How to understand the static keyword in c++
- Vector and list
- C++ memory allocation
- The underlying implementation of Map and set
- Class static variable initialization
- Can the destructor be virtual? Why is that?
- Deep copy and shallow copy
- The difference between pointer constants and constant Pointers
Recommended books: C language grammar recommended books: “C Expert Programming”, “C and Pointer” C ++ language recommended books: “C ++ Primer”, “Effect C ++” C ++ Language UNDERLYING principles: “STL Source Code Analysis”
Data structures and algorithms
- Hash how conflicts are handled
- Binary search and its variants
- The difference between arrays and lists
- Which data structures have you used in Redis?
- What are the advantages of a red-black tree over a balanced binary tree
- Binary tree, B + tree, hash, binary lookup tree distinction
- Talk about the properties of red-black trees
- All kinds of trees, the time complexity of sorting
- Database index, transaction, transaction level
- What happens if you don’t consider transaction isolation
- Transaction Isolation level
- Type of index
- AC automata time complexity – The linked list is looped
- Implement a singleton pattern
- Determine the number of words in a string
- Square root algorithm
- Frog jumping on the steps
- Common sort (quicksort and merge)
- Reverse a linked list
- Two linked lists, looking for common nodes
- Finds the most unique string in the string
- LRU
- Handwriting for the depth of the tree code
- Handwritten producer consumer
- Programming to implement the String class
- Both arrays A,B, and A have B, so let’s find B minus A;
- Input a string, output its full permutation
- Count the number of nodes in a complete binary tree
- Memcpy implementation
Data structure books “big talk data structure” leetcode each type of topic 10, do understand thoroughly.
Computer network
- Introduce ProActor and Reactor
- The composition of the reactor
- TIME_WAIT harm
- TIME_WAIT Duration. Why?
- Why should IP be sharded
- How big is the thread pool? Why is the thread pool used?
- Select is different from epoll
- When does select return 0
- How ePoll can be read
- When do YOU need TCP four waves?
- How do I set non-blocking
- What is a zero copy?
- The differences between TCP and UDP and their application scenarios
- How to design a reliable UDP
- How to solve the sticky bag
- Talk about congestion control and flow control
- The difference between HTTP and HTTPS
- Whether you understand the principle of middleman hijacking
- HTTP protocol format, how many methods, what is the function
- Chunk Understand? introduce
- What does contentLength look like with chunk
- Which stage is the half connection in
- Three handshakes four handshakes detailed process, the more detailed the better
- Libevent structure, internal implementation
- What is the reliability of TCP
- ARP protocol workflow
- ET and LT modes in epoll
- Describes the slide down window
- The difference between Pointers and references
- Accept occurs in the phase of the three handshakes
- The Udp receive and send buffers are different from those of TCP
- The difference between long and short HTTP connections
- Udp packet length
- What happens to a URL access
- Will packets be processed out of order?
- Seq is 1000, 1000 data is sent, what is the next SEQ?
- How many times is the SYN retransmitted if it is lost
TCP/IP: TCP/BEST Understanding 1
The operating system
- The difference between processes and threads
- The difference between multi-process and multi-threaded, application scenarios
- The difference between volatile and atomic variables
- Proc file system
- The difference between spin lock and ordinary lock
- Virtual memory
- The memory distribution of the process
- Why is stack memory automatically allocated and freed by the system
- How is a daemon created
- Inter-process communication modes, differences, and application scenarios
- Deadlock conditions and release
- Process scheduling mode
- Understanding of compile joins
- Implementation principles of shared memory
- What is a zombie process and how to deal with it
- The use of spin locking in single and multiple cpus
- User-mode and Kernel-mode Operating systems Recommended books: In-depth Understanding of operating Systems, Linux Kernel Design and Implementation
These are the principles of the operating system. In addition to understanding the principles, you need to be familiar with the common use of the Linux operating system
linux
- How do I view files opened by a process
- This section describes the nm and LDD commands
- Shell command to check memory, port, IO access, read/write rate
- Awk grep Specific application
- Hard link and soft link, directory can use hard link
- Common command netstat iptable tcpdump top
- Makefile (cmake)
- GDB looks at all the traversals in the stack
- GDB Looks at what shared_ptr points to
- GDB how to debug multi-process multithreading
- What’s the difference between g++ and GCC
- How to debug deadlock
- What’s in the core file, the GDB debug core file
- How do you read a 10GB file, cat a 10GB file what happens
“This is How You Learn Linux” “Multithreaded Server Programming for Linux”
It is best to practice the operation yourself.