preface

Some time ago in the opportunity, this article is a summary of my job hunting process.

At the same time, also as an interviewer, talk about the points that need to pay attention to in the job hunting.

  • The interview of each big factory will assess what knowledge point
  • What are the technical essentials of the 5-year development
  • How’s the market going? Is it really hot
  • What should I pay attention to when writing a resume
  • How to prepare for self-introduction
  • On why YOU left your job
  • How to avoid future career planning problems
  • Be asked since closed, how to adjust mentality
  • My personal learning method
  • Other Matters needing attention

The interview questions

On the first main course

A technology

jingdong

  1. GC principle, which kinds of GC methods
  2. A HashMap principle
  3. Hybrid development process and mechanism
  4. WebView memory leaks
  5. Package volume optimization
  6. What to pay attention to when customizing a View
  7. Event distribution mechanism
  8. The ViewModel principle
  9. How does the screen rotation ViewModel save data
  10. LiveData principle
  11. Flutter thread mechanism, single thread multithreading
  12. Componentized development
  13. Introduce your own open source project
  14. Have you ever worked on someone else’s open source project

Bytes to beat

  1. What happens when the browser types in an address and hits Enter
  2. A brief introduction to TCP
  3. A quick introduction to Https
  4. Talk about symmetric and asymmetric encryption. Talk about public keys
  5. How can concurrent operations be thread safe
  6. What are the lock
  7. A brief introduction to HashMap
  8. Is Arraylist thread safe
  9. Do you know CAS, atomicity
  10. AtomicBoolean and Boolean
  11. What design patterns have been used
  12. Introduce the observer pattern
  13. What sort algorithms have been used
  14. Let’s talk about greedy algorithms
  15. Introduce the principle of fast platoon
  16. Algorithm, given an ordered non-repeating array, uses methods with time complexity less than N squared to find all combinations where the sum of two equals the value of target:

,2,3,4,5,6,7,8 int [] a = {1} int target = 7

Meituan

  1. Java object life cycle
  2. The GC mechanism
  3. Glide cache mechanism
  4. How does Glide optimize Bitmap
  5. Okhttp request flow
  6. Design patterns in Retrofit
  7. App Startup Process
  8. Apk packaging process
  9. What refactoring does
  10. Memory leaks are used as an example
  11. LeakCanary Implementation principle
  12. Handler message mechanism
  13. What states do threads have
  14. Introduction to Hybrid Development
  15. How about Js
  16. Future Career Planning

Bi li bi

  1. MVC, MVP, MVVM difference
  2. Have you encountered any problems with MVVM
  3. Coroutines principle
  4. How is coroutine concurrency handled
  5. Principle of thermal repair
  6. Did you encounter any problems with heat repair
  7. Start the optimization
  8. Package volume optimization
  9. Draw the optimization
  10. How do you make a full burial point
  11. Apk update process
  12. Multi-channel packaging
  13. How to distinguish huawei package update package of other application market
  14. Algorithm, insertion sort principle

Sound network

  1. The best project I’ve ever done
  2. What components Jetpack uses
  3. How does the ViewModel share data
  4. How does the ViewModel hold data while the Activity rotates
  5. How is the ViewModel created? Where is it stored
  6. Did you have any problems using the ViewModel
  7. LiveData principle, how to distribute data
  8. How does postValue work
  9. Did you encounter any problems using LiveData
  10. What are the precautions for customizing a View
  11. A little bit about coroutines
  12. How can multiple coroutines ensure data security
  13. Algorithm, input (H₂O) ×2, output H4O2

