The ByteDance interviewer almost KO'd me with one trick. He had a total of 3 rounds of interviews (5 years of experience), and it was difficult to win a 2-2 rank offer!

foreword

I started to do Android development after graduating from university. It has been five years now, and now I am doing Android development in Jinan, my hometown in Shandong. In the past three years, I have only devoted myself to Android development, and I don't have much contact with other languages. I know a little about JS and the like. Now I feel that Android is not as easy to do as it used to be. It may be because I am getting older and there are more things to consider.

I don't know what to do in the future. I always feel that being an Android or a programmer is always in a kind of instability. In some small and medium-sized companies, I may leave for various reasons after working for one or two years. We're getting married soon, and it's time to buy a house. Housing prices in Jinan have been rising, but my income is still so tepid, coupled with this unstable job, people are really not optimistic about the future.

In addition, this year's general environment is very bad, and the layoffs of Internet companies are more serious than in previous years. However, this year is just the deadline for my first "five-year plan". However, I have to say that this byte interview was really difficult for me. It can be said that I fought with the interviewer for 3 rounds, but fortunately I gave the offer in the end.

**My personal situation is 5 years of Android development experience, and the ByteDance rating is 2-2 (annual salary is about 50-100w, including overtime pay and stock discounts, excluding car and restaurant subsidies). I got an annual salary of 60w+, 13 salary. **The following is my interview experience, sharing with my learning experience, hoping to bring some different inspiration and help.

I fought 3 rounds with ByteDance interviewer and won!

my learning experience

1-4 years of college

  • Java

No matter what level of Android practitioners, Java is the basic language for Android development. Whether it is a job or an interview, Java is a compulsory question. If you don’t know Java, your salary will be very disadvantageous (Meituan pays special attention to Java foundation)

It introduces in detail Java generics, annotations, concurrent programming, data transmission and serialization, high-efficiency IO, container collection, reflection and class loading, and key knowledge points of JVM, memory model, JVM runtime memory, garbage collection and algorithm, four reference types in Java, GC generational collection algorithm VS partition collection algorithm, GC garbage collector, JAVA IO/NIO, and JVM class loading mechanism.

img

  • foundation building essential

What are the contents of the foundation of Android architects: 1. In - depth
Java generics .






img

Organize study notes

insert image description here

Work on your own for 1-3 years, plan for 3-5 years

I think three years is the first threshold for programmers. At this stage, a group of people who are not suitable for writing code will be eliminated . At this stage, we step out of the campus, enter the society, become a programmer, and officially move from the content in the book to the real enterprise-level development. We know how to work as a team, how to use project management tools, how to control project versions, how to test and run the code we write, and so on. We have accumulated a certain amount of development experience and have a certain in-depth understanding of the code. This is a relatively pure Coder stage.

What kind of knowledge do you need to work for 1-3 years?

◆ AIDL: Familiar with AIDL, understand its working principle, understand the difference between transact and onTransact;
◆ Binder: understand the working principle of Binder from the Java layer, and understand the use of Parcel objects; ◆ Multi-process: master the operating
mechanism of multi-process, understand Messenger, Socket, etc.; The working principle of attribute animation; ◆ Understand performance optimization, familiar with tools such as mat
Understand some common design patterns



At this stage, you must master the "Android core advanced technology" in the figure; you must also read more Android source code, read official documents, and try to write technical articles, which require a certain level of technical depth and self-thinking. During the learning process at this stage, there are two points that bother everyone, one is reading the source code, and the other is customizing View and sliding conflicts.

How to read the source code? When reading the source code, don't dig into the details of the code, pay attention to the flow of the code and try to dig out useful conclusions for application layer development. In addition, carefully read the comments on a class or method in the source code. When you do not understand the source code, the comments in the source code can help you better understand the working principle of the source code. Although this process is difficult, there is no other way. However, the gains from this process are irreplaceable by other learning methods.

PS: I also sorted out a source code note here, which needs to be picked up at the card below.

insert image description here

Work 3-5 years plan

