After the epidemic, I planned to quit Ali. I thought it was cold, but I didn’t expect it to "save" me (with detailed experience)

Something to say

Programmers have stages, 1-3 years, 3-5 years, 5-10 years. Some people can advance this number, while some people have been stuck in the first stage for 1-3 years. Why is the difference so big? Interested friends can take a look at my understanding and perception of the interview. I will tell you with some personal experiences, hoping to bring some suggestions and warmth to you who are still looking for a job.

Planning before my interview

  • Heart-to-heart: 4 months of preparation, 5 interviews, two consecutive weeks of rushing to the paper, no less than 5 revisions before and after
  • Intermediate level: 1-3 years after graduation, salary 10-20 K
  • Android engineer: application development direction

What is included in "job-hopping"

First of all, please think about a question: in your eyes **what does "job-hopping" include**?

Everyone knows that "Golden Three Silver Four, Gold Nine Silver Ten Jobs Season", but due to the impact of the epidemic, this number has expanded to the entire year 2020. If you still think that "job-hopping" is limited to "writing a resume and interview", then you will be cold.

I thought so in the interview this year.

At that time, the work was not going well. I happened to see a company recruiting in a group, so I sent my resume. After the interview, I felt good, but in the end I slapped my face and rejected the family because the salary I wanted was too high. .

After careful reflection, I found that I was too rushed to prepare, or that I didn't prepare much at all. I just wrote a resume and then went there when I got an interview opportunity. During the interview process, some project details could not be answered, and many knowledge points were not answered well, which made people feel that they were average.

After learning from the painful experience, in the next few months, I began to look up various job-hopping and interview-related materials. At the same time, I sorted out the key points of review and learned step by step as planned.

Two weeks ago, I felt that I was about to study and the company's situation was basically clear, so I decided to leave.

So I wrote a resume, submitted a resume, and interviewed. I met with five agencies, got five offers, and finally chose the most suitable one for me. **

In this process, my understanding of "job-hopping" gradually deepened.

At first glance, "job-hopping" means writing a resume and changing jobs, but in order to get a satisfactory offer, there are actually a lot of things to think about and prepare. There are probably a few things:

  1. Think clearly before hopping
  2. Master the knowledge points needed for job-hopping
  3. Write a high-quality resume
  4. Understand when and how to deliver your resume
  5. Do your homework when you get an interview invitation
  6. Adjust your mentality during the interview and work hard to perform
  7. Think promptly after the interview
  8. How to choose if there are multiple offers
  9. Graceful resignation

These should be a relatively complete process from the beginning to the end of a job-hopping. Next we will learn about each part in detail.

image

Questions to think about before hopping

My wishful job is a hero of the world. One day he will marry me with a high-paying equity. I guessed the beginning, but couldn't guess the ending...

Every job starts with hope. We have a longing and hope to make a big splash and accomplish something in the company.

But what brought us to where we are today, about to break up with it?

There are generally two reasons for resignation:

  1. Money is not in place
  2. Feel wronged

What to do if the money is not in place

A common belief in the industry is that "job-hopping and wage increases are the fastest", which is indeed the status quo.

Why is the company so late that it doesn’t give a raise so that we have to quit?

The answer is simple: because the company does not realize the increase in your value.

We may be just a rookie when we started, but after working for a period of time, due to personal hard work and business training, the level has been greatly different. I feel that we are no longer a rookie and hope to get a higher level. wage.

But you may have been working on a project without taking on more responsibilities, and the company cannot understand how much you are capable now.

At this time, if the leader is better, you can take the initiative to ask for the task, actively complete it (that is, work overtime), and then talk to the leader for a salary increase after a period of time. This is justified, convincing, and leaders generally agree. This way, there is no need to change jobs and save the tedious preparation of interview questions. Over.

If the leader disagrees, there is nothing wrong.

What to do if you feel wronged

Another reason for employees to leave is because they are unhappy and feel wronged.

Some passive reasons, such as leadership changes, job adjustments, and too much overtime, can make people feel uncomfortable. Take me as an example, the company's business transformation is not Android application development. After working for a long time, I feel uneasy and want to leave. If you have the conditions, you can communicate with the leader whether it can be restored to the original state. If there is no hope, then you have to quit.

However, there are still a few issues to think about before actually raising the issue of resignation.

Thinking before leaving

If you don’t like something, change it. If you can’t change it, change your attitude. Don’t complain.

Some friends may say: Don’t talk nonsense, hurry up and talk about the interview knowledge points. If I didn’t do well, I switched jobs. What else do I think?

No, the cost of each job hopping is actually very high. Excluding the time of the interview, adapting to the old and new environment, familiarizing the business, and mastering the code all require costs. If the interval between job hopping is too short, the time is actually spent In order to adapt to the new environment, there won't be too much content for real learning and precipitation, especially at the beginning of work.

Therefore, before deciding to leave, you need to ask yourself 3 questions:

  1. Is there nothing I can learn in the current project?
  2. What will I lose if I leave here?
  3. What can I get in the new environment?

