I graduated from an ordinary university in Anhui in 19 years. Because I like Android development, my first job after graduation was Android development with a monthly salary of 6K. Although no one took me, the company gave me the opportunity to study independently.

Later, as MY experience gradually improved, I successfully got the offer of 13K monthly salary when I came to Shanghai. However, due to the sudden stop of my project, I left this company.

When I was looking for a job again, I was very careful. I learned while looking and tried to enter my ideal company. It turned out to be really difficult. Many companies offered similar salaries. When a company decided to pay 18K a month, I said yes.

Entry found the code of the company and the project management is not standard, I don’t want to in such a garbage code up perfect functions, and worry that couldn’t learn anything even likely to bring their own coding habits, I want to resign after they learn to find a job, but if after resignation to don’t want to go to the company, get out of the companies are estimated to have no chance.

When I graduated, I set two goals for myself

1. More than 20K monthly salary within three years;

2. Participate in at least one APP with 10 million users within three years.

Both goals now seem out of reach. I hope I can write good code one day, because I like Android, so I feel very happy to work, but for me to find a company with a great team or enter a big factory is so difficult?


I know that many of us programmers have a big company dream, but we don’t know how to get into a big company and prepare for an interview with a big company.

I’m in my sixth year of Android development, and two years after graduation, I was lucky enough to join the Bytedance family. In byte 4 years, witnessed too many people come and go, deeply impressed by a colleague, job-jumping Ali salary direct double, but also see a lot of people plated “Dachang” gold everywhere hit a wall, after all, still fell in the technology!

I may be a success story myself, going from 1-1 to 2-2 in four years, but the tears are for another day. Here I will talk about how to prepare for the interview according to my own opinions.

Big factory resume screening criteria

The following is my summary of some common screening criteria for large factories, not specific to a company, most of us are estimated to know, just for reference.

1) Current employer. The current working enterprise is the Internet factory basic resume pass, unless there are other particularly big problems.

2) The university (bachelor’s degree is more important) and the major, if it is a well-known university, such as 211, 985, etc., will be extra points, if it is not a bachelor’s degree will be deducted points, if it is not a computer major will be deducted points.

3) Expected salary: This may not be what many people think, but it is an important criterion to consider because it directly reflects your current level. The main reference lower limit, if the lower limit is below a certain value will not be considered.

4) Age and years of work, a very cruel fact, I believe you have also heard of “programmer 35 years old delivery takeout and didi”.

5) Professional skills, if you have read some source code, in-depth study of a framework and so on will be extra points, the use of “proficient” words penalty haha.

6) Bonus points for projects with the same direction.

7) Others: Bonus points for technical blogs with good technical articles, bonus points for Github’s participation in some well-known open source projects, penalty points for institutional training experience, and penalty points for frequent job-hopping, especially for small companies.

To sum up, for most people, especially for young people, big factory experience is very important, so if there is an opportunity to enter a big factory, do not pay too much attention to the current salary, big factory can give you growth opportunities, subsequent salary increase, these are small factories can not compare.

The interview process of some big companies

Ali: Usually there are 3 to 4 technical and Hr interviews. At the end of each round, you can ask the internal referrer or transfer the telephone number to the person at the bottom of the interview email to check the interview result. Generally, the process is quite long, usually more than a month, so it is impossible to meet multiple departments at the same time.

Tencent: Usually 3-5 rounds of technical and Hr interviews, at the end of each round, you can ask the recruitment Hr for the interview results. Generally, the process is relatively long, and there may be a week between each interview. Most of the whole process takes more than a month, so it is impossible to meet multiple departments in parallel.

Meituan: Usually 3 to 4 skills (3.1 to start multiple rounds of crossover) +Hr. If passed, the next interview will be arranged within 3 working days, and the process can be completed in half a month. Meituan is a rare company that can meet multiple departments in parallel. The following other departments will be graded according to the fixed salary of the first one even if they pass the exam.

Quick hand: usually 3~4 technical +Hr face, if passed, generally about the next interview within 2 working days, often after a few hours to receive a phone call about the next interview, generally half a month can go through the process, can not face multiple departments in parallel.

Byte: Usually 3 to 4 technical and Hr interviews, the interview efficiency is relatively high, may be a day to finish the technical interview, the whole interview process is relatively fast, but the oral offer is relatively slow, can not meet multiple departments in parallel. Pinduoduo: usually there are 3 technical and Hr meetings, the on-site meeting can be completed in one day, and the meeting can be completed on Sunday. Generally, the process can be completed in half a month, and multiple departments cannot be met in parallel.