Lead the education

  1. Logic questions in written test
  2. What data structures do Java have
  3. Is Arraylist thread safe
  4. String, StringBuilde, StringBuffer
  5. Java lock introduction, synchronous lock example
  6. Four major reference differences, scene examples
  7. Activity Lifecycle
  8. Fragment life cycle
  9. Fragment Destruction life cycle execution order
  10. Custom processes, for example
  11. What are the methods of customizing View refresh and the execution process
  12. Event distribution principles, for example, extend
  13. How to resolve sliding conflicts
  14. How to implement a long press event yourself
  15. Which thread is a Service and how does it communicate
  16. Handler message mechanism
  17. Does the Handler send the message immediately
  18. Which thread does the Handler run on
  19. Can a child thread create a Handler
  20. What are the ways Kotlin defines variables
  21. How to ensure that lateInit is initialized when used
  22. Let,run,apply
  23. The inline principle
  24. A little bit about coroutines
  25. How to deal with coroutine concurrency
  26. How is the underlying coroutine implemented
  27. This section provides an example of memory leakage
  28. Start the optimization

Call holding

  1. What was the most fulfilling project you worked on
  2. What is the most impressive project
  3. Underlying implementation principles of LiveData
  4. Start the optimization
  5. Package volume optimization
  6. Customize the View flow
  7. View asynchronous loading
  8. What design patterns have been used
  9. Introduce a single example, hungry, lazy, double lock
  10. The difference between proxy mode and decorator mode
  11. The difference between policy mode and state mode
  12. Talk about the observer model
  13. Have read what tripartite library source code
  14. Glide four tier cache mechanism
  15. How much AMS knows

Have to content

  1. A brief introduction to HashMap
  2. The execution flow of a HashMap call to PUT
  3. Activity Startup process
  4. Binder mechanism
  5. Handler message mechanism
  6. How does Handler communicate with child threads
  7. Why doesn’t Looper block the main thread
  8. Know anything about memory leaks
  9. How was the memory leak discovered and handled
  10. How are online memory leaks monitored
  11. LeakCanary Implementation principle
  12. The difference between soft and weak references
  13. Know anything about ANR
  14. What causes ANR
  15. Why is the Activity response time 5s
  16. Event distribution mechanism
  17. How to resolve sliding conflicts
  18. How does the recording function work
  19. Codec correlation
  20. What package volume optimization does

Hello travel

  1. Pick one project and talk about it in detail, along with the technology stack
  2. Introduce the coroutine mechanism
  3. Let’s talk about what Dispatchers, withContext, Scope do
  4. Describe what you understand as MVP, MVVM
  5. Flutter related
  6. What performance tuning does
  7. How is compilation speed improved
  8. Memory leaks
  9. LeakCanary Detection principle
  10. Thermal repair, Sophix principles, ClassLoader
  11. Apk packaging process
  12. Multithreaded concurrency, how to ensure thread safety
  13. What is the difference between synchronized and synchronized modifiers

The little red book

  1. How do you do technical research? What factors do you consider
  2. The way the MVVM
  3. Which components in Jetpack have you used
  4. How does LiveData distribute data
  5. How can I rotate the ViewModel without losing data
  6. Did you encounter any problems with MVVM
  7. What performance tuning does
  8. What are the scenarios of memory leaks
  9. LeakCanary Detection principle
  10. What would you do if you had to make an automated tool to detect images that are too large and automatically compress them
  11. How do YOU customize your View palette
  12. How to check the FPS of the page
  13. Will the main thread stall when the Handler sends a lot of data in onCreate
  14. Layoutinflater.inflate has several parameters. What do they mean

Other factories sort out and supplement

  1. Context in Android
  2. Can popovers be allowed in Application
  3. Activity, Window, and View
  4. What design patterns are available in OkHttp
  5. What are the design patterns in Retrofit
  6. What retrofit.create does
  7. Create a custom rounded View
  8. What parameters does the coroutine launch have
  9. Talk about the by keyword
  10. The difference between agency and delegation
  11. Parental delegation pattern
  12. There are several ways to get the view width and height
  13. Why is view.post accessible
  14. Difference between getWidth and getMesureWidth
  15. Walk the binary tree by hand
  16. Handwritten double lock singleton
  17. Handwritten insertion sort
  18. Handwritten pairs of pairs are de-duplicated and sorted
  19. How to determine if a linked list has a ring