Take me as an example. In March, I didn't have a solid grasp of the code in the project. Many design ideas of the framework layer were still unclear, and I was out of question when I went out for an interview. If you really change your job at this time, I am afraid that you will have to get in touch with new projects and new codes, and there is no time to digest the previous code.

In addition to code, interpersonal relationships also need to be precipitated. After staying in this company for so long, I have seen the excellent quality of some colleagues. It takes a certain amount of time to learn and learn from them. If you are busy changing jobs, you may lose the in-depth communication with colleagues. opportunity.

Therefore, after I failed the first interview, I studied the project code for more than a month, and also asked my colleagues a lot of knowledge about learning and planning to pave the way for the future.

Determine what you need to do when you want to leave

After you are sure you want to leave, try not to say nothing. You know the current market. If you don't prepare, you will break your own back.

Some netizens asked me: How about resigning and reviewing at home for more than a month. I advise him to forget it, he is not a conscious person, and he can't learn even more at home every day. The best state is to collect the knowledge points and study materials to learn while working, and to study on the way from get off work, evenings, and weekends, so that the mental pressure will not be too much.

Before starting to review the knowledge points, you need to confirm the following 2 points:

  1. Positioning
  2. Highlights

Positioning

"Positioning" means that you have to determine where you are and what you want. mainly includes:

  • What is the current level
  • What accumulation
  • What are the difficulties in the work project
  • What level of job do you want

For example, I am positioning myself: I am now at an intermediate level, and common application development needs can basically be solved. There is no problem in using the open source framework. I read the source code partly. The mixed development in the work project is mainly complicated, and I want to find it beneficial to my growth. Senior Android development work in large companies.

Highlights

Some friends may not understand the definition of "highlights" very well. "Highlights" are actually excellent qualities that can distinguish you from many candidates.

The programmer interview mainly examines these points:

  • Skill levels
  • Learning ability
  • teamwork
  • Work attitude etc.

If you have your own advantages in any of these areas, find out quickly, write it on your resume, and express it in the interview.

Take skill level as an example, according to the type of projects you have done, determine what you are currently good at. For example, if you are doing e-commerce applications, you may be good at mixed development and custom View; if you are doing radio applications, you may be good at Keep the background process alive; if you are doing a large number of users, you may be good at monitoring, performance optimization, etc.

Find the bright spots you have or should have, and then work hard to master and master.

How is the market

Some netizens said that they wanted to quit for a long time, but they didn’t dare to jump when they heard the market was not good. In fact, price depends on value, and it is the relationship between supply and demand that affects price fluctuations.

In 2016, startups did die a lot, P2P and O2O died a lot, but those who survived raised a lot of money, established a lot of new companies, and needed to recruit a lot of people.

At this time, the recruitment standards are higher than those in previous years. You can also find it on the recruitment software, most of which require more than 3 years of experience. This is because there are too many beginners in Android, and all kinds of fresh graduates and training courses have flooded into the market. The days of using ListView in the past few years to find a job are gone. However, the real advanced level, or the potential intermediate level, is still very popular with enterprises.

Therefore, when we want to change jobs, we should not be stopped by the so-called "bad market", but must examine our own level and determine our goals, whether we are looking for junior, intermediate, or senior positions.

Before the interview, the interviewer gets your resume and will build a first impression based on the information on the resume. Therefore, you need to think clearly in advance what kind of positioning you want to present to the other party and what highlights.

After determining the direction, we must start to prepare hard. In the next section, we introduce the knowledge that Android needs to prepare and review for job-hopping.

Knowledge needed to review for Android job-hopping

Before introducing the content of the interview survey, let’s take a look at the knowledge points that I think "Intermediate Android" needs to master. These are summed up by combining some interviews, actual interviews and consulting seniors. They mainly include two parts:

  1. Android core knowledge
  2. Interview knowledge

When interviewing for intermediate and lower positions, in the telephone interview, one side, or when your resume does not highlight the highlights, you will usually ask the basics first to make sure that your basic skills are not solid.

If there is too much basic knowledge, it is dangerous, and you must prepare well. This is unavoidable. After the telephone interview and the basic skills pass, you will enter the next stage-ask some advanced ones to see where your highest level is.

It is normal for the other party to determine your level at this stage, but the attitude must be proactive. Even if you haven't studied before, you should also use some experience to tell the results of the speculation. Never say "I won't" directly.

1. Android core knowledge

Basic knowledge mainly includes the following points:

  1. Summary of Java knowledge points
  2. Summary of Android knowledge points
  3. Android extension knowledge points
  4. Android open source library source code analysis
  5. Design pattern summary network foundation
  6. Summary of common interview questions

1. Summary of Java knowledge points

Although Kotlin is very popular now, I have not asked Kotlin in several big companies but I have asked a lot about Java. Therefore, we must ensure that the current knowledge is proficient, and then learn new knowledge, otherwise it will really become a bear.

Java foundation mainly includes the following knowledge points:

image

Friends who are interested in other must-learn knowledge can search on the Internet, or buy a book and read it. It is recommended to read "The Art of Java Concurrent Programming".

2. Summary of Android Knowledge Points

It mainly includes the following parts:

image

