A few days ago, meituan and Baidu received a letter of intent, it is an end to their autumn recruitment. To sum up this fall trick. First of all, I would like to thank Niuke. All the offers were obtained through internal promotion of posts on Niuke, and I have read a lot of interviews and checked a lot of questions on this platform. I have rejected Tencent and Haofuture.com, and I am left to choose baidu and Meituan.

PS: the main building is C++ background

Alibaba, ant financial (2 face kneel) alibaba kneel first is really because of their ability is insufficient, next because of their own death cast JAVA post (I will mainly C++).

  1. One side: 1. Internship experience 2. Dikstra algorithm 3. Consistency hashing 6. Ring detection of graphs (deep search)

    7. Symmetric and asymmetric encryption

    8. There are some things that I don’t remember for a long time

  2. Two sides: 1. Write heap sort 2. Binary tree traversal (with recursion and non-recursion) 3.TCP three-way handshake, four-way wave 4. How to optimize your project

The results of GG

Baidu Operation and Maintenance Department (kneeling on three sides)

  1. 1.TCP three-way handshake, and why not two or four times 2.TCP four-way handshake, why time_wait, and how to avoid 3. Proc File system (meminfo,cpuinfo) 6.Linux command check file size 7. Bloom filtering algorithm 8. Project, how to improve

  2. 2. Asked a heap sort, and then heap function

    3.Topk

    4. Change the first number of a random sequence containing only 1 to n to -1, and find which number is changed to -1

    I asked the interviewer whether I went in to do operations or development, and was educated by him, but he said I still passed

  3. How do you communicate with baidu.com? Can you come for internship? I don’t remember the rest. He was abused

Result GG, wake up by oneself dish…

Good future (reject offer)

  1. 1. Binary tree height (recursive, non-recursive) 2. An array has only one number that is not repeated, find that number. 3. An array has two numbers that do not duplicate each other. A coin has two people, A and B. A throws first, heads A wins, tails B continues to throw, B wins if B throws to heads, otherwise A continues to throw. This rule continues to calculate the probability of A winning (the geometric sequence formula forgot *_*). How to learn

  2. How to optimize fast platoon, fast platoon and heap platoon advantages and disadvantages 2. Design a class,… 3. Static function 4. Talk about the project 5

The results offer

