The byte beating has gone through all five aspects, but it was brushed. I asked hr the reason and said it was...


Insert picture description here

Summary

In the first place, it is best not to falsely report salary during the interview. Originally, ByteDance wanted to go, and passed several rounds of interviews. In the end, I didn’t make an offer. I only thought of a few reasons: 1. The salary was falsely reported, which was 30% higher than the actual; 2. There was a possibility of better candidates. Not big, I think it's still hiring. I am interviewing for Android development, with 3 years of experience, the following is the interview process:

one side

1. Plug-inization. Start the hook method of the activity. taskAffity.

2. Does okhttp support HTTP2? What are the functions of http2? Congestion control in tcp? Tsl's handshake and specific asymmetric encryption algorithm. Asymmetric name

3. How the handler's post (Runnable) is implemented. The execution priority of callback, runnable, and msg.

4. How is blocking achieved? Why not block the main thread?

5. Find the maximum distance between two nodes in the binary tree.

6.206 meaning, which is the unmodified resource, 302 meaning, 301 meaning

7. Multi-process communication problem. Binder advantage. Details of java classes generated by aidl. What problems do multi-process encounters?

8. What are the parameters passed by the dynamic agent? Can non-interface classes implement dynamic proxy? Principle of ASM

9. What is the difference between Application and Activity in the Context inheritance tree? What is the difference in the use of the two?

10. Any binary tree, find the maximum node distance

Two sides

1. Design a log system.
2. Classification of memory leaks. How to check the memory leak 3.
Touch event source code problem.
4. The problem of componentization. The difference between module and app. How moduler communication is realized.
5. How to deal with log collection of native crash?
6. Annotation implements a reminder function: if the value of int is greater than 3, a reminder is needed.

Three sides

1. Introduce the startup process of flutter

2. Introduce the difference between flutter and weex

3. Introduction to componentization

4. What are the means of communicating with js in webview?

5. Introduce the principle of flutter_boost

All sides

1. The respective characteristics and usage scenarios of the adapter and the decoration mode

2. How does video codec work?

3. Three-color ball sorting

HR face

1. Asked about other job opportunities besides Bytedance? What are they

2. Byte, XXX company, XXX company, what is your priority and why?

3. What was the previous salary? What is your salary expectation?

4. What are your hobbies?

5. Do you understand the job requirements?

6. Any questions?

This is a story I saw in a forum. I know that many of our programmers have a dream of a big factory, but how to prepare for interviews with big factories, how to
chat with HR , such as talking about money, etc., many programmers seem at a loss Up. This article talks about these issues based on some of my own opinions.

What is a suitable candidate

Before introducing how to interview, here is an analysis from the perspective of the company: "What kind of candidates are the technical talents that the company needs?" Based on some of my interviewer experience in this company, one has the following characteristics Android programmers are what we need:

1. Bachelor degree or above (a prestigious school is better)

2. With 2 years and above working experience (a famous company is better)

3. Solid technology, technical pursuit and passion for work

4. Good communication and collaboration

Among the above four items, the third one is the most important, that is, technology. Technology is the most important and direct reason for deciding whether to pass the interview. Generally speaking, the larger the company, the higher the technical requirements. Although some positions do not require such good skills, in order to distinguish candidates, the interview process will still interview some slightly in-depth topics. I believe everyone has experience.

In addition to technology, good communication and collaboration skills are also more important. Maybe many people think this is more abstract, and they will think: "How do you know if I have good communication and collaboration skills?" In fact, this question is not difficult. The interview process is a communication process. If you cannot communicate well with the interviewer, it means that there is a communication problem with the candidate. How to communicate with the interviewer well? Give the following suggestions:

  • Courtesy and respect.
  • Understand the interviewer’s questions and answer directly.
  • Modest, cautious and friendly.

The following is a description of academic qualifications and work experience. Academic qualifications are not a rigid requirement. Even if the candidate's school is not very good, it is possible to pass the interview. This requires the candidate to have very solid skills. The work experience is more than 2 years. This is because the target of social recruitment generally has certain work experience, and 1 year of work experience is slightly shorter. Take Baidu for example, the lowest level of social recruitment is generally T4 , Almost exactly 2 years of experience.

