preface

First, I want to talk about my personal situation. I was recruited to Mogujie by the college entrance examination and stayed there for more than two years. Unfortunately, I was one of the staff laid off due to the epidemic in April this year. Fortunately, I had a premonition and made preparations in advance. I had always wanted to go to Bytedance before, and I had been preparing for it years ago. This protracted battle lasted for a long time and finally won in 7 months. As a man, I did shed tears when I stepped into Bytedance and went through the entry procedures. Special share a wave of my real experience, mutual encouragement.

Small tip:

In fact, a company must carry on the job cuts usually will appear some early signs: meet larger business development bottleneck, and difficult to break through the strategic target, frequent adjustment, executives started to leave, and started to strict on attendance, beginning colleagues stop, if your company also began to appear these symptoms now, don’t want to, it is time to start preparing now.

The following contents involve four major links:

  • Step 1: Make a plan and be prepared
  • Link two: implement the plan, prepare for actual combat
  • Step three: make resume, deliver resume
  • Part 4: Bytedance interview experience, real record restoration

In the four links, the content contains a lot of documents, due to the limited space of the article, all organized in the document, including Java learning materials, learning notes, algorithm treasure book, interview questions collection, mind mapping (Xmind), etc., friends who need these materials directly click the document link (shimo.im/docs/jYJ83y…). Download by yourself ~

Step 1: Make a plan and be prepared

1. Comb the knowledge system

Now most of the present situation of the programmers are very special, his knowledge is relatively fragmented, or to a only knows its table the knowledge points, actually this is for their mastery of the technology content without a system, so the first step in planning is to comb their knowledge system as well. In terms of sorting out the knowledge system, the following 2 points should be achieved:

  • Do you understand why, where and how
  • Can you explain these concepts and knowledge in a simple way to another person who doesn’t understand them at all

System knowledge graph

Docker Mind Map (XMID)

Java Concurrency Architecture Diagram (XMIND)

2. Prepare the algorithm

  • How do you learn an algorithm?
  • What are the algorithms a programmer must know?
  • Is Leetcode stable?

As for the algorithm part, there are a lot of details to prepare, so I also put a lot of thought into sorting out a treasure book about algorithms. In addition to Leetcode, THE core algorithm questions that ByteDance likes to ask are also analyzed in depth one by one.

3. Collect interview questions

In addition to the algorithm part, in order to do in the actual interview, some of the interview questions or knowledge points often asked by the factory is also necessary to see. I specially collected and sorted out the interview questions (technical part) of first-tier Internet companies in the past three years, and found that the actual interview questions are similar, but the content and technology of your investigation have different purposes. I have also written the analysis of this part in the answer (see the document for details).

Link two: implement the plan, prepare for actual combat

These need to be prepared step by step, but in addition to the above is certainly far from enough, the interviewer in addition to technology-related questions, must ask is project-related content, then how to prepare the project-related content? In addition to the accumulation of their own combat experience, in fact, we can still read some technical masters write out of combat experience and notes. Such as Redis notes, SpringBoot technology notes and so on.

More practical books download:

Step three: make resume, deliver resume

Resume for programmers is a very important link, a good resume can often help us knock on the front door of a large Internet factory, RESUME part I will not do too much redundant. Check out the Programmer’s Guide to Finding a Job, and I can provide 18 great resume templates.

After downloading, you can make your resume according to the template, and then you can deliver it smoothly! Delivery resume must refer to a good match value, it is best to find an acquaintance to push.

Part 4: Bytedance interview experience, real record restoration

Bytedance side:

