The cold winter

After the outbreak of the epidemic, as expected, I was optimized by the company.

The reason probably goes back to a year ago. At the end of October, the project manager of the company changed his job and his position became vacant. I was the project leader.

This modest company has been in business for three or four years. In terms of technology, at least in the company, it’s already one of the best. I thought that THE vacant project manager should be me, and my team members all thought it must be me.

When the announcement came out, I directly meng 13, another group leader on the manager’s position. He is not as skilled as I am, and in my opinion, he is an “old hand” who plays with people. People up and down the company seem to have a good impression of him, and I have always been a little “disdain” for him. It’s probably a naive misconception that every programmer has: that being a programmer is a purely technical profession. Technology is Paramount, compared to my dishes are “spicy chicken”.

Naive as a fool, I went to my boss to argue. Why? Give him? I was here before him, I had more experience, I had more skills. At that time, there were clients in the boss’s office talking about cooperation. I said that and left.

And then I was surprised that the boss didn’t come to me, as if nothing had happened. I was a small team leader, working, working overtime, on the version.

Until the pandemic broke out and the company announced it was going to optimize. In the optimization list, no accident to see my name.

In the cold winter of the epidemic, I received the news like a needle of ice, which pierced my heart. Cold all over.

Wife belly is about to deliver the child, want to catch up with the spring season let him come to this world. As the family’s sole source of income, every day only think about mortgage car loans, tea rice, oil and salt. I was devastated.

recovery

To my relief, my parents, including my in-laws and my wife, gave me the utmost encouragement and support. It gave me the confidence to start over. During the lockdown and quarantine period, I studied at home and prepared for interviews and job hunting. My in-laws came to take care of my wife (her family is local to Hangzhou, and my parents went back to the countryside for the Spring Festival).

After the interview

I reviewed for about two months. In the middle of April, I began to review my resume and consolidate it. Companies of all sizes sent out about 30 or 40 resumes. I got about 20 interviews. Below I picked out a few better and some big factory of the real subject experience to share.

Tips: Before an interview with a company, it is best to know the job you are interviewing for, the company’s business, which is mainly to do, so that you can have more targeted review and preparation.

A lending subsidiary of China Resources Group (a lending company must pay more attention to APP security)

  • The starting process of an Activity
  • Broadcast registration modes and differences
  • How is disk caching implemented
  • Interprocess communication principle, Binder mechanism principle
  • APK hardening, DEX file encryption implementation and principle
  • Talk a little bit about the class loading process, the mechanics, why is it designed this way?
  • Talk about your understanding of Android signature.
  • Do you have any suggestions or ways to improve the security of your app?

Tencent News (probably UI, page fluency, adaptation of these aspects)

  • How to set an Activity to look like a window.
  • Several ways to communicate across processes in Android
  • What are the processing skills of screen adaptation?
  • ListView stalling causes and solutions
  • Is there a limit to the data transmitted by broadcast, how much, and why?
  • How do I prevent overdrawing
  • View’s return receipt process
  • Let’s talk about Context
  • How does Caton’s whole solution work?

A well-known takeaway APP (layout, page, advanced UI, etc.)

  • View drawing process, onMeasure method in the meaning of two parameters;
  • What tools do you use to optimize your layout?
  • What are the results of layout optimization?
  • Read what source code
  • Has mixed development ever been done
  • Tell me about the most satisfying project you’ve ever worked on

Bytedance Tiktok Department (Audio and video, algorithms)

  • Static registration and dynamic registration principle respectively
  • How does JNI access methods and fields in Java?
  • What references are defined in the JNI specification, and what are the differences
  • Algorithm: obtain the KTH element penultimate of a single list
  • Singleton implementation of thread synchronization requirements?
  • LaunchMode application scenario
  • Calculates the nesting hierarchy of a view

Algorithm:

A listed company (maternal and child products)

  • Describe how ContentProvider implements data sharing.
  • Some limitations of Android itself, such as apK package size limit, time limit when reading large files.
  • Algorithm: Copy a linked list with random pointer nodes
  • When do GC leaks occur in Android?
  • Three handshakes four waves Go ahead
  • HashMap, HashTable principle?
  • Java Virtual Machine & Memory structure &GC& Class loading & Four references & Dynamic Proxy
  • How to do process save

Joint venture foreign

  • LeakCanary principle
  • OOM scenarios and Avoidance
  • What was the App installation process like
  • What is ANR? How can ANR be avoided and resolved
  • MVC MVP MVVM principle and difference
  • Algorithm: 20 million integers, find the fifth and tenth digits?
  • How and why are apps sandboxed?
  • Has the Flutter ever been used?
  • How does Flutter communicate with Android iOS?

