Android R&D went to Meituan for an interview, and was ravaged by various principles by the interviewer. Fortunately, I finally got an offer.

Write in front

The current Android development position is indeed not as popular as before, but as long as you have real talents, it is quite easy to find a job that you are satisfied with.

And if you are 985, 211, master degree, then it is even more important to get a pretty good Offer;

Even if it is not the above conditions, as long as you study hard and break through each technical point, you can also reach or even surpass the friends with superior conditions above.

Friends who are not particularly well-educated can ask someone to recommend it. After the interview is given, it will be a contest of skills...

It’s so fair to engage in programs: academic qualifications are certainly helpful for getting an offer, but even if your qualifications are high, you still have to hang up with poor skills. Interviews have always been to examine your technology, your thinking and problem-solving ability. Technology is the key to opening the door to a new world!

I often share with you that I have to go out for an interview every once in a while. The purpose of the interview is not necessarily to find a good job, but to know what your strengths and weaknesses are? Know what kind of people the market needs?

Regular interviews can help you understand which technologies are needed in the current market, and it is easier to determine where your shortcomings are. At the same time, you can learn more in a more targeted manner, and you will encounter points that you do not know during the interview. You can also take the opportunity to ask questions to the interviewer and learn a wave of technical operations of big factories

If you are lucky and get a high-paying offer, wouldn't it be more profitable?

Similarly, because the interviewer is also a peer, you can also collide with different ideas.

Just imagine? If you stay in a company and don't know what's going on outside, it's very scary, at least I think so.

Okay, no more nonsense. The following is an interview I personally experienced. I will write here to share with you a wave. It is more to summarize the problems encountered in the interview and the direction of the future learning process.

The company interviewed was Meituan, and the students in Meituan were very nice, so I liked it manually!

There are three aspects to technology. The following are the specific interview points

one side

  1. Handwritten algorithmic questions. There are several, and the interviewer will randomly pick one as the topic.

Give a sequence A containing n positive integers, and then give a positive integer x. You can perform any number of operations on the sequence. For each operation, you can select a number in the sequence and make it bitwise with x Or operation. Your goal is to make the mode in this sequence the most frequent.

How many times does the mode appear at most?

  1. Activity life cycle, loading mode.
  • When will singleTask be used?
  1. Can Handler mechanism child threads create handlers?
  • Is there only one Looper per thread?
  • How to ensure that a thread has only one Looper?
  1. What are the ways of multithreading?

  2. Producer consumer model

  3. The difference between wait and sleep

  4. The difference between String, StringBuffer, StringBuilder

  5. ANR abnormality conditions

  • How to analyze ANR
  1. Custom View and ViewGroup

  2. Event handling, distribution, interception, and processing.

  3. GC algorithm

  4. The four major references are strong, soft, weak, and virtual, and explain the appropriate GC

  5. Animation View animation, attribute animation, frame animation. Let's talk about the difference between View and attribute animation.

  6. JVM principle

  7. Screen adaptation related issues

I almost asked these questions, but others have forgotten. Among them, Meituan’s handwriting algorithm is relatively well-known in the industry, and many small partners may be stuck on the handwriting algorithm. Then there are some details of Android and Java, these basic content can basically be said as long as there is a little work experience.

Two sides

  1. The difference between Http and Https?

  2. What source code have you seen? Glide principle?

  3. OkHttp principle?

  4. How does Retrofit work? Why use a proxy? What is the role of an agent?

  5. How does ButterKnife work? Is reflection used? why?

  6. The principle of eventbus.

  7. Handler principle

  8. Binder principle

  9. How to find and analyze ANR anomalies?

  10. JVM memory model? Performance tuning?

  11. What are the garbage collection algorithms? G1 algorithm?

  12. What are the encryption algorithms? What is the difference between symmetric encryption and asymmetric encryption?

  13. TCP three-way handshake? Will it work twice? why? Do you know about TCP attacks? How to attack?

  14. Performance optimization

  15. Will the code be reviewed? When to review? How to review?

  16. Problems encountered in the project that made you difficult? How long will it take and how will it be resolved?

  17. How do I usually learn? When? How to learn? Learning channels?

Comparing the two sides with the one side, it will be more in-depth, biased towards the nature of principle.

Therefore, in the usual coding process, you should think more, look at the source code, understand the implementation method, and not blindly write the code to complete the requirements. If things go like this, the future will easily be eliminated by the waves.

My throat is about to catch fire in this section~

I must thank Brother Zhang, my first leader after graduation. Thanks to Brother Zhang, who taught me the correct way of learning, he also repeatedly emphasized that we must read the source code more, otherwise it will be cold...
(Of course, also Inseparable from my genius 2333)

