Double first-class university ace majors came to interview an outsourcing position, after the interview, I sighed!

I interviewed a candidate today.

The position he interviewed was an outsourcing position, so the resume used the unified template of the outsourcing company.

I have used this template to read many resumes.

So I habitually looked at the technology stack first, and then glanced at the academic qualifications.

Suddenly was caught eyeballs.

It is written on his resume that he graduated from a university in computer science and technology in 2015.

And the computer science major of this certain university ranks TOP 10 in China.

It is one of the following schools:

An undergraduate graduate with nearly 6 years of experience and an ace major from a double top university came to interview for an outsourcing position.

This background is enough to attract my attention.

But after the interview, the overall performance was very average.

Answering the questions Many technical questions are on the surface, and even the technical points written on the resume cannot be answered.

Moreover, when answering the question, I observed his look, the whole state was dissociated, giving people a feeling of not being confident.

I won’t talk about technical issues.

Finally, I asked about his experience. What I am curious about is such a good academic background, why have you been working in an outsourcing company for so long?

He replied:

When I was in my senior year, I wholeheartedly prepared for the postgraduate entrance examination, but failed in the end. I also missed school recruitment opportunities because of postgraduate entrance examinations.

After graduating, I had to resort to social recruitment and chose to go northward. As a result, I ran into an outsourcing company by mistake. It took me two and a half years to work.

After I had three years of experience, I realized that staying in an outsourcing company was not good, so I chose to leave Beijing and come to Chengdu.

Due to my own outsourcing experience, after I came to Chengdu, I searched for a job for nearly 3 months, but did not find a suitable position.

The result was an outsourcing company.

This work has been going around in various outsourcing projects, and three years have passed in a flash.

The reason for the job hopping this time is because I realized that my technology is still much worse, and it is difficult to improve in this environment.

I asked him: Do you know that the position you are currently interviewing is also an outsourcing?

He said: I know, but at least I think that when you come to your company as an outsourcing company, with such a large transaction volume, you can always learn something. I want to raise my technical level now.

My last question is: Is there anything else you want to ask me?

He replied that if I had the opportunity to join the company, I would definitely learn a lot of things.

Learn things, learn technology.

These are the few words he mentioned the most in the few minutes he talked to me.

When talking about this, I felt his longing.

But through the previous technical interviews, I can also feel that he did not spend a lot of time on technological progress in recent years.

Aside from technical interviews, he was particularly sincere afterwards.

It reminds me of an interviewer I met in Beijing before.

The interviewer worked as a soldier for several years, then retired and entered the computer industry.

The technology is very general, but also very sincere.

As a side of me, I passed it to him.

When I went to report to the leader, I said: I can't make up my mind. Why don't you go check it out.

After the leadership interview was completed, he told me: I think he is very average, what do you think is good about him?

I said: I think he is very sincere.

The leaders laughed when they heard: The technology is not good enough, and sincerity is useless, I think you are soft-hearted. Don't worry about the interview.

After interviewing this buddy, I sighed and felt sorry for him.

Learn to share

Want to be a good Android development, you need a complete knowledge system , here, let us grow together as you were thinking that ~.

This learning route is a learning article for junior high school senior engineers, and the knowledge system is relatively complete. It has the following characteristics:
[1] Comprehensive knowledge structure
[2] Real-time update following the current technological trend
[3] Can be used for interview & learning
[4] Knowledge is divided into text part and video part, self-willed choice
[5] Correct career planning
[6 ] Facilitate quick query of forgotten knowledge points in the work process

Knowledge System

This knowledge system outline includes:

Java part:

  • In-depth Java generics chapter
    The role and definition of generics
    Wildcards and nesting The
    upper and lower boundaries
    of generics Analysis of the use of generics in RxJava
    Json analysis of generics and Bean forced conversion principle practice

  • Annotations in-depth and easy-to-understand articles
    Fragment
    custom annotations
    Annotations use
    the annotation principle in Retrofit Project actual combat
    Custom annotations to achieve ButterKnife project architecture actual combat

  • Concurrent Programming Chapter
    Thread sharing and collaboration
    Deep understanding of threads
    Operation CAS
    concurrency principles and related
    interview questions Android AsyncTask principle analysis

  • Data Transmission and
    Serialization Chapter Serializable Principle
    Parcelable Interface Principle Analysis
    Json

  • Principles of Java Virtual Machine
    Garbage Collector Mechanism
    Memory Allocation Strategy
    Dalvik Virtual Machine

  • Reflection and class loading articles
    Basic concepts of reflection and Class
    ClassLoader and class loader
    Hot fix the actual combat of class loading projects

  • Dynamic Agent Chapter
    Basic Principles
    Dynamic Agent's RxJava and Retrofit Application Practical Combat

  • High-efficiency IO chapter
    JavaIO system
    File file operation
    APK reinforcement
    ...

