Gossip written at the beginning

The year 2021 has come and gone, and for many, it may be one of the most memorable years of the decade. In the past year, “endure” was my key word at this stage, and I had to give up too many times. Fortunately, I “endure” it. In the New Year of 2021, I also have a very good start, and I have harvested the desired offer.

To put it simply, just like the title, I also want to go to Versailles today, the original factory interview is not as difficult as imagined, bytedance 3 + Tencent 6, so once and for all, let’s talk about my factory interview, I hope to be able to provide some experience to the friends who want to interview.

PART1: Bytedance 3 round interview scene

— Bytedance

The first stage was relatively simple, so I kept a stable attitude in the whole process without too much tension. This round was mainly to investigate the basics and then ask some questions related to the project.

① Basic knowledge of TCP

  • Question 1: Please describe the process of three-way handshake and four-way wave in detail (be familiar with the mechanism of three-way handshake and four-way wave, and draw a state diagram)
  • Question 2: What is the purpose of the TIME_WAIT state in the four waves? (You are asked to draw a diagram of the state of four waves, followed by a follow-up question asking why four waves are four and not two?)
  • Question 3: What mechanism does TCP use to ensure reliability? This is a simple question, but it needs to be answered in a comprehensive way. It needs to answer from four aspects, including ACK confirmation mechanism, timeout retransmission, sliding window and flow control, and even detailed flow control mechanism.

② Basic knowledge of language

  • Bytedance is mainly about Go, so even though you’re in a back-end position, you’ll be asked how much you know about Go, and how much you know about other languages.
  • Java Syntax Basics

(3) Network programming

  • Question 1: What are network IO models? Five network I/O models, blocking, non-blocking, I/O multiplexing, signal-driven IO, and asynchronous I/O. From data to I/O devices to kernel-mode, kernel-mode to process user mode.
  • What is the difference between SELECT /poll/epoll in I/O multiplexing? Epoll (select) : Epoll (select) : Epoll (select) : Epoll (select) : Epoll (select) We’ll also talk about the difference between horizontal and edge triggers in epoll.)

(4) HTTP related basics

  • Question 1: What happens when a client accesses a URL to a server? (From the seven-layer network model, HTTP->TCP->IP-> link to explain the packet generation and transmission process)
  • HTTPS is based on SSL. HTTP is based on SSL. HTTP is based on SSL.
  • Problem 3: Format of HTTP request packets and response packets (The components of request packets and response packets must be clear, and specific cases must be written.)
  • Q4: What are the HTTP status codes? (Give examples of common codes from 2xx, 3XX,4xx and 5XX respectively. The interviewer will ask the difference between 301 and 302, and which scenarios are 500/503/504.)

⑤ Basic knowledge of cache and database

  • Question 1: Describe what data structures redis has? There are five basic data structures and four advanced data structures. The interviewer also asked the principle of BloomFilter and Zset implementation principle, mainly explained skip lists.
  • Question 2: MySQL scenario questions (the interviewer provides a scenario, requires to write query SQL, examine the joint statement, how to pagination and complex statement optimization.)

⑥ Bare write algorithm

  • A non-recursive sequential traversal of a tree.

— Bytedance side 2:

① Project experience

The questions in the second interview are basically based on personal project experience, and a series of questions are raised according to the project. Process with other firms has no much difference, at ordinary times interview the interviewer will ask you first introduce yourself company project, in the process of introduction according to what you said some detail questions, generally leads to the difficulty of the project and architectural aspects, such as the difficulty in have encountered in the project to you speak, and solutions, go ask is to have a better solution.

  • Distributed project, examination points: distributed transaction, distributed consistency;
  • API service, examination points :(1) load balancing, CDN, DNS and other problems; (2) HTTP related issues, such as describing the differences between HTTP versions;

② Bare write algorithm

  • Back row matrix traversal

— Bytedance third side:

① Project experience

  • It is also a survey of project experience, but different from the second survey, the third survey pays more attention to the aspect of system design. The general situation is that you are asked to describe the different project experience from the second interview, ask specific details to ask your project plan, shortcomings, improvement, etc.
  • Modularization requirements: if the current system wants to do microservice architecture, how to carry out service separation? What are the rules for splitting?
  • Review of knowledge related to micro-service micro-service architecture: Service governance (traffic limiting, degradation, circuit breaker)

② Bare write algorithm

  • The most recent common ancestor of multiple nodes in a binary tree

PART2: Tencent

— Tencent:

① Ask questions about micro-services:

  • Microservices Architecture
  • Implementation of the framework
  • Service governance
  • Distributed consistency

② Log monitoring system:

  • Investigate the architecture and ELK related knowledge, focusing on describing some architecture principles of ELK, such as the principle of inverted index, etc.