There are still some companies that have not been recorded, such as NIO, CEIbs Fund, Ali, etc. If you can master most of the above, it is not a problem.

Two-sided and three-sided technology

Are partial project and comprehensive ability, vary from person to person to arrange directly.

  1. Which modules of the project are you responsible for
  2. This section describes the process of xx functions
  3. What is the architecture of the project
  4. What should be noted about Kotlin and Java mixing
  5. What are the difficulties encountered in the project
  6. If you had to refactor, what would you do
  7. What are the ways of learning
  8. What do you think is good code
  9. How is the team divided
  10. How to do requirements management
  11. What kind of team is expected
  12. What do you think about the big front direction
  13. How can a new technology be promoted in a team
  14. What are your future plans and how do you plan to achieve them
  15. What do you consider your strengths and weaknesses
  16. Why you left your job

HR side

To sort out.

  1. Why you left your job
  2. Introduce your past work experience
  3. What did you get out of your last job
  4. At present, the opportunity will consider what factors
  5. What was your role on your previous team
  6. Do you have any hobbies
  7. The most fulfilling thing I’ve ever done
  8. Have you ever done something incredible
  9. What do you consider your strengths
  10. Have you been reading any books recently? How do you feel
  11. How do you usually solve your problems
  12. What are your future career plans
  13. What are your expectations for the company of the future
  14. The current salary
  15. Expected salary
  16. Is there anything else you want to ask me

The main technical points

With the above questions in mind, HERE are a few things you should know before an interview:

  1. Java Foundation, Kotlin Foundation, Android Foundation (important)
  2. App Startup Process
  3. Handler message mechanism
  4. View Drawing process
  5. Event distribution mechanism
  6. Common component principles for Jetpack
  7. Kotlin coroutine principle
  8. Performance optimization
  9. Multithreading, concurrency
  10. Componentized development
  11. Principle of thermal repair
  12. Common tripartite library principle
  13. Common design patterns
  14. Data structures and algorithms

It is recommended to practice handwriting algorithms, preferably with a pen on paper.

Algorithms are just the idea of manipulating data based on data structures. If you can’t figure it out because of complexity constraints, you can write it first and see how to optimize it.

Author : yechaoa

The market

It’s not the peak hiring season, but there are opportunities.

Maybe some of you looked at the interview questions above and thought it was normal.

Now the market is becoming more and more mature and stable, with higher requirements on interviewees. In addition, technology is updating rapidly. There are indeed many things to learn from Java to Kotlin, to Flutter, to Compose, etc. Many students say that they can no longer learn.

Also, talk from the interviewer’s point of view.

Even though the underlying implementation, said most of the interview is the underlying principle and algorithm of handwritten what of, but as the interviewer, in fact, some also not want you to know, ask deep, on the one hand is check eight-part essays, mainly technical examination on the other hand, look at your technology where is marginal, say so, an interview, can answer the most is passed, of course, The more the bonus.

As long as the technology is hard, it is an opportunity.

How to write a good resume

Resume is the first step to open the interview, the importance is self-evident, on the one hand to reflect your strength, on the other hand to reflect the degree of matching with the target position, but many JD is copy and paste, I personally did not change the resume dynamically.

The best way to write a resume is to keep it short and to the point. I have also met a lot of people, read a resume of 7-8 pages, some of the project experience is not necessary to write up, the interviewer can not read, the best to keep about 3 pages is more appropriate, students with rich project experience, can choose the key points to write.

My resume is as follows:

  • Personal information
  • List of skills
  • Work Experience/project experience
  • Open source project/blog
  • Education experience

I am MD typesetting, PDF format, reference template

One piece of advice for sending resumes is don’t open them up. Open resumes include invitations for interviews, and it’s not easy to say no. You might miss out on opportunities if you’re not prepared. You can go to other companies first to feel good, and then meet with the company of your choice.

In addition, we must be proficient in what we write on our resume. If we have not used it, we will not write it. If we ask it, we will dig a hole for ourselves.

To introduce myself