Android's main thread model requires us to place time-consuming operations on threads for asynchronous execution, otherwise it will affect the smoothness of the app or even freeze.

Therefore, we must master the Handler, HandlerThread, IntentService, and AsyncTask provided by Android. These are the asynchronous classes that Android has encapsulated for us. From use to principle, we must understand, frequent interviewers.

  • Source code interpretation of Android message mechanism (Message MessageQueue Handler Looper)
  • HandlerThread usage scenarios and source code analysis
  • IntentService usage and source code analysis

Then you need to understand the Java thread, memory model and the classes provided under the Java concurrency package. This is also a frequent visitor to the basics of large companies.

In addition to interviews, if you have seen open source frameworks, you will find that there are a lot of ConcurrentHashMap, Lock, Condition. At first, you looked confused. After you have mastered the knowledge of Java concurrency, you will save a lot of effort to look at the framework.

I wrote a part in my concurrent programming column, and I will search for the rest.

Recommended reading books: "Exploration of Android Development Art", "Java Concurrent Programming Art", "Java Concurrent Programming Practice"

3. Android extension knowledge points

Android extension knowledge points I love to ask back and forth about those points:

  • ART
  • Apk package body optimization
  • Hook
  • Proguard
  • Architecture (MVC, MVP, MVVM)
  • Jetpack
  • NDK
  • Computer network foundation
  • Class loader

image

This part is common, and most people should be familiar with it. If you want to read the book, please read "Art Exploration".

4. Android open source library source code analysis

  • LeakCanary
  • EventBus
  • Glide: loading, caching, LRU algorithm (how to design a big picture loading framework by yourself) (LRUCache principle)
  • install
  • ARouter

image

Recommended books

"App Development Record"
"Android Heroes"
"In-depth understanding of Android"
"Exploration of Android Development Art"
"Scenario Analysis of Android System Source Code"

5. Design pattern summary network foundation

I asked very little about design patterns in this interview, only the six object-oriented principles

As an aspiring programmer, these design patterns need to be mastered:

image

These are the basics. Only by studying well can you master the others.

Recommended books

The book "Android Design Patterns and Best Practices" is aimed at intermediate and advanced readers. It aims to lead readers to understand how design patterns affect all aspects of Android development and how to use these design patterns to improve development practices. The main content includes: factory mode and abstract factory mode in the Android development environment, material design and user interface design, layout mode, structural mode, activation mode, etc.

6. Summary of common interview questions

image

These are a collection and classification of interview questions from ** Dachang **. I have spent a lot of time collecting and sorting them. You can make a reference. To brush the questions also requires systematic brushing, which will not only improve your knowledge The degree of integration can also be compared systematically and comprehensively to brush to important knowledge points, and it will not be messy, so it is best to have a general direction and classification for the brushing of topics.

Recommended books

"Android Interview High Salary Road"

"Sword Finger Offer Second Edition"

Advanced knowledge is derived from my own experience. If there is any omission, please add it.

Different companies focus on different content

Some friends may ask: There is too much basic content, can I directly prepare advanced ones.

First of all, it is very hard for you to directly learn advanced level, and it is easy to misunderstand. You will forget it soon after memorizing it. Secondly, I also mentioned the order of questions in the interview. They all start from the basics. The basics are not solid and will not survive two episodes. .

Here is another nagging sentence, if a company can enter by opportunism, then you are not the only opportunist who enters. Is that kind of corporate atmosphere what you want? If you want to enter an ideal big company, you should take it step by step.

After mastering the knowledge points, the next step is to review the focus of each company.

There are a lot of knowledge points for interviews and inspections of major companies, and there are many related materials on the Internet. I usually pay attention to some interviews to see what I lack, and then find time to make up.

First of all, different positions have different knowledge points. Everyone knows that Android development includes application development, audio and video development, underlying development, SDK development, etc. If you apply for audio and video development, you must master NDK codec and the like. Since I am engaged in application development, the knowledge points here are mainly for students of application development.

In addition to the job direction, companies of different sizes and projects at different stages focus on different knowledge points. For Android development, I have summarized these two categories:

  • Mature large-scale projects are relatively stable, and need to be expanded, maintained, and monitored. The interviewer needs to master: principles, design patterns, performance
  • The initial project project has just started shortly, and the interviewer needs to have the language foundation, the use of common frameworks, and UI aspects to complete the rapid iteration of the business.

Therefore, when interviewing different companies, we first understand the key recruitment requirements according to JD, but it is better to understand the project situation corresponding to the recruitment position and review more targeted.

Interview knowledge

How to write a resume

As the saying goes, the smell of wine is also afraid of deep alleys. Forgive you 18 martial arts, master all the basic advanced level, can not pass the level of resume screening, it is in vain.

In this section, we will learn how to write a resume, so that it can pass the HR screening smoothly, and the hiring department will like it.

(This article is not finished...)

If you need it, you can poke here, the secret code: CSDN !

At the end, remember the one-click three consecutive times~ I hope you all get your favorite offers as soon as possible!

Guess you like

Origin blog.csdn.net/weixin_47067712/article/details/109170288