Zhi ‘an Technology (similar to Huawei Haisi, very important to the bottom)

  • A HashMap principle
  • What is the Binder mechanism for Andorid
  • Do you understand how Linux works
  • Have read what source code, have deep into C++, C++ proficiency?
  • Familiar with the source code of framework modules, do you have an understanding of image performance optimization
  • What is the future direction of technology development

Alibaba P6 post

  • Differences between HTTP2.0 and 3.0
  • Design patterns commonly used in projects
  • Where is symmetric encryption used in HTTPS and where is asymmetric encryption used? Do you know encryption algorithms (such as RSA)?
  • What Android virtual machines do you know?
  • What do you know about Dalvik and ART virtual machines?
  • Gradle automatic patch pack generation principle
  • What is the principle of Hybrid communication? Have you done any research?
  • What is your most mature project?
  • Can you simply draw the architecture diagram of your project?
  • What are the other architectural approaches besides MVP, MVC, MVVM?
  • Other than performance, what are the differences between dynamic compilation and reflection?
  • How can deadlocks be avoided and handled?
  • The core concepts of Widgets, states, and Context in Flutter? What problem is it to solve?
  • BlockCanary {how to detect the lag, what is the principle of the lag, how to determine the page response to the lag or logical processing caused by the lag}, the principle of BlockCanary
  • Algorithm: double linked list flipping, write you know the sorting algorithm and space time complexity, stability

Haze as scattered

Finally, I successfully received the offer of ALI P6. Although the salary was not the highest, the resume of the top big factory could be included in the resume after all, and it was located in Hangzhou.

With the strong measures of the motherland, the epidemic has been brought under remarkable and effective control, and life has gradually and basically returned to normal.

My wife is about to give birth, and fortunately, the haze before the year is basically dispersed, and the baby can come to the world in this spring season. It’s nice to be

In this I also share a big man’s own collection of Android learning PDF+ architecture video + interview documents + source notes, as well as advanced architecture technology advanced brain map, Android development interview topic information, These are some of the best materials THAT I read again and again in my spare time (mainly because I have deleted all the other messy and unstructured materials).

In a word, it is also here to help you improve your learning systematically, save you time to study by searching scattered information on the Internet, and share it with your friends to study together

If you need, I have uploaded him to GitHub, welcome star white piao:Android Learning PDF+ architecture video + interview document + source notes

Learning skills

What technologies should be focused on?

These problems will be discussed in the group every day, and some people often ask for jobs in the group. So I learn what view is not to tangle, learned to say again first, rather than seize variable (new technology) is not as good as good good study, I especially like the dark time “a attaches great importance to the knowledge of nature: this is especially important for programmers, programmers here the mass industry knowledge, and always change in growth. Many people lament the inability to keep up with new technology. The only way to deal with this problem is to hold on to invariants.

Basic knowledge is never out of date. Algorithmic data structures are never out of date. Basic programming theory is never out of date. Good coding habits never go out of fashion. The ability to analyze and solve problems is never out of date. A strong ability to learn and a strong thirst for knowledge are never out of fashion. The way your brain works is never out of date.

When I started my career, I was always chasing the latest and hottest technology. After several years, I found that new knowledge is always growing and technology is constantly iterating. Feel very powerless, will one day accidentally see Google online interview questions type, my surprise is not the latest technology in the interview questions, and not even under a certain language knowledge, but a general knowledge, algorithm, data structure, design theory, coding standards, then I see, think of him as to some company asked algorithm, A face of confusion, and also reasonably and boldly said to the interviewer, “there are not many places where the algorithm is used in development, and it is normal to remember.” “, now looking back on the original idea is really to find an excuse for myself, because the algorithm itself is more difficult than calling API, you even learn the difficult things, also can’t learn simple API call? Essentially the interviewer wants to see your ability to learn and logic.

If you learn the underlying invariants well, you can get twice the result with half the effort in learning big data, cloud computing and AI. Do you think you can learn big data, cloud computing and AI without foundation? We do not stick to a certain language but first practice good internal skills, your attainments in this language is high or deep, ultimately depends on the depth of your internal skills.

How should you learn?

We know what to learn, so how to learn?

In this age of information explosion, we read a lot of information every day (wechat official account, Weibo, Jane Book, Toutiao, wechat reading, get…..). After reading, we always feel like we’ve learned something new, but how much can we say after a week?

This reminds me of a line from Seneca’s “On the Transience of Life” : “If a man goes to sea in a storm, and is swept about by the shifting winds, you may feel that he has sailed far. It wasn’t very far, it was just long ups and downs.” Yes, today’s knowledge is like the storm when we go to sea, we are just blown around in place, not far in the ocean of knowledge.

Therefore, systematic and systematic learning is particularly important. ** This is also the direction I have been adhering to.

Finally, I wish everyone can have their own yearning life in this blooming season!