③ Message queue:

  • Can messages be consumed by multiple consumers in Kafka?
  • The election mechanism
  • HW mechanism

④ The database is related to Redis:

  • Principles of indexing
  • The difference between several transactions
  • The data structure
  • How to implement delay queue
  • Principle of distributed locking

⑤ Other open questions:

  • Open problems, but not much description, such as problems encountered in the project, how to solve? Describe the problems running during production and describe troubleshooting problems.

— Tencent Second Interview (written test) :

To investigate the basic knowledge of technical stack language for specific posts, the topic is not difficult and requires a solid foundation and breadth, but the paper does not need to be described, and the general topic is sorted out in PDF documents.

— Tencent three + four (technical team leader) :

The three and four sides of Tencent are all met by the technical team leader, which is relatively intense at this stage. The interview content is mainly about the idea of problem solving and project experience, and the breadth of the individual’s technical mastery, which involves more architectural design.

  • project
  • Open-ended questions: problem-solving ideas, collaboration between colleagues.
  • Load balancing
  • algorithm
  • How does NgniX do stream limiting?
  • The difference between four-layer LVS and seven-layer Ngnix
  • The design idea of microservice architecture

— Tencent five + six (TECHNICAL director) :

The interviewer of these two sides should be the technical director, and the difficulty of the interview should be the biggest in this process. It mainly examines the two aspects of the interviewer, including system design and architecture design, and requires the interviewer to have a deep understanding and understanding of technical knowledge.

① Questions for system design:

  • How to design seckill system? Divided into access layer, interface layer, message queue layer, logical layer four aspects, access layer can do service governance related things, interface layer do snap switch, blacklist and whitelist, random reject and other processing, logical layer specific snap logic realization, involving redis distributed lock and the consistency of DB and REDis.
  • Several implementations of distributed transactions. After focusing on the differences between these implementations, the interviewer asked me to draw a distributed transaction architecture diagram for message queues based on reliable message services, and then how to ensure message reliability and consistency for upstream and downstream services.

② Ask questions about the micro-service architecture:

  • Principles for service unbundling
  • Principle of RPC framework
  • Raft election principle for Consistency protocol for Configuration Management (ETCD)

(3) other:

  • Service governance
  • Service traffic limiting algorithm
  • Service degradation indicators and recovery indicators
  • Service fusing

④ Open questions:

  • How did you solve the most impressive problem you encountered in the project?
  • During the interview process, what question did the interviewer ask you that impressed you the most and why?
  • Have you met any difficulties in your life?

PART3: How do I prepare for an interview?

① Resume preparation (stepping stone, programmers who can’t wrap resumes will have to outsource)

Programmer’s resume must be more efforts, especially to some words to consider carefully, such as “proficient, familiar with, understand” the difference between these three must be distinguished clearly, otherwise it is to dig a hole for themselves. No packaging, of course. I can send you my resume for your reference. If that’s not enough, here are some resume templates for you to choose from:

② Know the company, do your homework, know what to ask

I have also made the following summary of the pilot projects of first-line Internet giants:

  • Alibaba, Baidu, Tencent

  • Bytedance, Meituan, JD.com

③ Comb the knowledge system and learn to draw inferences

In fact, combing knowledge system is the most simple thing, but a lot of development always confused about the small white, actually from the metal side of the second pilot can summarize comb out what we should learn, to grasp what I normally approach is “giant pilot” + “work” roadmap to comb the learning and development.

After that, we need to carry out targeted learning according to the key points on the road map. In the learning process, we should learn to draw inferences by analogy, learn to write notes and make summaries.

Here are some of my personal notes:

  • Java Development Core Notes

  • Redis study notes

  • SpringBoot Core Technology Notes

④ Brush the interview questions

I don’t want to say too much about the importance of brushing. For fresh graduates or people not long working life, brush the interview questions on the one hand, able to quickly as much as possible their understanding of the point of technology, on the other hand, during an interview with a certain probability was asked the same or similar problem, more or less also can add some confidence for his interview, visible appropriate brush is necessary.

Write the summary at the end

Finally, I want to say that the 2021 golden Three silver Four blink is also coming, for many people is a good opportunity to job-hop, big factory interview is far less difficult than we think, set a good attitude, be prepared, you can also.

In addition, if you don’t know the questions in the interview, you can try to talk about your ideas, because some questions are not to test our programming ability, but our logical thinking and expression ability. Finally, I should carry out self-analysis and evaluation, do a good job in career planning, and constantly explore to improve my programming ability and abstract thinking ability.

All the notes, interview questions and other information mentioned in the above article can be shared with everyone for free, just you: [forward] + [comment] article, and then click here to get free screenshots.