Five years is the second threshold for distinguishing programmers. In the past three years, in addition to completing work, some people basically do not study other things in their spare time. They are keen to study various technical implementation details, read many good books, write some blogs, and share technologies on Github.
After five years, these people must have the ability to be technically independent and know their future development direction. They will gradually become system analysts or architects from a Coder and become an indispensable figure in the project team.

◆ Continue to deepen the understanding of the content defined in "Slightly Deeper Knowledge Points"

◆ Understand the core mechanism of the system:

Understand the startup process of SystemServer

Understand the message loop model of the main thread

Understand how AMS and PMS work

Can answer the question "How many windows exist in an application?"

Understand the general workflow of the four components

◆ Details of basic knowledge points:

The startup mode of Activity and the performance of different Activities under abnormal conditions

Association of Service's onBind and onReBind

The difference between onServiceDisconnected(ComponentName className) and binderDied()

Performance details of AsyncTask on different versions

Thread pool details and parameter configuration

◆ Familiar with design patterns (commonly used design patterns) architecture awareness.

Work 3-5 years plan

Bytedance interview experience

first round:

  • Starter: self-introduction
  • Introduce the projects on your resume
  • The use of the thread pool, how the thread pool is implemented, and the principle of the thread pool
  • The role of Thread's join function
  • What are the methods of communication between java threads
  • Android handler mechanism, source code
  • Why can the juc atomicInteger class maintain thread safety, and why ordinary variables cannot guarantee thread safety?
  • Java memory model (I asked if I have read the official documentation of JSR 133? No, I am ashamed, I feel that the way to learn is a bit wild)
  • java memory partition
  • The principle of concurrentHashMap
  • Within 100, within 100,000, 100,000 to infinite numbers, sorting in three cases, selection sorting algorithm
  • What do you want to ask me? (Ask some technical related questions)

second round:

  • Are you willing to come to Hangzhou?
  • Self introduction
  • Java's gc (gc working principle, gc recycling mechanism, gc memory allocation)
  • The difference between http and https
  • http message structure
  • What is in the header of the http message
  • What is your best project
  • Handwritten code: jumping steps problem
  • Do you have any questions for me?

Third round:

  • What is your impression of the Byte interviewer? what did you learn from the interviewer

  • What does your daily living schedule look like?

  • Why did you choose to come to Ali?

  • Which open source frameworks are used by Byte? Talk about weex?

  • What is your future technical plan?

  • Which is your most accomplished project?

  • Why choose android development?

  • Why choose nodejs development as the second technical route?

  • Do you have anything to ask me? (Ask about the interviewer's induction training)

If you have passed five levels and successfully passed all the technical aspects, then congratulations, you are one step closer to getting promoted and raising salary, becoming CEO, marrying Bai Fumei, and reaching the pinnacle of life. But it's not yet time to talk about salary, there is one last test: HR interview. Basically all big companies have this round of interviews. Don’t underestimate the HR interviews. The HR of many companies has a veto power over the interviewers—even if the previous interviews have a high evaluation of you.

Therefore, this round of interviews must also be taken seriously. The main questions in the HR interview are:

  • Reasons for leaving your job based on your past work experience in your resume
  • Current company salary
  • What kind of company do you expect to be in?
  • personal future direction

I specifically mention point 2. Some people may be more repulsive and don’t want to talk about this, but I’m personally open-minded, so I’ll say it when I ask. Of course, some exaggeration is necessary. It’s perfectly fine for the current company’s salary to report an extra thousand yuan (after all, it’s an Internet company that always has some kind of subsidies or something).

Because this has little to do with the salary you can get in the new company. The determining factor of the salary you can get in the new company is the salary situation of the entire company and your position in the company according to your interview situation. There is a fixed salary range. HR asks this mainly because you have a number in mind and see if you are honest - some companies will ask you to provide the bank serial number of the nearest unit when you join the job.

That's all for the HR interview, and it can be summed up in four words: watertight. The attitude of the whole interview process is positive, don't have any pessimistic and negative attitude (especially when it comes to the previous company situation, no matter how much dissatisfaction there is), there will be no problem.

The collection of interview questions organized, if you need it, you can click the card below to view it!

insert image description here

おすすめ

転載: blog.csdn.net/Androiddddd/article/details/131690924