In the first interview, I think it should be the basic one, focusing on the breadth of my skills and the mastery of some skills. On the one hand, my brother did not delve deeply into a specific point, and the interview lasted about one hour.

  • To introduce myself
  • How do you plan to post backstage positions without considering the work that fits your research direction?
  • Have you learned about OAuth2.0? Tell me your understanding of OAuth2.0
  • Did you learn about other open source frameworks during mushroom blog development?
  • What is the process of publishing mushroom blog articles? Is it a multi-person blog system?
  • Are you familiar with other blogging frameworks? Such as hexo
  • What’s the difference between Hexo and mushroom blogs? What features and advantages does mushroom blog have?
  • Since your mushroom blog uses RabbitMQ, tell me why RabbitMQ was introduced.
  • What is the difference between RabbitMQ and other message queues such as ActiveMQ, RocketMQ, Kafka?
  • The use of Redis in your blog project. Why did you introduce Redis?
  • Redis stores popular articles. How do you get them? Is there a problem with that?
  • Ever heard of the long tail? You set the recommendation level through the recommendation field, so that these articles will always be viewed high, and the popularity and clicks will not decrease over time. Any solutions?
  • I see you use the JustAuth login authorization? Will there be account leakage problems?
  • Now Redis, does it have thread switching issues?
  • Talk about Redis single-threaded model and IO multiplexing
  • If there is a Value with a size of 2M, is there any problem? What is the maximum Value size supported?
  • What about Redis Cluster and master/slave replication?
  • Talk about the Sentinel in Redis, or Redis Sentinel
  • Let’s talk about Linux. Do you know how Linux checks current load?
  • Do you know any other Linux commands?
  • What are the differences between cat, tail, vi and vim commands?
  • What do you do if you need to open or view large files on Linux?
  • Let’s talk about Http Code. Do you know what a 3XX status Code is?
  • What other status codes do you know, 4XX and 5XX?
  • Algorithm:

(1) # Given some array, such as the following format, they all represent an interval, then you need to merge the interval

[1, 2], [2, 4], [3, 7], [8] 11

[1,2] and [2,4] = [1,4]

# then [1,4] and [3,7] = [1,7]

[8,11] [1,7] [8,11]

Given an array such as [1,1,2,2,2, 2,3,3,3,3], the array is not necessarily contiguous and ordered. Suppose I type 2, the 2 represents the two occurrences with the highest frequency

So you need to give me 2,3

Bytedance side 2:

  • To introduce myself
  • Is the blog open source, under what open source license, and how many people use it?
  • See you use Solr and ElasticSearch in your blog, talk about how they work, and inverted index?
  • Are you familiar with some Chinese participles used in Solr or ES?
  • What are the stacks that you’re familiar with, mysql and Redis?
  • InnoDB B+Tree
  • Difference between B Tree and B+ Tree
  • What is the development of MySQL index? B+Tree? Never index, hash, binary sort tree, AVL tree, B tree, B+ tree chat.
  • What are transactions in MySQL?
  • What transaction levels are available in MySQL, and what problems can occur at different transaction levels?
  • What’s the difference between repeatable and illusory?
  • In MySQL, if fuzzy matching is performed with like, is an index used? Surely not?
  • Can you tell me about Redis and how it was used in your project?
  • How does Redis implement distributed locking?
  • Do mushroom blogs have cache inconsistencies and how do you resolve them?
  • What is the problem with cache penetration in Redis and how to solve it?
  • Are there other ways to work around cache penetration? Have you learned about bloom filters?
  • A large cache failure occurs in Redis and all requests are sent to the database. What is the solution?
  • If some hot data, such as news between stars, causes a large number of users to flood into the background, but the server has not cached the corresponding data, which may cause the database to break down, how to avoid this situation?
  • What are the components of the JVM?
  • Talk about how garbage collection works? And garbage collection algorithms
  • Copy algorithm and tag collation algorithm?
  • Why not use tag sorting algorithms in the new generation? Or copy algorithms in the old days?
  • Do you know anything about Volatile? Talk about your understanding of Volatile
  • How does Volatile guarantee visibility? And the mechanics of how visibility is implemented.
  • What is the problem with the heavy use of Volatile?
  • Talk about operating system threads and their state
  • What’s the difference between thread and process?
  • Why multithreaded applications and not multiprocess applications?
  • What commands do you use on Linux?
  • If I need to check the port number or process number, what command do you use?
  • How about another project you worked on? Just a little bit about that
  • Go ahead, write a topic

Between two flip # # list given list: 1 – > 2 – > 3 – > 4 – > 5 – > 6 – > 7 # return results: 4 – > 2 – > 1 – > 3 – > 6 – > 5 – > 7