This may be your only opportunity to take the initiative in the interview process. It is also the first step to guide the interviewer by introducing your recent project experience and relevant technology stack.

Don’t be repetitive and keep it to about two minutes.

Leaving reason

In fact, we all know this, but when answering or euphemistic better, do not complain about the principle.

But HR has a lot of ways to ask questions, like:

  • Why did you leave your last job after just over a year?
  • Why did you leave your last job after more than four years with your last company?

Answer suggestions:

  • Want to go to a better platform
  • Salary is out of proportion to individual effort
  • The company’s business direction deviates from personal career planning

Personally, I have no problem with the company going bankrupt, but if it is a case of one company going down, then HR may deny you…

Career planning

A lot of people ask this question, similar questions, what technology are you learning these days, what books are you reading.

In fact, many students will relax their guard, seemingly insignificant, but in fact there is a mystery, because in the process of job hunting, learning to see, may be their weakness.

For example, if you say that you want to study the source code of the mainstream tripartite library and learn excellent design concepts in the future, it seems that you are very hard and progressive. In fact, what the interviewer hears is that I only know how to use the mainstream tripartite library, but I do not know the principle. I am just an API caller. (awkwardness?)

So this part of the answer has to be deep or broad, it has to be imaginative, but it doesn’t go too far, it needs to be carefully considered.

Answer suggestions:

  • Technical direction: Either full or fine, full stack or niche expert
  • Management direction: with strong communication and collaboration skills, I hope to be the leader of the team

About the state of mind

  • Before preparation, some students may see the interview questions are not confident, feel half of them can not answer, this is normal, people’s memory is limited, slowly review good, put down the mentality.
  • In the interview, some students may be asked about autism, in fact, it is unnecessary, the east is not bright west bright, there is always an interviewer will dig out your bright spot. In addition to technology, there are many objective factors in the interview, such as the interviewer’s mood, your status and so on.
  • After the interview, good and bad are calm to accept, timely do a good review, check the gaps, in order to have a better play in the next interview, this is also aA brave fight timeIn the process.

Learning methods

Personally, I comb the knowledge tree, and supplement it if I can’t, and make a study plan.

My personal learning style:

  1. Read official documents, such as the Kotlin document, quickly the first time to get a general impression, and closely the second time to pay attention to some details.
  2. Reading, or Kotlin, fast reading first, then focus on intensive reading. I find it more convenient than watching a video. I can highlight and take notes. I can stop and think at any time.
  3. See the relevant open source projects, learning excellent design concepts, code style, three people will have my teacher.
  4. Read targeted blogs.
  5. Practice, this is very important, the paper come zhongjue shallow, must know this to practice.

Other Matters needing attention

  • Try not to be late, live or on video.
  • If you are interviewing onsite, pay attention to the weather and check your route ahead of time.
  • If you need to change the interview time, talk to HR one day in advance.
  • If you don’t go, don’t just stand up. Tell HR.
  • Keep your phone fully charged so you can improvise in front of you.
  • Interview registration, the word as far as possible to write some good recognition, as an interviewer, bad recognition of points, the word as the person, the code.
  • Don’t lie. It takes more lies to make up a lie.
  • Large factories generally have a long interview cycle, pay attention to the time arrangement.
  • Stay confident, stay confident, stay confident.

remarks

Think more, see the problem try to see the essence.

Technical problems can be found solutions, how to get through in thinking is the need to think.

Here’s an example:

Let’s talk about the Android startup process.

Many students may not have a clue to this problem, or read it can not remember.

If you think back to the Android platform architecture, you should be familiar with the following diagram.

Ok, back to the problem. The simple process is to wake up the Linux kernel from the power button, then the virtual machine, the Framework, and finally the System Apps.

Understand the general process first, then string together the details, such as Zygote, AMS, Launcher, and so on.

The last

Ok, finally wordy finished, but every sentence from the bottom of my heart, I sincerely hope to help some students.

I wish you all a good salary and happy bug writing in your favorite company