To summarize here, the ideal candidate should look like this:

1. Solid technical skills and technical pursuit (required)

2. The attitude, communication and behavior are all very good (required)

3. About 2 years of work experience (basically required)

4. Prestigious schools, famous companies, high education (optional, extra points)

Basically, meeting 1 and 2 can pass the interview. 3 and 4 are secondary conditions, but generally speaking, it is difficult to meet 1 if the 3 is not met. Not to mention special cases, it has no reference significance.

This shows that technology is the decisive factor in interview results. So to what extent can the technology be mastered to pass the interview relatively easily? Having said so much, it seems that it has nothing to do with Android. Let's take Android as an example to analyze the technology required for the interview process.

Technical knowledge combing catalog

The detailed content of all the technical knowledge points below are organized in the open source project [GitHub], and you can pick it up if you need it.

1.Java basic knowledge

The basic idea of ​​object-oriented

Object class related: several key functions of Object class, the concept of constant pool involved in String, serialization & deserialization.

Important keywords: final, static.

Internal class: The classification, application scenarios, and internal classes are compiled into classes.

Abstract classes & interfaces: differences and application scenarios.

Coding: the purpose and classification of coding.

Exception: exception system, custom exception.

Annotation: The basic concept, classification, compile-time annotation & runtime annotation of annotation.

Containers: the internal realization of important containers and the comparison between containers.

Memory model.

Garbage collection.

The process of class loading.

Generic: classification, wildcard & upper and lower boundaries, generic erasure.

Reflection: use.

2. Android basics

Dalvik, Art virtual machine

Activity: life cycle, launchMode.

Fragment: life cycle, lazy loading, the difference between the two adapters.

BroadcastReceiver: Basic concepts, broadcast classification, permissions.

Service: life cycle, the return value of onStartCommand, the difference between startService and bindService, the same process & different * * process interaction, the realization principle of IntentService.

Important tools & source code implementation: AsyncTask, HandlerThread, Handler, IntentService, LruCache, LinkedHashMap, SparseArray.

RecyclerView: Caching principle, comparison with ListView, how Adapter adapts to multiple layouts.

Storage: database upgrade & optimization, ContentProvider, SharePreference.

Compatibility issue with SDK version upgrade.

Android's permission management mechanism.

3. Picture

Bitmap related: Bitmap size calculation, quality, inJustDecodeBounds, inBitmap.

Comparison and compression of several image formats.

Large image loading: BitmapRegionDecoder

4. Algorithm

There is no shortcut, but when you do it, you should summarize it according to the type of question.

5. Open source framework

RxJava: The application scenarios of operators, the internal implementation of key operators, and the comparison with RxJava.

Glide: Process and cache related implementation.

Retrofit: Process, dynamic proxy & annotation analysis.

OkHttp: process, queue implementation, cache implementation.

6. Performance

Performance optimization techniques: startup speed optimization, layout optimization, memory optimization, power optimization, APK size optimization, and list sliding optimization.

Performance optimization tools: TraceView, Systrace, debugging GPU overdrawing & GPU rendering mode analysis, Hierarchy Viewer, MAT, Memory Monitor & Heap Viewer & Allocation Tracker, LeakCanary, Lint.

ANR

ANR reason

Source code analysis of ANR generation process

Information gathering process

Trace file analysis

Analyze the basic process

Concrete example

How to avoid ANR

Performance practice: The performance problems that have been solved are explained from the four points of encountering problems, analyzing problems, solving problems, and results.

7.View

Drawing process: three key processes of measure, layout, and draw.

Event distribution: the principle of event distribution, and the sliding conflict problem handled.

Custom View: Canvas & Path, a more complex custom View that has been implemented.

8. Architecture

MVP: MVP's ideas & advantages and disadvantages, application in projects,

9. Source code

AMS

WMS