Here are some interview tips

1) Try to be confident. Confidence is built on how many weapons you have in your Arsenal, so it comes down to learning and accumulating as much as you can.

2) Practice with small companies first. The more you meet in interviews, the better.

3) Adjust your device in advance of the video interview. Don’t be embarrassed when you can’t open the video like I did.

4) Salary negotiation usually depends on whether you have an offer from another big factory. If you have an offer from another big factory, it will be helpful to negotiate a good salary, so you can talk to several companies.

What should you prepare for the interview

Android interview needs to prepare for the general division of content:

  • Java based
  • Android based
  • Android source code analysis
  • Android Advanced skills
  • New technology research
  • Source code analysis of open source projects

Java based

1.Java collection classes List, Map, Set related implementation principle. 2. Implementation principle and use of Java thread pool 3. 4.Java lock mechanism, deadlock causes and solutions. 5.Java reflection, generics, annotations and related knowledge and use. 6.Java class loading mechanism. 7.Java VM resource reclamation mechanism and algorithm.

So we must pay attention to the learning and understanding of the Java language. Even if you use Kotlin a lot in your daily work, you should not neglect the consolidation and learning of the basic knowledge of Java.

Android based

Android Basics is part of any Android interview. However, this is also determined by level, the general senior development engineer interview, Android foundation is only a brush.

1.Handler mechanism and related knowledge. 2.Activity and Fragment life cycles. 3. Knowledge of the four components of Android. 4. Communication between Android processes. 5.Context related knowledge. 6. The startup mode of the Activity. 7. Knowledge of Android animation. 8. Knowledge of Android custom components. 9.Android event distribution mechanism and handling of touch event conflicts. 10. Causes of ANR and ways to avoid ANR. 11. Causes of memory leaks and solutions. 12. Causes of OOM and solutions 13.Android page rendering mechanism and optimization method. 14. Understanding and performance comparison of LinearLayout, FrameLayout, RelativeLayout and ConstraintLayout. 15. Features of Android versions. 16.Android screen adaptation skills. 17. Understanding and practice of MVC,MVP and MVVM. 18.Android theme, style, attribute related content. 19. Knowledge of JNI.

Android source code analysis

Android source code analysis, is a higher requirement assessment. However, this is very common in large factory interviews, because many large factories have quite high requirements for Android source analysis and understanding.

1. Startup process analysis of Android system. 2.APP startup process analysis. 3. Analysis of the Activity startup process. 4. Analysis of Zygote process creation and startup process. 5. Analyze the process of creating and loading Windows. 6. Understanding of Dalvik and ART. RecyclerView source code analysis.

Android Advanced skills

In order to become a senior development engineer, performance optimization and architectural design are always a topic of discussion. It is impossible to become a senior development engineer if you have broad skills but not deep ones. Only constantly enhance their irreplaceable, to improve their value.

1.App stability optimization. (Crash, performance and experience, etc.) 2. Optimized App startup speed. 3.App memory optimization. 4. Optimized App interface drawing. 5.App slimming optimization. 6.App security optimization. 7. Network request optimization. 8.WebView usage optimization. 9. Cache refresh optimization of RecyclerView. Principle and practice of AOP technology. Gradle script continuous integration technology. 12. The App process survives.

New technology research

1.Android componentization. 2.Android plug-in. 3.Android hot update technology. Android JetPack framework technology. 5.Kotlin development technology. Android Hook technology. 7. AOP technology. 8. Dependency injection technology IoC. 9. Cross-platform development technology: ReactNative, Flutter, etc.

Much of the above is not new technology, and if you don’t already know it, you’d better take the time to learn about it, or I’d say you’re out of it.

Source code analysis of open source projects

  • OkHttp
  • Retrofit
  • Glide
  • LeakCanary
  • RxJava
  • ARouter
  • EventBus
  • ButterKnife
  • GreenDao
  • Dagger2

All of the above knowledge points have corresponding interview questions, have the need of friends canClick on the IGet it free.

If the mobile App was in the wild era before, now it is an era of reform, opening up, and excellence. The market is still large, and android is developing steadily and iteratively. Many materials left by predecessors can be learned.