More than 400 days have passed since March 18, 2020, when I submitted my first summer internship resume. I’m going to CVTE to do Android development.

After resting for a long time, I am now able to calmly look back on this journey and write this article to pay tribute to the long job hunting road I have gone through. If it can also be helpful to those who are looking for jobs, it would be a merit.

The beginning supplement

I. Personal background

I had an internship at netease and Bytedance, both of which were engaged in Android development.

Second, the timeline

In early March 2020, I began to prepare for summer internship, but Tencent failed three times and ended up with zero offer. In mid-May 2020, I started daily internship and received two offers from netease and Didi OC. At the beginning of August, 2020, I started autumn recruitment. I interviewed some big factories, but I didn’t get any satisfactory offers.

In the spring recruitment of 2021, RECEIVED CVTE and LetV offers, and zhihu failed at the same time.

Three, after graduation into the Internet factory three opportunities

1. Summer internship/Spring recruitment internship: For students who graduate in the next year, the competition is relatively small with the spring recruitment (around March). The probability of full-time employment depends on different companies.

2. Autumn recruitment: for fresh graduates, generally in the middle of July to open the online application, the whole recruitment process continues to September or Even October (in December or so sporadic recruitment began) competition is large, HC relatively more.

3. Spring recruitment: For fresh graduates, online applications are usually opened in the middle of February, and the whole recruitment process lasts until April or Even May (but in fact, recruitment is basically finished in early April), with huge competition and very few HC.

A, preparation,

I started to prepare for autumn recruitment in July 2020, but I didn’t find a satisfactory job until spring recruitment. With the experience of summer internship preparation, I have been able to understand all the procedures and key points of preparation, and the steps of preparation are basically as follows:

In fact, everyone has their own unique learning methods, we all need to find the most suitable for their own, here I just listed my review skills, we just need to choose their own.

Books and Websites

I think reading is really very important, each book has its own knowledge system, but there are really few good books, need to experience a selection; About the website is to carry on the summary to some system small knowledge, here recommend is the design pattern. Here are some of the books and websites that I found to be great:

  • Android
  • Exploring the Art of Android Development
  • Understanding the Android VIRTUAL Machine
  • Android source code design pattern analysis and combat
  • Java related
  • Ideas for Java Programming
  • In-depth Understanding of the Java Virtual Machine
  • Illustrated Java Multithreaded Design Patterns
  • Network related
  • Computer Networks (edited by Xie Xiren)
  • How the Internet Is Connected
  • Data structures are algorithmic
  • Introduction to Algorithms
  • Algorithms (4th Edition)
  • Design pattern correlation
  • Graphic design patterns
  • Design Pattern Java edition
  • Practice related
  • Niuke.com online pen test questions (more practice programming questions)
  • LeetCode

Knowledge summary

After reading so many books and websites, I need to make a systematic arrangement of these knowledge. Here I recommend using mind mapping tool. The following picture is my summary of Android review system diagram, and you can download the complete version here.

Interview skills

  • Review what you have learned before the interview so that you can answer questions quickly and comprehensively when asked.

  • Do a little research about the company before the interview, from the website or products, if there are products you can use, see if there are any bugs, when the interviewer asks you to ask questions can be discussed with him.

  • Take notes after the interview. Write down any bad questions you answer so you can fill in any gaps.

Here is my collection of a set of Android interview questions including analysis, complete friends can click [here] free reading download.

Part of interview Experience

CVTE

One side (telephone)

  • Tell me about the Android source code you read
  • Tell me about an MVC you used in your project
  • Talk about the observer design pattern
  • Talk about thread safety
  • JVM memory model
  • How HashMap works
  • You know you can reenter locks
  • GC Recovery algorithm (cool)
  • Reference way
  • The difference between a memory leak and a memory leak, does a memory leak always lead to a memory leak?
  • What are the four components
  • The startup mode of the Activity
  • The Activity life cycle
  • What should I pay attention to when I use “wait” with “notify”
  • The difference between ArrayMap and HashMap

Second interview

The second interview should be with the director. The questions mainly focus on the project. Some of the questions have been forgotten.

  • What projects did you do? Tell me more about the project.
  • Talk about RXJava principles; Which method is valid for switching threads only the first time? Why is that?
  • Volley principles?
  • Retrofit principles?
  • What are the differences between Volley and Retrofit caching?
  • What are the advantages and disadvantages of simple factory, factory method and Abstract factory?
  • What is a memory leak and what is a memory overflow?
  • What analytics tools are used to optimize APP performance?
  • Handwriting algorithm problem ———— to implement a stack
  • What are the Java collection classes? What are their characteristics?
  • Why blog?
  • What do you want to do in the future?