Binder

Application startup process

APK related knowledge points

APK composition: resources.arsc composition, AndroidManifest.xml, aapt function and principle

APK packaging process

APK installation process

APK signature & verification principle

dexopt principle

10. Network

Basic knowledge: Take a look at <<Computer Network>>, the focus is on the network layered model, TCP/UDP, HTTP/HTTPS.

11. Design patterns

Summarize according to 23 network models and three classifications. Each design model includes the following three aspects, at least a few commonly used ones should be prepared:

Basic concepts: UML diagrams, simple examples, application scenarios, advantages & disadvantages.

Implementation in Android source code

Application in the project

12. Multithreading

Looking at the art of concurrent programming, the catalog of this book is the best knowledge system for multithreading.

How to solve the multithreading problems encountered.

13.Gradle

Regular placement.

Multi-channel packaging.

14. Plug-in

The core idea of ​​plug-in.

Several plug-in framework implementation principles.

15. Componentization

Advantages of componentization.

Arouter: How to use and how to implement it.

16.Kotlin

You can take a look at the useful ones.

17. Multimedia

Audio and video playback.

18.Big front end

ReactNative, Flutter: If you haven't learned it, you can understand the thinking.

19.JNI

Call the implementation.

How to chat with HR, such as talking about money, etc.

First of all, you met with HR, indicating that you have basically become one of the candidates. At this time HR will talk to you a lot of questions, these questions are to understand some of your personal situation. For example, personality, reaction ability, emotional intelligence, etc. In addition, the HR of most companies does not have a veto power. The unsuccessful interview is probably because there are better candidates instead of HR getting you stuck.

Then it comes to talking about money. First, recruiting people in need with the least salary is definitely one of HR's assessments, so it is normal to keep prices down. And the salary of the last company is also a very important reference. Generally speaking, a salary increase of more than 30% is very awesome, usually around 20%.

Your offer price is generally the upper limit of the offer. Taking into account the low price situation, you can go up to about 1K on the original expected salary, and then you can make a selective offer based on the situation of the interview.

  • The noodles are good, I originally wanted 16K, so I had to ask for an extra 1-2K, no problem
  • If the noodles are average, please report 16 K
  • The noodles are average or not very good, but I really want to join this company. You can drop 1-2K as appropriate. This is mainly up to you
  • I don’t really want to go to this company and make a free price

Conclusion

If you want to go to a good company, but the current hard power is not enough, I think it is necessary to work hard. The level of technical ability can determine how far you go, and the level of the platform can determine your height.

If you succeed in entering the company of your choice through hard work, you must not slack off. Growth in the workplace is the same as learning new technologies.

If the article is helpful to you, please reach out to make a fortune and give me a like. Thank you for your support. Your likes are my motivation for continuous updating.


Finally: benefits

In the technology industry, you must improve your technical skills and enrich your practical experience in automation projects. This will be very helpful for your career planning in the next few years and the depth of your testing technology.

In the interview season of the Golden 9th and the Silver 10th, the job-hopping season, organizing interview questions has become my habit for many years! The following is my collection and sorting in recent years, the whole is organized around [software testing], the main content includes: python automation test exclusive video, Python automation details, a full set of interview questions and other knowledge content.

For software testing friends, it should be the most comprehensive and complete interview preparation warehouse. In order to better organize each module, I also refer to many high-quality blog posts and projects on the Internet, and strive not to miss every knowledge point. Friends relied on these contents to review and got offers from big factories such as BATJ. This warehouse has also helped many learners of software testing, and I hope it can help you too!

May you and I meet and you will find something! Welcome to follow the WeChat public account: [Sad Spicy Article] Receive a 216-page software test engineer interview book for free. And the corresponding video learning tutorials are free to share!

Good article recommendation:

Ali is on the second side, it turns out that my understanding of automated testing is too shallow

Appium automation environment construction

After reading Daniel’s article, I won’t be afraid of slow server response.

Guess you like

Origin blog.csdn.net/weixin_50829653/article/details/112947317