Preface
Why do you want to interview Bytedance?
In the past two years, the organizational structure of Chinese Internet companies has been upgraded. Well-known Internet companies such as Alibaba, Tencent, Xiaomi, and Kuaishou have all adjusted accordingly. On March 12, 2020, on the occasion of the eighth anniversary of Bytedance, it announced a comprehensive upgrade of the organization, and this news has completely aroused my expectations for Bytedance.
In fact, I can be regarded as a veritable fan of Bytedance. The most popular apps in my mobile phone are under the banner of BYTE, including Toutiao, Douyin, Watermelon Video, and Understand Chedi. And Bytedance is also one of my most promising Internet companies, so I first threw my "olive branch" to Bytedance.
Note: [Interview Bible, Mind Map, Study Notes, Interview Question Bank] provided in the following content of the article, just click the portal ! !
ByteDance Interview Experience (have got a level 1-2 offer)
Byte beating side:
- Self introduction
- Introducing the first project
The purpose of the project, the overall structure of the project, and a brief introduction to the modules
Realization of functional permissions
- Algorithmic questions:
Given two arrays, find the intersection of the two arrays, and print it as many times as you want
For example: [1,2,2,3,5,7] and [1,1,2,2,2,2,3,3,5,7,8], the result is [1,2,2,3, 5,7]
- JVM memory structure?
- OOM scene? Some differences between heap and stack?
- The expansion mechanism of HashMap? Storage method? How to deal with the same code after hash?
- What is the thread pool? how to use? what is the benefit? The core parameters of the thread pool?
- The index structure of the database? The structure of the B+ tree? What is the difference with B-tree?
- Did you know about Redis? Redis data structure? What is cache breakdown? How to deal with it?
- Transaction isolation mechanism? What do the four transaction isolation levels mean and what are the differences? How is AOP used in the transaction isolation mechanism?
- What information can be viewed with the top command of Linux? What does load in top refer to? Which network-related commands have been used? Which one is used to check the port number?
- Optimistic lock and pessimistic lock? How to implement an optimistic lock in the database? The realization form of optimistic locking in the database?
- The sliding window mechanism of TCP?
- Jenkins automated deployment process?
- Do you have any questions?
Two sides of byte beating:
- Self introduction
- The requirement background of the project, as well as the structure of the project, the implementation details of the project
- The third normal form of the database
- Have you ever done a pressure test on the modules you developed? If you were asked to do a stress test, how would you do it?
- If the data size increases by several orders of magnitude, what optimization can be made?
The use of joint index to reduce the number of back to the table
Redis cache
- How to design the cache
- Commonly used data structure in redis? Cache breakdown and cache penetration
- Have you ever used the open source DevOps platform, the CICD platform?
- Algorithm problem: taking sugar problem
Given an array {1,3,5,7,8,10}, the number in each position represents how many sugars are in each position
Can’t take adjacent candies, how can we take the most sugar in the end?
- The function of the volatile keyword
- Linux buffer memory and cache memory
- Virtual memory, resident memory, shared memory
- Which layer does the router and switch work on?
- The difference between ConnectTimeOut ReadTimeout exception? What causes Unknown host?
- The browser enters www.xxx.com to finally display the webpage, the whole process
- Observer mode
- Talk about zookeeper and ES
- Any thoughts on the direction of development
- What do you want to ask?
Byte beating on three sides:
- Ask about graduation time, ask about GPA and graduate research direction
- The specific details of the project, introduce the modules in charge, and the specific structure of the project?
- What is DevOps? What are the usage scenarios for DevOps?
- What is a microservice? The granularity of microservices? How to divide?
- Ask for details of the project
- Facing millions of data, how do you need to optimize your modules?
- The technology used during development? Do you have an in-depth understanding?
- Talk about the GC algorithm? What are the differences between G1 and CMS?
- Do you have any questions?
Byte Beat HR:
- Self-introduction, evaluation of company interview, internship time
- Why switch to a major?
- What do you think you have? What are the disadvantages? What are your hobbies?
- What kind of role do you use to play in the team?
- What are the more difficult things you have encountered? What do you think you are lucky?
- For future plans? Have you used other products of the company? Do you have any thoughts on getting a positive?
- What else do you want to ask?
Answers to ByteDance Interview Questions:
Able to win the Bytedance offer, thanks to this "interview truth"
1.1 Java interview truth
This interview script is actually a compilation of the core knowledge points of Java interviews. There are many knowledge points included in the document, and it is very complete. The analysis and explanation of each knowledge point is also very clear. After reading it, you can basically figure it out. Nowadays, what questions will be asked in the interview and how to answer these questions will be very helpful to the interview. (Private message "grow" to receive)
- Java basic part (basic collection class source code, concurrent programming, realization of lock, JVM principle, etc.)
- Data Structures and Algorithms
- MySQL database (index structure, optimization, transaction, statement execution, etc.)
- computer network
- operating system
- Expansion part (open source framework source code, cloud native components, etc.)
1.2 Study notes
In fact, when I review Java, I also rely on some great study notes, which I personally think are very well organized, including SpringBoot, Redis, Tomcat, MySQL tuning, etc.
- Spring Boot technical summary notes
- Redis technology study notes
- MySQL performance tuning and architecture design
1.3 Mind and Brain Map (Xmind)
In order to allow myself to study more systematically, I also specially organized some mind-brain maps. The mind-brain map is actually a knowledge framework, which can be used to check and fill vacancies based on these maps. Sorted out a lot of mind and brain maps, including Spring Family Bucket, High Concurrency Multithreading, JVM, Redis, and Dokcer, etc.
- Mind map at a glance
- Take Spring Booot as an example?
1.4 Algorithm brushing (LeetCode+ fun of algorithm)
As we all know, ByteDance is a company that likes to ask algorithm-related interview questions, so when you go to ByteDance, it is indispensable to be asked about the content of the algorithm. As an interviewer, it is quite necessary to prepare in advance. After all, it is not good. Prepare algorithmic questions. It is easy to hang up. Regarding the algorithm, there is no shortcut. The best way is to write more questions.
- Algorithm Brush Questions LeetCode
- The fun of algorithms
1.5 Private Question Bank
Finally, I will share a wave of my Java question bank~ If I don’t brush the questions in the interview, I will be anxious in the coming year. These question banks are the frequently asked questions of the first-line Internet companies such as BAT, which I have collected. convenient. If you need the question bank, click the portal directly ! !
to sum up
As a developer, I know that the environment changes very quickly. I also know that talents in the industry are emerging in large numbers and the competition is very high. Therefore, I don’t add knowledge in time, don’t understand the latest technology, and continue to enrich myself. It is difficult to keep up with the development of the times, and professional careers are also prone to bottlenecks. Therefore, a qualified programmer must keep in mind the principle of "learning is endless".
All the information I have compiled above can be shared with fellow programmers who have brains and plans, just click the portal if needed! !