Three sides

  1. How did the first two interviews feel?
  2. Hot fix
  3. Plug-in componentization
  4. Dynamic
  5. Kotlin
  6. Flutter
  7. Talked about previous companies and projects
  8. Do you think a small team is better or a big team?
  9. Talk about your strengths and weaknesses
  10. Development direction Career planning should focus on breadth or depth first, and why?
  11. Why leave?
  12. Other small questions: Where is the person? What is the salary now? What are the requirements and when will you arrive? Do you have any questions for me?

The three-sided interviewer may not ask too many technical questions for the reasons of the previous two rounds...

However, I am indeed at the end of the crossbow. In my opinion, he is actually a set of serial punches?

  • Do you think a small team is better or a big team?
  • Talk about your strengths and weaknesses? ?
  • career plan? ? ?

It's OK, I won't pretend, if I confess, I will admit that I can't do it, right?

summary

The interview was pretty good. The students from Meituan were very easy-going. I really like this atmosphere.

I won't talk about the final grading. I always believe that the result is not important, but the process is important. As long as you have the strength, don't worry, Offer never treats those who work hard!

If you don’t study well, even if you memorize the interview questions, what can you do? The same will pass in the interview.

So, you need to think a lot when writing code, you don't necessarily need to go to Google. For some new technologies, you must continue to pursue and don't forget that understanding the principles is very important! The foundation is also very important!

About my learning style

  • Multiple summary, multiple output

Write more articles and output quality content

In addition to the well-known blogging, knowledge can also be linked by drawing pictures

Including flowcharts and mind maps, first draw the parts you remember on the map (Xmind is recommended here)

For example, I do this for mind maps:

Android development knowledge system→Java basic knowledge, Android basic knowledge, performance optimization, NDK...

Then performance optimization is subdivided into startup optimization, UI rendering optimization, memory optimization, APK optimization...

If you continue to build in this way step by step in the long run, you will have a qualitative leap in your own knowledge control!

If you just find a knowledge system diagram of a training institution, you can also play a role in checking and filling vacancies yourself:

In the process of drawing your own map, if you encounter something that you can’t write, I think you know which one you want to improve, right?

This has another advantage: systematic learning

Usually when everyone learns (jie) learns (jue) knows (BUG) knowledge, it is fragmented knowledge, and it is very easy to forget later, and if you use the form of mind map to integrate these fragmented knowledge, even Use it frequently at work, the effect will be very good.

  • Learn the various technologies of first-line manufacturers

Dachang is our technology pioneer, not only various technologies, but also many eye-opening methods of use. Learning these is conducive to the improvement of your own competitiveness. After deep understanding, you can further improve your learning efficiency.

In this regard, usually for those questions that I can’t answer, I will directly ask the interviewer how to solve this or what ideas should be done. After the interview, I quickly write it down and go back and operate it a few times.

In addition, there are omnipotent group friends, and you can learn a lot when you communicate.

  • Regular interview

Go out for an interview every once in a while. The purpose of the interview is not necessarily to find a good job, but to know what your strengths and weaknesses are? Know what kind of people the market needs?

Regular interviews can help you understand which technologies are needed in the current market, and it is easier to determine where your shortcomings are. At the same time, you can learn more in a more targeted manner, and you will encounter points that you do not know during the interview. You can also take the opportunity to ask questions to the interviewer and learn a wave of technical operations of big factories

If you are lucky and get a high-paying offer, wouldn't it be more profitable?

Similarly, because the interviewer is also a peer, you can also collide with different ideas.

Just imagine? If you stay in a company and don't know what's going on outside, it's very scary, at least I think so.

I've said this before, and I copied it again shamelessly...

  • Read more of the study notes of the boss, and learn the design ideas of the boss

After communicating with a big guy before, I got his "Notes on Android Development Core Knowledge Points"

The pure catalog pages are very, very long...Big guy, worthy of being a big guy...

Now he has uploaded "Notes on Android Development Core Knowledge Points" to GitHub, friends who want to see can go directly to GitHub

  • Cooperate with various materials to assist learning

In the current era of information sharing, many resources can be found on the Internet, depending on whether you are willing to find or find the right method.

Many friends are not without information, most of them have dozens or hundreds of Gs, but they are messy and they don’t know how to look from where to look, or even forget after they look.

If you feel that the information you find on the Internet is very messy and fragmented, you can also take a look at this www.jianshu.com/p... The
information is indeed quite good. It's really comprehensive, and I usually study it myself.

At last

I want to share with you:

"If you love, then please continue to love, your efforts will eventually be matched with the rewards. If you feel that there is no hope in front of you, you may wish to hold on for a while,' Today is cruel, tomorrow is cruel, but the day after tomorrow is beautiful ' ' Winter has already come, can spring be far behind? ""

The truth is this truth, but "everyone knows the great truth", and those who are successful apply these principles to work and life.

mutual encouragement!

Guess you like

Origin blog.csdn.net/River_ly/article/details/106723870