Android advanced UI and FrameWork source code:

  • Advanced UI chapter
    WebView interactive architecture project actual combat
    Layout ViewGroup principle analysis
    Material Design design App
    Jingdong custom view streaming layout project actual combat
    Today’s headline text gradient special effects project combat

  • Framework kernel analysis articles
    Binder
    Handler message mechanism
    Dalvik VM process information system
    Deep understanding of WMS
    plug-in project actual combat
    Incremental update project actual combat
    PackageManager Service

  • Management of
    Activity and Call Stack
    Fragment and Kernel
    Service Kernel Principles of the Android Components Kernel Chapter
    Communication Scheme between Components
    ...

  • Data Persistence Chapter
    Android File System
    Lightweight Kv Persistence
    Embedded Sqlite Database

Performance optimization:

  • Design Ideas and Code Optimization Chapter
    Data Structure
    Algorithm
    Design Pattern
    Six Principles

  • Program performance optimization chapter
    OOM problem principle analysis
    ANR problem analysis
    Crash monitoring solution
    Start speed and execution efficiency optimization Project actual combat
    Layout detection and optimization
    Memory optimization
    Power consumption optimization
    Network transmission and data storage optimization
    APK size optimization
    Screen adaptation

  • Development efficiency optimization chapter
    Distributed version control system Git
    automated construction system Gradle

  • Android career direction article [This is a new addition by the author, it is very important for Andorid developers, you must have your own career plan]
    senior UI engineer [custom control, source direction]
    Android bottom development engineer [C++ audio and video/image algorithm /Smart Home]
    Senior Android Architect [Building awesome wheels, familiar with Framework, advanced knowledge of Java, etc.]
    Full-stack engineer (with Android as the core technology)

  • Android work tools article
    Git/SVN (code version control)
    debugging work
    test

  • Essential Skills for Android Work
    Play Gradle
    Packaging & Multi-channel Packaging
    Reinforcement & Confusion

  • Android cross-platform development article
    WebView & third-party kernel
    Flutter

  • Android project learning articles
    Practical project learning


Kotlin part:

Basic part

  • Basic data type
  • Array
  • set
  • function
  • Class & Interface
  • Extension method
  • Null type safety
  • Smart type conversion

Advanced part

  • Generic
  • reflection
  • annotation
  • Coroutine

Computer network part

  • Five-layer network model
  • http[request header, response body, three handshake, four waves, etc.]
  • https
  • DNS
  • Socket & WebSocket
  • The process of a browser accessing a url
  • Android technology application [network knowledge points that can be used in Andorid]

Interview

The following questions are all encountered by the host in the Android communication group during the interview by bytebeat. If you have good questions or good insights, welcome to share, and the host will maintain this post for a long time.
Reference analysis : Guo Lin, Hongyang, Yugang, Geek Time, Tencent Class...

Content Features : Clearly organized, with graphical representations that are easier to understand.

Content summary : Including Handler, Activity-related, Fragment, service, layout optimization, AsyncTask-related
, Android event distribution mechanism, Binder, Android advanced essentials: AMS, WMS, PMS, Glide, Android componentization and plug-in and other interview questions and technologies Stack!

Due to the relatively large content of the article, the length of the article is not allowed, and part of the unshown content is displayed in the form of screenshots. If you need to get a complete document, please click on my GitHub to get it for free.

Next, we have a complete interview question for the ByteDance Android Intermediate and Advanced Interview.

Handler related knowledge, interview must ask!

Frequently asked points:
What is the relationship between Handler Looper Message?
What is the data structure of Messagequeue? Why use this data structure?
How to create a Handler in a child thread? How does the
Handler post method work?
The principle of Android message mechanism and source code analysis
Android Handler message mechanism

Activity related

Startup mode and usage scenario?
onNewIntent() and onConfigurationChanged()
onSaveInstanceState () and onRestoreInstanceState()
How do activities start?
Startup mode and usage scenarios
onSaveInstanceState and
onRestoreInstanceState use onConfigurationChanged use and problem solving
Activity startup process analysis

Fragment

Fragment life cycle and Activity comparison
How to communicate between
Fragment startActivityForResult
Fragment overlap problem
Fragment explore
Fragment overlap, how to communicate
Fragment life cycle

Service related


The running thread of the process keep alive Service (all life cycle methods are in the main thread)
How to start the Service and how to stop
the callback method in the ServiceConnection running in which thread?
The difference between startService and bingService The
general routine
of process keep alive Everything you need to know about process keep alive

Android layout optimization of ViewStub, include, merge

When to use ViewStub, include, merge?
What is their principle?
ViewStub, include, merge concept analysis
Android layout optimization ViewStub, include, merge use and source code analysis

BroadcastReceiver related

Registration method, priority,
broadcast type, difference,
broadcast usage scenarios and principles,
Android broadcast dynamic static registration,
common usage and process analysis,
broadcast source code analysis

AsyncTask related

Is AsyncTask executed serially or in parallel?
With the changes in the Android version,
AsyncTask is fully resolved. Is it
serial or parallel?

Android event distribution mechanism

The difference between onTouch and onTouchEvent, the calling sequence of
dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent method sequence and usage scenarios
Sliding conflict, how to resolve
event distribution mechanism
event distribution analysis
dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent method usage scenario analysis