Meituan Catering (Offer)

  1. One side 1.meituan.com Communication process 2.TCP three-way handshake, four-way wave, state 3. Virtual memory mechanism 4. How to handle page missing in operating system 5. What is ELF header file 6. Write quick row, dichotomy, singleton

    7. Volatile, memory barriers

    8. Differences between Java and C++ (from templates, compilation, linking, memory, libraries)

  2. 1. Given an array of strings and a string S, find all string S in the string array according to the rule: S can be changed to S by deleting, adding, or replacing a character. 2. The operating system memory management mechanism, the advantages and disadvantages of section and page memory management (by the way, the next section of page memory management) 3. Do you know sendfile? What is NIO? 4.RPC implementation (poor answer) 5. Describe a C file compilation link process 6. Talk about internship, talk about their own projects come up this interviewer said that the algorithm in front is too simple, to a slightly difficult first question, (also not difficult it *_*…

  3. 3. How to ensure the reliability of TCP and UDP, time_wait, what are the disadvantages of TCP 4

    5. What is caching, why is it needed, and what are the scenarios

    6. What have you seen recently? Talk about the core of GFS and Mapreduc

  4. Four caps for one bottle of wine, 150 bottles of wine, what is the minimum he should buy himself?

  5. 8. We talked about our lives

The results offer

Tencent SNG QQ Music (rejected offer)

  1. A vector differs from a list. 2. What are traits? Iterator failures 4. How unorderD_map is implemented 5. Two specializations of templates, traits 6. To talk about yacc and lex, recursive drop 7. TCP/IP… Deep copy shallow copy, rvalue reference, smart pointer, reference counting, circular reference

  2. 1. Merge two sorted arrays into one sorted array

    2. TCP or UDP for the game (pesticide)

    3. Differences between Epoll and Select and advantages of Epoll. Why Epoll performs better than Select in ET mode and LT mode

    4. Non-blocking read in Epoll ET, why can’t it be blocking

    5. Send three 80-byte packets, which are received several times in TCP and UDP.

    6. Internships, projects

  3. On three sides

    1. How to tell if a number is a power of 2

    2. The fast row

    3. I still don’t remember some of the answers

    4. Talk about ideals

Baidu Cloud Computing Business Division (Offer)

  1. One side

    1. Give a preordered sequence, reconstruct a complete binary tree, if it is a general binary tree can be reconstructed, why (QQ write code _)

    2. There are three message queue, random three queue to insert elements (probability may be different), how to guarantee the efficient of insert and search (there are two ideas, one is to add a controller, a queue notice usage, controlled by the controller insert and search, the other is a calculation block number, then according to the number of block according to the proportional control the queue insert frequency, and find the frequency)

    3. Longest common subsequence

    4. Copy of vector. Swap swaps Pointers

    5. Differences between threads and processes, advantages and disadvantages, process memory model

    6. What is IPC? Principle of shared memory

    7. Describe the LRU cache idea

    8. Racing problem, 36 horses, 6 tracks, find the minimum number of races for the fastest 6 horses, if n horses, m tracks

  2. Second interview

    1. Virtual function implementation mechanism

    2. Factors affecting memory model (memory alignment, memory model under multiple inheritance, diamond problem, virtual inheritance memory model, how virtual inheritance is handled)

    3.NRVO optimization, rvalue reference

    4. Extern C function, why is it necessary

    5.C++ overload, name manging mechanism

    6. The differences between Epoll and Select and the advantages of Epoll. Why Epoll performs better than Select in ET mode and LT mode

    7.. How to use epoll to implement high concurrency, multi-threading, thread pool, thread stampede problem

    8. Binary tree sequential traversal, recursive, non-recursive, how to use O (1) space implementation (Morris traversal) 9. Mutex implementation principle (shielding interrupt, CAS), read and write lock implementation

  3. On three sides

    1. Internships, projects

    2.TCP congestion control, sliding window protocol, confused window

    3. Virtual memory mechanism, secondary page table, TLB fast table, missing page, swap

    4. Operating system scheduling algorithm

    5.TCP how to ensure reliability, four kinds of timer,time_wait how to solve, Nagle algorithm

    6. Consistency algorithm (RAFT), consistency hashing

    7. Advantages and disadvantages, whether you are willing to intern

The results offer

conclusion

As a school is not good, non-class students, compared to the big god is still a little bit (** such as kernel and TDF boss @Celo Altman). After I got the offer of Chengdu Meituan and Baidu, I didn’t participate in other school recruitment, nor did I do other written exams (**). The above is all my interview. Here is my learning experience, and share some learning resources, if you need them, you can help yourself

Extern C, virtual functions, and IPC are common questions that can be answered in depth. The interviewer asks these questions to understand the depth of learning, which is related to the usual accumulation. Prepare some questions in advance, do not play temporarily, such as: self-introduction, offer intention, advantages and disadvantages of questions, personal projects and internship experience must be reviewed in advance, repeatedly to drill, see what can be improved. Algorithm questions to practice (leetcode, sword refers to offer), especially sword refers to offer. Face can look more, after all, a lot of problems in advance preparation is very beneficial, but also can check the gaps, there is a point, can go push as far as possible push, can save a lot of energy.

Share some learning materials

This is the c + + tutorial video Hou Jie, very, very good teaching video covers memory management, STL (from the source code level analysis), c + + 11 these content, the interview about memory management, the content of the STL, learned in the video can be said to be the second kill these problems, here I cheat the praise, for everyone to enjoy a face, a praise, rise up experience (* _ *)

Link: pan.baidu.com/s/1qXQynz2 Password: fus4

There are also some books that I recommend, which are actually common books that you need to read:

C + + :

C++primer. I don’t need to say that.

STL source Code Anatomy template, traits, data structure. This is quite a big bonus for my interview. After watching it for several times, I copied a small STL

Virtual Table, Multiple Inheritance, Virtual Inheritance, NRVO…

Learn some C++ skills in Effective C++

Still some more miscellaneous is not recommended

Algorithm and data structure:

I’m reading Algorithms, Redbook, and doing LABS on Coursera MOOC (Algorithms I,II)

“Introduction to Algorithms”, did not finish reading, check omissions to fill gaps, supplement the above book did not mention dynamic programming, B tree knowledge

The e rest is to brush leetcode OJ, the building master brush not much on the first 150 channels fixed, I heard that a big guy sophomore brush more than 300 channels, ashamed.

Network:

First look at the top-down Approach to Computer Networking, then look at the TCP/IP details

Operating system:

Must recommend a god book “in-depth understanding of computer system”, internal power method is good, the interview blowing force necessary

And then modern Operating Systems, looking at processes, threads, memory management, file systems

The book of practice recommended “operating system true image restore”, to achieve a small kernel, very fun, remember @siro · Altman big guy also recommended. Review the chapter on CSAPP assembly before you look at it.

Linux

The bible books of Stevens, don’t say much…

Design patterns

Easy to understand “Head First design Pattern”, after reading the design pattern, BUT I think this thing should be implemented in engineering, otherwise it is empty talk…

The other is the compilation principle of what, interested can see… “Programming Language Implementation Patterns” is a very interesting book. It teaches you how to write Parser. Then there is “Compilation Principles and Practice”, explaining the basic principles of LR, recursive descent, DFA,NFA, the principles of the program compilation process are covered, but not in depth… Further deep point is the famous dragon book “compilation principle”, this in the first two books on the basis of no pressure. Parser, Lexer is interesting after reading these writing points. Have interest to play code generation, optimization and so on, the main building talent shallow play not move, just look at the principle of the compiler back end…

About distributed learning we can also recommend to me about the method, or some simple and naive, has been learning theory, lack of practice, ready to learn Redis(*_*), and then watch the source code


2017.09.18 update

About resume:

The resume should focus on the key points, personal information, internships, projects (two or three), and then introduce skills. This is how I format it. One page is usually enough for a resume. Typora is a great tool for writing your resume in Markdown. It can be converted to PDF format and has different Markdown styles. LaTeX is best, of course.

I also recommend Geeksforgeeks, an Indian website, which has many examples of algorithms and data structures in English but quite understandable, as well as many foreign interviews.