Final surface (video surface)

I don’t think I can go to the end [not pretentious and pretentious], because people who have faced CVTE know that the most terrible thing is the end of CVTE, the end of CVTE is criticized by people, saying that CVTE is bad is basically teasing its end, or a little panic. A few days later, the appointment of the end of the meeting ==

  • Rate the first two interviews on a scale of 10. Why did you do that?
  • Have you interviewed any companies? How many offers have you received? Why?
  • Salary expectations, location and duration of the job?
  • What is your family situation? What is your parents’ personality? Who do you think they are similar to?
  • What did your parents teach you when you were a kid?
  • Do you have a girlfriend?
  • What are your future plans? (I said a three-year goal and a five-year goal)
  • What’s the most rewarding thing you’ve done with technology?
  • What thing is the biggest pressure recently, how conciliation?
  • Why didn’t you stay at your previous company?
  • If you didn’t pass the interview, why do you think?
  • For what reason would you reject our Offer? (Personally, I think the answer to this question is very important, I said I would not refuse, because your company is the company I want to work for)

Careful recall found a little forced kneel lick feeling, the middle also hinted several times as long as you want me, I TM go.

Two nights later, the official website updated its status — the final version passed, bingo!!

Letv

The written test:

The written test is nothing special, are some Java based, Android based, a few rules of the algorithm.

A:

  • Four boot modes? How many cases, let me say the back key?
  • The relationship between LayoutManager and MeasureSpec?
  • The idea of stacking? The time complexity of fast sorting? Write it by hand?
  • Handler mechanism?
  • A Service is a start and bind Service. How is IntentService implemented?
  • What is the difference between stubs and proxies in Aidl? What is your understanding of Binder?
  • Write a merge of ordered arrays?

2:

The second interview was based on my resume. Let me talk about the source code for OkHttp that I have seen. I wrote two algorithms:

  • Use the minimum time complexity to determine whether a single linked list has an intersection.
  • Handwritten binary tree traversal hierarchically.

HR:

On life and ideals…

Leeco’s efficiency is not high… I gave you a reply a week later and can offer… But given leEco’s recent history… Consider again!

zhihu

Zhihu is a bad experience… He just let me go, and I don’t even know why. Manual hand. PNG

A:

  • What about the ArrayList source code? When do I initialize an array? How to expand capacity? What is the method used to enlarge the array?
  • What about the HashMap source code? How to expand capacity? How do source hashes guarantee average hashes? What method is used to resolve hash conflicts? Do I insert it at the head or at the tail? Key null processing?
  • Serialization in Java and serialization in Android
  • Talk about collections that are unique to Android
  • What are thread-safe maps? What are the methods used to ensure thread-safety? What is the difference between segmented locking and reentrant locking?
  • The difference between synchronized and Lock?
  • Three cases of Measure?
  • How many ways are there to cut corners? (Must joke about this…)
  • Handler mechanism? What about postDelayed?
  • Algorithm: Flip a large number of type int

End on one side…. And then…

conclusion

I’ve learned a few things from my months of seclusion (crap, maybe) :

Are prepared ahead of time (the sooner the better) + mentality good (can defeat you will make you stronger) + stick to their feet on the ground (in the case of knowledge must be distinguished often asked to understand oneself can say) + luck (sometimes you never face, don’t doubt your ability, may only be a bad luck) + note some skills (also is not necessarily a good thing too honest)

For those who want to enter the factory must brush the algorithm. For those of me who failed the written test, it was probably algorithmic, especially Bytedance, whose pen test was five algorithmic questions.

The content of the above inner play (nonsense) more, in fact, I really compare dishes, the title is not self-deprecating. This Offer is very common in the eyes of many big bulls, generally just as a spare tire. However, it was not easy for me and I was very satisfied with it. After I got the offer, I directly accepted it without much consideration and planned to work as soon as I finished the trivial matters in school.

Here are some good information I read while preparing for the interview, and I wish you guys who are looking for a job to find a job soon

2020 Android major factory interview 真题 collection (attached answer)