Bytedance third side:

  • To introduce myself
  • Just out of curiosity, not many people use code/cloud, why not Github?
  • How is your English?
  • What about open source projects? I see this project has more than 800 likes. What are you doing on this open source project?
  • Why don’t we find something to talk about? Let’s start with ES and Solr. Do you use both of them?
  • SQL way to achieve search, how do you do it?
  • Is the query very slow when using like matching?
  • Both ES and Solr use LUNce at the bottom. What is your understanding of LUNce?
  • Lunce also uses a word divider, such as the new word “COVID-19”. Does it do a good job?
  • Do you know of a better way to deal with the segmentation of the latest words than artificially maintaining thesaurus?
  • Have you read about any other open source thesaurus?
  • What about dictionary trees?
  • Solr and ES both use Lunce, so what’s the difference between them?
  • What is the difference between Solr’s cluster environment and ES’s distributed environment?
  • You mentioned microservices. Have you heard about the concept of microservices?
  • Your current microservice is also packaged into multiple JAR packages and deployed on a server. If the server has problems, the service will also be unavailable. Is there a good solution?
  • What about service registration and discovery?
  • Registration and discovery of services actually depend on the concept of a registry. Is there a good solution for the failure of the registry and the unavailability of the entire service?
  • Have you seen the whole election process of Zookeeper?
  • What about Zookeeper’s distributed consistency protocol?
  • Let’s talk about indexes. I’ll write you a table and look at the following query.
  • create table ‘tb’ (

    id int,

    name varchar(64),

    status int,

    createtime timestamp,

    PRIMARY KEY (`id`)

    )

    Three normal indexes are created

    create index index_name on table(‘name’)

    create index index_status on table(‘status’)

    create index index_createtime on table(‘createtime’)

    Given the SQL statement, determine how many indexes will be used in the following query

    select * from tb where status = 1 and name = “zhangsan”

  • How many indexes are used in the above SQL? Which ones are they?
  • Have you seen the underlying index structure of InnoDB?
  • What happens to the results of the two index queries? Intersection, union?
  • What are the solutions if you encounter slow queries in MySQL?
  • Talk about the explain? After executing explain, which fields appear to help us?
  • I see there are several articles about Redis in your blog. Can we talk about your understanding of Redis?
  • Why is Redis able to maintain such high concurrent responses?
  • Have you learned IO multiplexing technology is what kind of principle
  • With one thread, connecting multiple threads at the same time won’t there be multiple thread switches? (I feel like I’m in a hole.)
  • When you connect to Redis through Jedis, you are already connected to one process. can Redis communicate with other processes?
  • Redis can process a hundred thousand requests per second, so if you follow what you said above, that means it can only handle each interaction in a hundred thousand seconds?
  • Have you read the Redis source code?
  • MySQL uses B+Tree, Redis uses skip list inside SortSet, what’s the difference between them? Why doesn’t MySQL use skip lists, or Redis use B+Tree?
  • How do you feel about your coding skills? So let’s talk about operating systems and then give you a problem. In an operating system, there are caches, main memory, virtual memory, and external memory. How do they relate to each other and what do they do?
  • For them, there’s definitely a problem that when our main memory is full, or virtual memory is full, there needs to be a page feed operation. Do you know what the page feed algorithm is?
  • Let’s talk about LRU? Tell you to write an LRU algorithm and tell me what you think?
  • It’s O(N) time in linked lists, is there any way to make it O(1) time?
  • OK, the idea is OK, why don’t you write an LRU algorithm by hand? (Two-way list + Hash?)
  • Bytedance interview question answer:

    Detailed answers and explanations of the technical questions in the above three rounds of interviews are arranged in the document, which will not be shared in the article due to too much analytical text.

    conclusion

    The success of joining Bytedance this time can be said to be a combination of luck and strength, but I have always held the concept that good luck is always reserved for those who are prepared.

    Therefore, as a technician, I have an obsession with big factory, so I should put it into practice and believe that my efforts will be rewarded. Here, I also wish you all a smooth interview in the next golden nine silver ten li, pass through, win the offer.

    All documents mentioned in the above articles are free to share by clicking on the document link (shimo.im/docs/jYJ83y…). Download by yourself ~