Spring recruitment and autumn recruitment interview knowledge points outline

Preface

This blogger has met Baidu/Tencent/Xiaomi/Netease/Sogou/Zhihu/Jingdong/360/Guazi. I think the knowledge points summarized at the end are very suitable for everyone to learn from and learn. It can be used as an outline for interview review.
Thanks to the blogger for sharing.

1. Computer network

Basic part

  1. TCP header format
  2. UDP header format
  3. The difference between TCP/UDP (not only at the macro level, it is best to explain clearly according to their respective mechanisms)
  4. HTTP status code (it is best to combine usage scenarios, such as which one to use when the cache hits)
  5. HTTP protocol (the role of some header fields, such as cace-control, keep-alive)
  6. OSI protocol, TCP/IP protocol and the protocol corresponding to each layer.
  7. SESSION mechanism, cookie mechanism
  8. TCP handshake three times and waved four times (this question really has to be answered, but it is really the interviewer's favorite to ask. It is recommended to do it every day, and it is not only the process of each request, but also various FIN_WAIT and TIME_WAIT states. To master).
  9. The process from opening a web page to the page display (covers all aspects, DNS resolution process, Nginx request forwarding, connection establishment and maintenance process, browser content rendering process, the more detailed the better).
  10. The difference between http and https, https is an additional process when requesting, how does https guarantee data security
  11. IP address subnetting
  12. The difference between POST and GET
  13. DNS resolution process

In-depth part

  1. How does TCP ensure reliable data transmission (this problem can be extended to many sub-problems, such as slow start of congestion control, congestion avoidance, fast retransmission, sliding window protocol, stop waiting protocol, timeout retransmission mechanism, it is best to master)
  2. Address Resolution Protocol ARP
  3. The difference between a switch and a router

Second, the database

Basic part

  1. Four characteristics of transaction (ACID)
  2. Database isolation level, what problems each level will cause, which level is mysql default
  3. The difference between the two storage engines of MYSQL (transaction, lock level, etc.), and their respective applicable scenarios
  4. Database optimization (answer from two parts: sql statement optimization and index)
  5. The index has B+ index and hash index, the difference between each
  6. The difference between B+ index data structure and B tree
  7. The classification of the index (primary key index, unique index), the principle of the leftmost prefix, in which cases the index will fail
  8. The difference between clustered index and non-clustered index.
  9. What are the locks (optimistic lock pessimistic lock), how to add exclusive lock when selecting
  10. The difference between relational database and non-relational database
  11. Understand nosql
  12. Three paradigms of database, design data table according to a certain scene (you can use hand-drawn ER diagram)
  13. Master-slave replication of the database
  14. Use explain to optimize sql and index
  15. How to solve long_query
  16. Internal connection, external connection, cross connection, Cartesian product, etc.

In-depth part

  1. MVCC mechanism
  2. According to specific scenarios, explain the version control mechanism
  3. How to solve the deadlock
  4. Usage scenarios of varchar and char.
  5. How to solve mysql concurrency (through transaction, isolation level, lock)

Redis

  1. What are the redis data structures
  2. Redis queue application scenarios
  3. redis and Memcached (support data persistence)
  4. Distributed usage scenarios (storage session, etc.)
  5. Publish/subscribe usage scenarios

Three, operating system

  1. Memory page replacement algorithm
  2. Process scheduling algorithm
  3. Inter-process communication method
  4. Process thread difference
  5. Communication between processes
  6. Parent-child process, orphan process
  7. For the operation of the fork process,
    I didn't answer this part very well. I can only memorize it by rote. It is recommended that students with good basic knowledge look at this part of the operating system, which can greatly increase their points.

Fourth, the algorithm

Basic part

  1. The various questions of Jianzhi OFFER are the most common, even if they are not the original questions, they are variants of the questions. Because interviews are not like written examinations, there are generally no particularly difficult questions. Therefore, the small and precise questions on Jianzhi OFFER are very suitable. It is recommended to brush it by hand. PHP students can refer to the column Jianzhi OFFER
  2. Binary tree correlation (level traversal, depth, distance between two nodes, flip binary tree, traversal in front, middle and back)
  3. Linked list related (insert node, reverse linked list, use linked list to add and subtract large numbers, doubly linked list realizes queue, look for ring in linked list)
  4. Heap (Looking for the largest N number in a large amount of data will be asked almost every time, and the heap is adjusted during insertion)
  5. Sorting (eight sorts, their time complexity, and the stability of the sorting algorithm. Quick sorting asks almost every time)
  6. Binary search (usually in-depth, such as looking for two numbers whose sum of the array is K)
  7. Two stacks implement queues.
  8. Graph (depth and breadth first traversal, single source shortest path, minimum spanning tree)
  9. Dynamic programming problem.

In-depth part

  1. Red black tree nature
  2. The difference between divide and conquer and dynamic programming
  3. Computational time complexity
  4. Time complexity of binary tree and hash table lookup

Specific topic record

  1. There is a URL in each line of a text file, up to 10,000 lines, count the times of each URL, output to another file, each line is the URL in front, and the number is in the back.
  2. Reverse order of singly linked list
  3. A function implements a given string, removes the spaces before and after it, such as "ab cd", the final result is "ab cd", and the address of the string cannot be changed.
  4. Compare cookie and session, if there is a wrong value, it is incorrect
  5. Find the factorial of 10 and how many 0s are behind it
  6. String match
  7. String shift, give the string abc##dfg##gh, and move all #s to the beginning of the string. Output ####abcdfggh (personally think that backward shift can be used to reduce the number of shifts)
  8. Given a binary tree and two leaf nodes, find the shortest path connecting these two leaf nodes.
  9. Calculate the difference in days between two dates
  10. 100 ordered array merge
  11. The largest submatrix sum of the matrix
  12. Given a multi-branch tree, each node has a number, and now to sort the nodes, it is required that for each node, its parent node is arranged behind it. If a tree has N nodes, then there must be N- 1 side. The input data format is: Map.Entry

Five, LINUX

  1. The difference between hard link and soft link
  2. Kill usage, the reason why a process cannot be killed (enter the kernel mode, ignore the kill signal)
  3. Commands used in linux
  4. System management commands (such as viewing memory usage, network conditions)
  5. Use of pipelines |
  6. The use of grep must be mastered, every time I will ask to find it in the file
  7. shell script
  8. find command
  9. awk use

6. Language part (PHP)

  1. Array manipulation functions
  2. String manipulation functions (array and string functions are the most frequently asked, there are many, so don’t remember them)
  3. The difference between pointers and references
  4. The difference between heap and stack
  5. == === Difference
  6. PHP's garbage collection mechanism
  7. zval structure
  8. Anti-sql injection
  9. Cross-domain issues
  10. Long links and long polling

Object-oriented, design pattern

  1. Difference between interface and abstract class
  2. Single inheritance
  3. The calling sequence of construct (between subclass and parent class)
  4. Design mode (factory mode, strategy mode, singleton mode, decoration mode are more common)
  5. OOP features, through which mechanisms are implemented
  6. The difference between rewriting and reloading
  7. Static class static method
  8. Design a class according to a certain requirement (mainly consider the inheritance relationship between classes and the permission setting of attributes)

note

The blogger just thinks this is very suitable for reviewing the outline, so he only carried the outline, hoping to let more people see it (of course also a little selfish, hee hee) to check the original text and have more surprises.
This article is reproduced from the 2018 Autumn Recruitment Plan-Backend Development

Guess you like

Origin blog.csdn.net/qq_42068856/article/details/87117444