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:
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”
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 ~