Interviews with major manufacturers such as Android R&D byte and Tencent, senior mobile terminal engineers talk about job-hopping feelings

Today, I invite a mobile terminal senior engineer with 4 years of work experience in a major factory . At the node of the eventful autumn of 2020, I will talk to you about my feelings about job-hopping, share my interview, and review materials.

Since I did more business in Didi before, this time I was looking for a detailed technical direction, so I felt a little "changing career". Let me talk about some thoughts about the job search this time.

  1. Regardless of whether you are doing business or drilling technology, one thing is the same, that is, you must look at the problem from the perspective of the person in charge of the direction . For example, what are the current technical/business pain points in the direction, what is the technical/business plan for the next six months or one year, what problems can be solved, and what excellent technologies are currently available in the industry that can be referred to and applied to the current direction. In fact, this is for us to get used to looking at problems from a higher angle, instead of doing what others arrange for us to do.
  2. Don't neglect every effort you usually make, such as brushing a few leetcodes, learning a set of open courses from foreign universities, and writing a technical article . These efforts may not have immediate effects, but they will certainly play a role in future development. The source code that I learned in my spare time 2 years ago was used in this interview. A course that Steve Jobs audited in college was applied to the design of Apple computers 10 years later. Those who have time can watch this speech by Jobs at Stanford
  3. No matter whether you need to change jobs or not, you can go out for interviews every year . One is to see how well oneself is and what the price is in the market; the second is to be familiar with interview questions and expand your own interview question bank; the third is to see what weaknesses are in your knowledge network at that time, and you can check for any weaknesses.
  4. For business students, it is best to dig out a few points that can be written on your resume or are worth mentioning to interviewers as project technical problems . This also goes back to the first point, to have the ability to think actively. And a more realistic problem is: even if the business we do is important, it is difficult to easily impress the interviewer if we can't tell the technical difficulties.
  5. Drop the bag for safety . After verbal offer or hr talk about salary, don't relax, you feel that your job search is over. Because whoever takes as a spare tire, this is impossible to say.
  6. Mentality . Don't get discouraged if you fail to interview several times. You can comfort yourself, not because you can’t, but not suitable. Of course, after looking for a job, you must wake up, maybe you really can’t do it, usually you have to work harder :)

Unremarkable

Regarding programmers, in addition to doing projects to improve their own skills, there is also a way to improve their professional skills: more! Look! book!

I studied the following review materials repeatedly before the interview, and guess what, I encountered the original question! So, this information is still very helpful to me. Today, in order to give back to all the fans, I will also share my review information, hoping to help everyone.

Because there are too many details in the document, only the screenshots of some knowledge points have been edited. Under a rough introduction, each small node has more detailed content! Due to the length of the headline, the detailed explanation on the catalog cannot be listed one by one.

You need to get all the detailed knowledge explanation of the following PDF, you can privately write to me [core notes] to receive

Summary of Java knowledge points

  • JVM
  • Object
  • static
  • final
  • String、StringBuffer、StringBuilder
  • Exception handling
  • Inner class
  • Polymorphism
  • Abstraction and interface
  • Collection frame
  • reflection
  • Singleton
  • Thread
  • volatile
  • synchronized
  • lock
  • Reference type
  • Dynamic proxy
  • Meta annotation

Summary of Android knowledge points

  • Activity
  • Fragment
  • Service
  • BroadcastReceiver
  • ContentProvider
  • data storage
  • View
  • process
  • Parcelable interface
  • IPC
  • Window / WindowManager
  • Bitmap
  • Screen adaptation
  • Context
  • SharedPreferences
  • Message mechanism
  • Thread asynchronous
  • RecyclerView optimization
  • Webview

Summary of Android extension knowledge points

  • ART
  • Apk package body optimization
  • Hook
  • Proguard
  • Architecture
  • Jetpack
  • NDK development
  • Class loader

Summary of performance optimization knowledge points

  • Start optimization
  • UI rendering optimization
  • Crash optimization
  • Memory optimization
  • Caton optimization
  • Storage optimization
  • Network Optimization
  • Power consumption optimization
  • Multi-threaded concurrent optimization
  • Installation package optimization

Android open source library source code analysis

  • OkHttp
  • Retrofit
  • Glide
  • GreenDao
  • RxJava
  • LeakCanary
  • ButterKnife
  • Dagger2
  • EventBus

Summary of Kotlin knowledge points

  • Object
  • class
  • inherit
  • variable
  • constant
  • Static constant
  • Definition method
  • Overload method
  • Basic data type
  • Comparison type
  • Conversion
  • String comparison
  • Array
  • cycle
  • Corner mark cycle
  • Advanced loop
  • Judge
  • Constructor
  • Class creation
  • Privatization set method
  • Privatization get method
  • enumerate
  • interface
  • Anonymous inner class
  • Inner class
  • Internal class access to external class variable with the same name
  • Abstract class
  • Static variables and methods
  • variable parameter
  • Generic
  • Structure code block
  • Static code block
  • Method code block
  • Visible modifier
  • No need to findViewById
  • Lambda
  • Function variable
  • Empty safety
  • Method supports adding default parameters
  • Class method extension
  • Operator overloading
  • Extension function
  • Coroutine

Summary of design patterns

  • Design pattern classification
  • Six principles of object-oriented
  • Factory mode
  • Singleton mode
  • Builder mode
  • Prototype mode
  • Adapter mode
  • Observer mode
  • Agency model
  • Chain of Responsibility Model
  • Strategy mode
  • Memo mode

Gradle knowledge points summary

Computer network foundation

  • The layered structure of the network system
  • HTTP related
  • TCP/IP
  • Socket

Summary of common interview algorithm questions

  • Sort
  • Binary tree
  • Linked list
  • Stack/queue
  • Two points
  • Hash table
  • Heap/Priority Queue
  • Binary search tree
  • Array / double pointer
  • greedy
  • String processing
  • Dynamic programming
  • matrix
  • Binary/bit operation
  • other

Due to space problems did not impress all the details that are needed can be private letter [notes] core collection


In addition, there are some information to share with you, which is a summary of knowledge collected, sorted and classified by yourself, data structures, algorithms, performance optimization, design patterns, etc., basically all on the Internet. Please also respect the knowledge output.

The materials to share with you include Android learning PDF + architecture video + interview document + source code notes , advanced architecture technology advanced mind map, Android development interview special materials, advanced advanced architecture materials

The content includes but is not limited to [ Advanced UI, performance optimization, mobile architect, NDK, hybrid development (ReactNative+Weex) WeChat applet, Flutter and other all aspects of Android advanced practical technology ] I hope to help everyone learn to improve the advanced level, It also saves everyone's time to search for information on the Internet to learn, and it can also be shared with friends around to learn together!

These are fine materials that I will read again and again in my spare time. Can effectively help everyone master knowledge and understand principles. Of course, you can also use it to check for omissions and improve your competitiveness.

If you have a need, you can point it to receive

If you like this article, you might as well give me a thumbs-up, leave a message in the comment area or forward and support it~

If you see this, you might as well support it with a like, your like is the greatest support for my creation!

Guess you like

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