I wrote this story with tears: reject the headline, give up Huawei, and finally get an offer with 6-sided byte beating! The annual salary is 70w+!

Preface

Let me talk about my situation first. In August, I was notified by the instructor that I did not have the qualifications for excellent research. I began to prepare to pass the 819 exam. In September, Huawei’s large-scale autumn recruitment was received. I got the platinum code and chose to abandon the postgraduate entrance examination to prepare for the byte interview. I prepared for the interview on 10.13. After three rounds, I received the offer call on 10.19. The autumn recruitment ended. During this period, I got the offer of 360 and keep, but I refused. Because my goal is clear! ByteDance, don’t give up if you don’t have an interview. In fact, Tencent and headlines are paid well, but they are young and frivolous. As a result, they face 9 faces before getting the ByteDance offer!
I wrote this story with tears: reject the headline, give up Huawei, and finally get an offer with 6-sided byte beating!  The annual salary is 70w+!
I wrote this story with tears: reject the headline, give up Huawei, and finally get an offer with 6-sided byte beating!  The annual salary is 70w+!

This article will talk about my 9-sided byte beating interview experience!

My ByteDance difficult interview journey

One side (~45min)

1. Introduce the project , talk about the work content and thoughts of the internship (~10min)

2. What is a memory leak, what are the memory leak scenarios in Android, and what are the reasons?

3. What are the JVM GC process and GC algorithm ?

4. The concept of process and thread, how to realize multithreading in Android? (Thread Handler AsyncTask IntentService, etc.)

5. The principle and use of Handler

6. How is Handler bound to thread (Looper) and why Looper.loop() is designed as an endless loop

7. What is the difference between several internal classes of Java

8. Activity life cycle and startup mode

9. Writing the title: the right view of the binary tree (the level sequence traversal is enough)

One side is relatively short and the questions asked are relatively basic. After about 30 minutes, the two sides will start

Two sides (~1h30min)

1. Introduction

2. Introduce the project , why should I learn Android by myself (~5min)

3. How does Android realize multi-process and what is the application scenario (bad answer)

4. Do you understand the IPC mechanism (Binder) of Android (the answer is not good)

5. How to implement stack (FILO) with two queues (FIFO)

6. The difference between HashMap and HashTable, the principle and implementation of HashMap, the algorithm of hash()

7. If you design your own hash calculation, how to design and why (the prime number of the answer is the remainder)

8. String hashCode() and Object hashCode()

7. The concept and relationship of virtual memory and physical memory, the scheduling algorithm of memory paging

8. How to implement LRU cache (refer to leetcode T146)

9. Can I write a java.lang.Object class by myself and which one will be loaded by the system?

10. Implementation of Generics in Java

11. Do you know common sorting algorithms , write quick sort by hand

12. The method of locking in Java, the principle of the synchornized keyword, what are the implementations of pessimistic locking and optimistic locking

13. Deadlock conditions and solutions, talk about bankers' algorithm

14. TCP's three-way handshake waved four times, why wave four times

15. TCP flow control algorithm (sliding window), congestion control algorithm

16. How to solve the multi-instance problem caused by users frequently clicking to open a new Activity (Activity startup mode)

17. How to judge whether two acyclic singly linked lists intersect

18. Write title: leetcode 445

19. Rhetorical question

The volume of second-sided questions is very large, focusing on Java/OS/ algorithms , but there are no particularly difficult questions to answer. If you prepare carefully, most of them can be answered. The interviewer was also very friendly and gave a lot of guidance and tips.

Because of the timing of the three-sided interviewer, the three sides of the appointment two days later

Three sides (~45min)

1. Introduction

2. Tell me about the work done by the internship. Did you do it yourself? What difficulties did you encounter? What were the results?

3. How does RecyclerView implement item caching? What is the difference with ListView ( I was asked because the item is used)

4. Write the title: leetcode 1233

5. Design question: WeChat contact list function

(1) Design an API for adding contacts (answer in terms of possible ways, data forms, and interface parameters)

(2) How to implement the UI of the contact list (RecyclerView for answers)

(3) How to realize the quick positioning function of AZ initials