Android View drawing process

Briefly describe
the points that need attention in the onMeasure, onlayout, and ondraw methods of the View drawing process .
How to customize the View
view redrawing mechanism

  • Android LayoutInflater principle analysis, take you step by step in-depth understanding of View (1)

  • Android view state and redraw process analysis, take you step by step in-depth understanding of View (2)

  • Android view state and redraw process analysis, take you step by step in-depth understanding of View (3)

  • The realization method of Android custom View, take you step by step in-depth understanding of View (4)

Android Window, Activity, DecorView and ViewRoot

The relationship between Window, Activity, DecorView and ViewRoot

Android's core Binder multi-process AIDL

Common IPC mechanism and usage scenarios
Why does Android use binder for cross-process transmission
problems caused by multi-process

  • Analysis of the use of AIDL

  • Binder principle analysis

  • Binder bottom analysis

  • Multi-process communication mode and the problems it brings

  • Comparison of multi-process communication methods

Android advanced essentials: AMS, WMS, PMS

AMS, WMS, PMS creation process

  • AMS, WMS, PMS full resolution

  • AMS startup process

  • Analysis of WindowManagerService startup process

  • PMS startup process analysis

Android ANR

Why does ANR happen?
How to locate ANR?
How to avoid ANR?
What is ANR,
how to avoid it and the analysis method of
Android performance optimization ANR detailed explanation

Android memory related

Note: Memory leak and memory overflow are two concepts

Under what circumstances will memory leaks?
How to prevent memory leaks?

  • The difference between memory leak and overflow

  • OOM concept and Android memory management mechanism

  • Possibility of memory leak

  • Ways to prevent memory leaks

Android screen adaptation

Screen adaptation related terms analysis The
current popular screen adaptation methods

  • Screen adaptation terms and concept analysis

  • Toutiao Technology Adaptation Program

Android caching mechanism

LruCache uses extremely principle

  • Android caching mechanism

  • The use of LruCache and its principles

Android performance optimization

Positioning and how to optimize the power consumption of the memory cpu
method frequently used to optimize the performance of
how to avoid UI Caton

  • Performance optimization full analysis, tool usage

  • Best practices for performance optimization

  • Know the high praise article

Android MVC、MVP、MVVM

Which one should I choose? Pros and cons

Ren Yugang's Article: Design Pattern Selection

Android Gradle knowledge

These two official articles are basic enough and
you must post official documents: Tips and tricks for configuring and building
Gradle

Gradle plug-in understanding is good
Gradle custom plug-in way to
fully understand Gradle-execution timing

  • Gradle series one

  • Gradle series two

  • Gradle series three

RxJava

Use process, characteristics, principles to analyze
RxJava nouns and how to use
Rxjava observer mode to analyze
Rxjava subscription process, thread switching, source code analysis series

OKHTTP 和 Retrofit

OKHTTP completely analyzes the
use process of Retrofit, and the mechanism is explained in detail. How does Retrofit work
from HTTP to Retrofit
?

The most popular image loading library: Glide

Guoshen series Glide analyzes the
most complete analysis of Android image loading framework (1), the basic usage of Glide, the
most complete analysis of Android image loading framework (2), understands the execution process of Glide from the perspective of source code, the
most complete analysis of Android image loading framework (3) , In-depth exploration of Glide's caching mechanism, the
most comprehensive analysis of Android image loading framework (4), the most comprehensive analysis of Glide's callback and monitoring
Android image loading framework (5), Glide's powerful image transformation function, the
most comprehensive analysis of Android image loading framework ( Six), explore Glide's custom module function, the
most complete analysis of the Android image loading framework (7), realize the Glide image loading function with progress, the
most complete analysis of the Android image loading framework (8), and give you a comprehensive understanding of the usage of Glide 4

Android componentization and plug-inization

Why use componentization?
How do the components communicate?
How to jump between components?
Android plug-in and hot fix knowledge combing
Why use componentization

  • Android completely componentized program practice
  • Android completely componentized demo released
  • Android is completely componentized-code and resource isolation
  • Android is completely componentized-UI jump upgrade and transformation
  • Android is completely componentized-how to use Arouter

History of plug-in framework
Deep understanding of Android plug-in technology
Android plug-in and hot fix knowledge combing

The online senior engineer interview related articles are mixed, either a lot of content, or the content is too low in quality. In view of this, I have compiled the above interview questions and answers for the senior engineer in Android development to help you progress to a senior engineer smoothly. I currently work for a large Android company. Senior engineer position, in the current environment, I also want to contribute to Android engineers. Through my technical experience, I have sorted out the frequently asked questions in interviews. The answer will be an article or several articles, which I have read carefully. And I sorted it out when I thought it was good. Everyone knows that senior engineers will not be able to express the questions that were asked like they were just getting started. So I filter the articles to help everyone understand.

Due to the relatively large content of the article, the length of the article is not allowed, and part of the unshown content is displayed in the form of screenshots. If you need to get a complete document, please click on my GitHub to get it for free.

Guess you like

Origin blog.csdn.net/AndroidAlvin/article/details/114264447