6. Is it a self-taught Android? Why did you choose this direction? Do you have any experience for students who want to teach themselves?

7. Where are you from and why you want to work in Shanghai

8. Rhetorical question

There are not many three-sided questions, but because most questions do not have standard answers, the difficulty is actually higher than one or two

Four sides (1 hour 14 minutes)

I mainly asked about java and virtual machines, and I asked a little about android
1. Introduction to the internship project and answers to questions
2. The difference between reflection and proxy, dynamic proxy, static proxy, the difference between the two, and the UML diagram of the proxy mode
3. Words Code-saving technology
4. Parental delegation of virtual machines, and benefits
5. The role of the virtual machine stack, and under what circumstances will be sent to Stack Overflow
6. Who can do GCRoot, why the counting method is not as good as the reachability
7. Why should we divide the new How to distinguish between generations and old generations.
8. GC algorithm will introduce
9. The process of class loading, what is stored in the method area, what type information is included, and how to judge whether two classes are equal.
10. Talk about the put method of HashMap, talk about how to expand, talk about a class as a HashMap, which methods to implement, what is the difference and connection between equals and hashCode
11. Talk about the message mechanism, talk about ThreadLoacal, talk about Handler processing information Is there any way (other than handleMessage), is there a length limit for MessageQueue, and how many Messages in android?
12. A life cycle process of the jump from Activity A to Activity B 13. Activity
A (standard mode) jumps to B (singleton mode), then B jumps to A, and what happens when it returns?
14. The difference between InVisible and Gone, the difference between Gone and ViewStub
15. The first character in the string

Five sides (34 points)

Computer network related
1. The osi seven-layer architecture, what does the physical layer do
2. A series of things that happen after entering the URL
3. What protocol is used in
DNS, and how to do it 4. TCP three-way handshake, and flow control
5. What is in the HTTP message
6. What is the difference between HTTP and HTTPS, and what is the encryption algorithm
7. What are the response codes of HTTP?
8. The difference between get and post
9. Two ordered arrays, find the median

Six sides (50 minutes)

In-depth android aspect and internship experience
1. Internship project related (including some specific implementations, and some key issues)
2. The role of
LayoutManager 3. What is the understanding of the use of RecyclerView, and how to implement a double waterfall
4. How to design an SDK (A lot of detailed questions)
5. Playing cards, the probability of drawing five cards is a flush, and the probability of drawing five cards is a straight
6. RN and Redux's understanding, benefits, and use, and the proportion of android and RN in work
7. The benefits of singleton mode, when should you not use singleton? 8. Do you
understand the internal implementation of SP? How to achieve serialization
9. Do you understand injection?

Bytedance, I interviewed 3 times in total, a total of six sides, and finally got an offer!

In the last interview with ByteDance, one of the three interviewers was my leader. He asked me at the time, what would you like to do if you are given a job that can only be done in one or two weeks. I said, first discuss with you and express your views. If you insist on arranging for me, I will work overtime. . . It can be neat. . . . Until it's done. . . . He chuckled and laughed. . . He asked me this question and I knew he was the leader. And I think this problem may have saved me. To be honest, I am a relatively straightforward Shandong guy. I think it’s okay to work overtime. The leader may also like me more straightforward, so I took advantage of it. I am very grateful to my character for giving myself a chance.

Another question is why we rejected Huawei. In fact, the salary that Huawei offered me was pretty good, except for hr, which made me feel a little despised. The main reason was that the interview was too watery, which made me feel that the level of the people who entered was not very high, and then I didn’t want to go. .... I have always believed that only in a high-level environment can we achieve greater growth. Of course, Huawei is still very strong, and I really hope to jump to Huawei in a few years. . . .

end

There is no shortcut to change your life. You need to walk this path yourself. Only deep thinking, constant reflection and summary, maintaining the enthusiasm for learning, and building your own complete knowledge system step by step are the ultimate ways to win. It is also the mission that programmers should undertake.

The above advanced interview questions and system learning materials can be shared with everyone for free. Friends who need the full version, click here to see all the content .

Guess you like

Origin blog.51cto.com/14971211/2542826