(The article is very long, do not want to read the book of friends can directly read the summary at the end)

Me and this article is not a simple description of some questions in the interview, or summarize some technical knowledge, but to record all my thoughts and preparation process, and some experience, let everybody more comprehensive look at work, job and life (from my point of view, of course, there must be some unreasonable places, it is good to share)

In the past two years, Bytedance has witnessed the growth of Douyin from one million days to 250 million, the team from 10 to more than 100 people, and the selection, iteration, precipitation and replacement of technology in different periods. The project has experienced engineering, modularization, componentization and finally plug-in. I have a deep understanding of the selection of technical framework at different stages and volumes of the project. Different solutions at different stages of the process have been explored to maximize the efficiency of collaborative development. The process from trial and error to steady growth in products is the process of data-driven business.

Bytedance is a great company, and there are a lot of great colleagues. I was just a rookie in the company, and I learned and grew a lot from looking up to all kinds of big wigs, both in terms of technology and how to do things. During the two years in Douyin, I am very grateful to my colleagues and leaders for their help and support, especially Henghui, Huohuo teacher, Ma Teacher, Xia teacher, General, Ruolei, Lehua, Longbo and a group of great men, as well as beautiful PM sister Jiaxin and handsome designer Dongdong. I can only say how lucky I am. Working with great people and witnessing the rise of a great app.

This interview included the following companies (not in interview order) : Airbnb, Quick training partner, Tantan, Monkey guidance, Fun headlines, Pulse, Move, Guazi used car, Banyu, most right, BIGO, Yinyu, Kuaishou, Xiaohongshu, Meicai, Microsoft, Amazon, Ihandy, Ele. me, iQiyi, Right stroke.

Failed in the interview: Affectionately hang (side), other companies have the hr interview salary, beauty dish network, sound entertainment, move, apes question bank companies such as hr frank told me don’t give I want the price, although the technical evaluation is good, I also know that due to some offer, I want to don’t want to go to the company’s high, I think certainly won’t give. Microsoft and Amazon had another situation. At that time, they had basically decided to get the offer from Airbnb, and they directly rejected the offer because their eyes were sore because of the fire. May have found a classmate, why this time I didn’t try to BAT, ali, tencent, baidu), baidu did not deliver, ali and tencent is not I don’t want to go, it is too slow, may be I didn’t go inside push, but the boss delivery), is basically told me after a month after delivery resume through to the interview.

Why change jobs

Why do you want to jump ship, this problem must think clearly, because the cost of job-hopping is quite big, accumulated in a company is not only a networking and familiarity of the current industry and business, new into the company, all need to start all over again, need to quickly to prove himself, especially technical personnel, and is familiar with new environment and code, these are the costs, So before you jump ship, make sure you know why you want to jump ship. In fact, Ma’s father has a classic saying, “Either the money is not in place, or the heart is wronged”, which is very vivid. Let me elaborate here:

  • Money not to reach the designated position, in fact all of your evaluation is higher than their real level, as a result, most people think they contributed a lot now, the boss should pay increases, especially to see some colleagues do is (may be he thinks), get paid and their own, even higher than yourself, then more money to the feeling of missing.
  • It is very important to know whether what you do is valuable or whether there is a trend of continuous profit. If a company’s products are not profitable and have no prospect, even if you are offered a good salary, as a person who does not want to wait for death, he will not want to stay any longer.
  • As a person with 3 years of work experience, what you need more at this time is a chance to prove yourself, bring greater value to the company and make further breakthroughs. If the current company does not offer you this opportunity, then you need to consider job-hopping.

Then the core of job-hopping is to maximize interests, of course, the interests here are not only salary and benefits, but also their own career planning.

Career planning

As a technical personnel, I probably summed up the following three directions, in fact, which direction is promising, the key or to see their own.

  • Technical manager
  • The architect
  • An expert in a specific field
  • Wages and benefits

As a programmer who is no longer young, I cannot ignore salary and benefits. I am no longer like a student who just graduated. As long as I can grow up and have a good platform, salary is not important. In fact, each stage has its own focus. I have roughly ranked salary, platform and growth (my own opinion).

  • 1-3 years, platform >= growth > salary
  • 3-5 years, platform >= salary >= growth
  • 5 to 10 years, platform = salary > growth (this stage can also be called planning)

Above is his immature view, starting from their own experience, for reference only.

To prepare

This is the most hard phase, you should not only do the daily work well, to start to brush topic, the basic knowledge and the advanced knowledge, in addition I also made some preparation in English, because want to go to the foreign enterprise, go abroad and see the document in English and English is essential, English is becoming more and more important in our daily life, we want to, The whole phase lasted more than four months. Actually every move, is to work over the past few years to review and summarize a, although everyone knows “rocket, the interview in screw” principle, for the company, this is a way of screening, after all, who is the first productivity, so long as has the excellent talents, only then created the rockets will “take off”. As an individual, if you work with good people in your company, you’re not going to be bad, and we want to work with good people.

Brush the topic

My method is still the old routine LeetCode+ “Sword point offer”, although old, but the effect is very good. This process is not only mental work or physical work, because I can not work in the company, I generally choose to go home in the evening, because the company often work overtime, I usually go home from 10:00 to 11:00, first exercise for half an hour (I will talk about this later), and then brush questions for half an hour to an hour. Of course, you can also spare some time on your commute to work.

LeetCode, I swiped 300+ questions, not just once, I swiped four times and wrote once by hand (more than 200 times), ensuring that when I saw the questions or similar questions, I could immediately come up with the optimal solution. Sword Finger Offer, this book is really great, the summary is very in place, and the idea of each stage is very detailed, I am never tired of reading, about 50+ questions, read several times, this can do one thing.

Android learning PDF+ architecture video + interview document + source notes

Basic knowledge of

Due to the Android post, it is necessary to prepare some Java and Android knowledge, there are a lot of articles will introduce how to review the basic knowledge or advanced knowledge, or read some classic interview data, such as Ren Yugang’s “Android Development Art Exploration”, are very good. We can comb a knowledge system of our own according to the online articles and some data, and form one knowledge point to the surface again, so that we can have a deeper understanding and have our own focus.

resume

The importance of resume is self-evident, how to write a good resume is a technical work, of course, if you have a good background (school or company), then no matter how you write, basically do not brush you, we as ordinary people still need to work hard. Take my resume as an example. It has the following sections:

  • Personal Information: Name, date of birth, educational background, blog address, Github address, contact information (mobile phone, email and wechat account)
  • Work Experience: Which companies have you worked for after graduation, generally in reverse order, projects should be as concise and clear as possible, you can refer to the SMART principle
  • Professional skills: Some familiar skills, why I write this last, because for students who have worked for three years, the interviewer pays more attention to your project experience, most interviews are based on your project experience to ask questions.
  • How to Write a RESUME, this is a great open source site that teaches you how to write a resume, and there’s an online markdown site that you can export in PDF.

English

Actually this process for most of the students is not prepared, because this time I want to go to a foreign company to try, and English is becoming more and more important in our daily life, whether it’s reading English documents, movies, traveling, has become the indispensable a skill, so I began to ready to learn English in the middle of 2018, I learn English in the following three ways

  • Mint to read, to write this article so far has lasted 259 days, every day for 10 minutes, mint reading general reading and listening to on the way from work, this is really good, and you can choose to suit oneself level of fiction, a day when reading a novel, this process is very cheerful and relaxed, feeling back in my college, watching fantasy and martial arts novels, I have read black Beauty, The Little Prince, the Legend of Narnia, Pride and Prejudice, Love Actually (before I Met You) and Real People (reading).
  • One hundred cut words, adhere to 214 days, 10-20 minutes a day, during lunch break.
  • Fluent speaks for 188 days, 30-40 minutes every day, during lunch break (the headline is 12:00-14:00), usually finds a small conference room because of the need to follow up on some articles.
  • The whole process is really boring. Because the goal is very vague, I can just learn English well and have a simple conversation, but the goal is too broad and unclear. During the process, I wanted to give up for several times, but I still insisted on it after thinking about it.
  • Harvest: I have increased my vocabulary a lot and improved my reading level. I can read most English documents and novels without barrier. Listening growth is also relatively fast, the general article, do not look at the text, can generally move, but the spoken language is general, because fluency is only read or recite, improve not much, but correct some pronunciation.

[img-w5XUjteu-1571301488585] [upload_images.jianshu. IO /upload_imag…]

exercise

“Health is the capital of revolution” is a statement I fully agree with. Even if you have the best technology in the world, if you are not in good health, it will be empty talk. I have been keeping fit and do exercises with Keep for half an hour in the morning and half an hour at home in the evening.

Half an hour in the morning and half an hour in the evening, I follow Keep to do exercise. Saturday and Sunday, if not, swim for 2 hours, nearly 4 kilometers. Physical examination, some time ago my uric acid is too high, this is because the meat, soy products, and seafood to eat too much (byte beating the food is really good, all kinds of meat every day, every time can’t help clip more), and don’t exercise, I this wonder, I exercise every day, the doctor told me that I do is anaerobic exercise, can produce creatine, There was competition with uric acid, and I stopped swimming for about half a year due to the decomposition of uric acid through the kidney, so I refrained from eating meat and resumed swimming. After a month’s examination, I reduced the amount.

Everyone must squeeze out time to exercise, good health can work spirit, and the body is their own, must cherish.

The interview

Due to the time, some interview questions are not recorded in great detail, but generally speaking, some questions may be missed. This article summarizes the interview summary in 2017, I will not give the answer, a, because the interview is too much, simply did not register with the details, and some may remember, sometimes most interviewed four a day, from 10 a.m. to 9 p.m. in the interview, interview after a week in a row, I directly get inflamed, the eyes the eye of a needle, swelling of the boss. Second, this article isn’t intended to give you a refresher on Android, and everyone has their own focus.

“To them, their superiors for the below”, according to the principle of this interview I can architects or bold interview can take person’s job, so a lot of problems are considering architecture and breadth of knowledge and their thinking, the answer is largely open problem, believe that everyone has their own ideas and opinions, I don’t teach fish to swim, It’s really because Douyin has developed so fast and seen so many problems and good solutions, so there’s still a lot to learn as long as you keep your mind on it.

Company: Quick sparring partner

I still need to fill in the personal information form first. In fact, I don’t like this way very much. The first step is personal details, and you haven’t sent me an offer, and I haven’t decided to come here, and there is no technical knowledge. But since I came here to respect the way the company does things, I simply wrote down the personal information that I felt I could share with the company. Then did a pen test, an algorithm and some network knowledge, not difficult. The overall environment of the speed sparring was not very good, the environment was very noisy, and I was interviewed at the door, so it was very chaotic.

One side

  • Principles and differences between MVC, MVP and MVVM
  • Six basic principles of design
  • Draw the visitor design pattern using UML

Second interview

  • First, I talked about why I left the company, after all, it is so popular now
  • Some of the solutions in the projects I worked on were componentization, bytecode injection, extreme optimization of package size
  • The architecture design of live broadcast

On three sides

Design an upload log size, related to performance, file size, how to compress, timing, TopK issues, etc.

We talked about what we were doing at Bytedance

conclusion

It is a start-up company, and the salary is quite good. However, since it is 996 and there is no overtime salary, the extra money may be overtime salary. Hr later said that the company is planning to cancel 996

Company: Tantan

Ma Yingyi was recommended by Maimai Internet celebrity, ma Yingyi was in Bytedance before, this April to tantan, found me in Maimai, just I have the intention to go out to have a look, so I made an appointment to interview, the office environment is better.

One side

  • Some knowledge of OpenGL, vertex shaders, how slice shaders work, what is VBO, and some simple questions about shader
  • View event passing mechanism
  • Package volume optimization
  • JVM knowledge, the difference between Dalvik and ART
  • Componentized implementation scheme
  • Algorithm problem, the level depth of the ViewGroup is converted to the level depth of the binary tree

Second interview

  • Two face interview officer, pay attention to thinking, I understand to be clever not clever of meaning, have a bit of brain teaser of meaning, the simplest effective method that asks for.
  • RecyclerView to prevent memory OOM a question, make full use of their own cache mechanism, maybe I did not understand the problem, although give a solution, but the interviewer is not satisfied, too cumbersome
  • Discuss the implementation and time complexity of LRUcache

On three sides

The cto interview

  • I talked about my role in the development of Tiktok, what I did and what I gained from it
  • Some experience in Huawei. Why did you leave Huawei
  • We talked about algorithms to find the intersection of two strings and the problem that string 1 does not have string 2.

All around

This time, I’m going to talk about what I’m going to do and let other interviewers know about me again. I need to be careful because I have a high rating.

conclusion

Generally speaking, Tantan is developing well, especially it will be listed in the past two years (it has signed a betting agreement with Momo). The environment is also good, including three meals, overtime work is not serious, double days off, and salary is also helpful. However, due to the listing in the past two years, there are still many things to do and urgent, which requires you to have certain ability. It was embarrassing that Tantan was removed from the Android market in the second week after the offer was given to me.

Company: Ape test bank

I was in the boss delivery of the monkey question bank Android development position, the result of hr little sister took me as a server development, advanced to a server child shoes, let me write a to the algorithm (binary tree mirror), and then look at my resume asked me whether I interview Android, I said, She said awkwardly that I was the server interviewer, and then quickly communicated with HR to adjust to Android. Ape question bank interview should have a hard time index, should be each round of interview should be about 1 hour, and will give 1~2 algorithm questions.

One side

  • Hot repair, mainly said the way of ClassLoader and Rubost plug-in, focusing on the principle of Rubost.
  • Some of the technology selection to achieve live gifts, and playback with alpha channel MP4 solutions
  • How to implement bytecode injection
  • Explore tiktok components, SPI to bytecode injection, pros and cons.
  • And then we have two algorithms
  • 1. String Adds the numbers of the String
  • 2. Print an ordered array using three threads in sequence
  • For questions

Second interview

  • Package volume optimization: Static Lint, Proguard, AndResGuard and remove all fields in R. Java. Remove the Access method. Gradle’s Transform phase compresses PNG and JPEG
  • Realization principle of MVVM- LiveData
  • The principle of attribute animation, not seen here, not quite clear
  • Kotlin writes an extension function for let, and writes the code in general.
  • The algorithm, maybe I wrote it too slowly, so there’s only one
  • 1. Given an ordered array and the number of targets, find the index closest to the number of targets. The complexity is log(n) time complexity

On three sides

  • The interviewer was always happy and asked about the solution of alpha video. Then he talked about why he left such a popular project and asked about my experience. Finally, he wrote two algorithm questions
  • The depth and breadth of a binary tree requires a traversal
  • Given a binary tree and a target number, whether there is a case in the binary tree where the sum of all nodes of a path is the same as the target number, and print.

conclusion

Efficiency is not high, and not the initiative, may be related to I want to pay is too high, by asking just know, behind the technical interview is passed, may bytes to beat and I will be very high salary, I jumped again, ape counselling, considering my working years and age will hangs a large number of people, so can only pay to come over, and they know I’m not going to come, You didn’t bring it up to me.

The interview link in general can also, but the efficiency is not high, may be my bad luck, I am 4:10 to ape question bank, and then waiting at the front desk for 20 minutes, only to hr, said on a conference call delay just now, the understanding, and then wait for the interview and waited for more than 10 minutes, children’s shoes to the server interview, write the word algorithm, Re-adjust to Android interview, wait another 15 minutes, the actual Android interview started around 5:10, after the interview was finished, it was almost 8:30. Basic satisfied with his performance, it is long time no written code, a little rusty, write slowly, most of the questions and answers are recognised by the interview, some did not review the knowledge points, in fact, I think so, and not all problems or knowledge needed to know, you only need 1 ~ 2 understand very thoroughly, recognised by the interviewer.

Android learning PDF+ architecture video + interview document + source notes

Company: Qutoutiao

One side

  • The functions, framework construction, implementation principle and optimization points made are displayed on Douyin.
  • Componentized implementation, why componentized, pros and cons of different implementations.
  • Implementation principle of HashMap
  • View optimization, reduce hierarchy, asynchronous loading, x2C framework introduction, advantages and disadvantages, TextView optimization.
  • Mp4 Playback alpha video implementation principle
  • At the same time, the interviewer talked for about an hour. He did not ask me to write algorithms, but studied principles and details carefully.

Second interview

  • Cold start optimization of some schemes.
  • Understanding data-driven business, how to do it, and how to resolve differences with PM.
  • What are the benefits of all the optimizations I’ve made, and what are the data to back them up.
  • The event distribution mechanism is addressed with a specific example.
  • HTTP some problems, 1.1 and 2.0 differences, heartbeat mechanism, HTTPS how to establish links, how to encrypt data and so on.
  • Why I left Douyin, career development, appeal, etc.
  • After talking for about an hour, the interviewer’s idea was relatively unique. Technology should always serve the business, rather than doing technology for the sake of doing technology.

conclusion

Beijing is located in Haidian District, not close to the subway, so it takes some time to walk. The overall environment is also average, but the efficiency is quite high. I received an offer from Beijing on the second day after the interview, and the interview process is relatively few. I don’t have a clear view of The revenue model of Qutoutiao, which is similar to paying money to watch news. But now, It is also doing this. It is a problem that Qutoutiao can beat the headlines.

Ps: It has been more than a month since I got the offer, and the stock price has dropped from $10 to $5. That is to say, if I make the headlines, my option has been withdrawn by half, so I am shivering. It seems that the option is still very empty.

Company: Guazi used car

Guazi used car is really too far, from Haidian to work, it takes nearly 2 hours, and it is not near the subway, you need to take a bus.

One side

  • We talked about what we had done in the project, bytecode injection, Transform optimization, MP4 gift implementation, etc
  • Start the entire activity startup process, starting from clicking the icon on the desktop
  • Implementation principle of Binder
  • The principle of plug-in, and hook point, there are about two, you can search online
  • Implementation principle of HashMap
  • Singleton implementation, sychrnized implementation principle, and double-lock not violate, will there be thread safety problems
  • Binary tree, read the rightmost node of each layer

Second interview

  • Talk about your resume, what you’ve done at Huawei and Bytedance, and why you’re leaving.
  • Career planning, how to lead a team
  • Basic principles of code design, and drawing factory patterns in UML
  • Combine two ordered lists into one ordered list, recursively and circularly
  • Time distribution mechanism, and need to start from the Android sensor to the application layer, I only know the process from Activity to start.
  • Talk about operating system Unix, shame, I know little.
  • For the new technology view (FLUTTER), Guazi Used car has also started to use Fultter related technology in the project

Three Sides (Director)

  • Introduce yourself. Why did you leave Tiktok
  • Thread safety issues, sychronized and viloated use
  • A method to implement a CAS(optimistic lock)
  • The implementation principle of HashMap, how to optimize memory footprint, optimize resize process, this is an open question

Four sides (VP?)

  • Introduce yourself. What did you do at Tik Tok
  • There are two things that Tiktok does well
  • Design a beautiful group of frames, componentized

conclusion

Seeds used car is made of many used car is a good company, now like a letter, used cars as if everyone is not very good, is too far, the company also no subway station nearby, even bus station need to walk 2 km, but the interviewer feel or more levels, the late hr to talk to me is sincere, full of the whole team, in my view, Or an attitude that wants to do things. Generally speaking, HR is still very sincere. Friends who want to go can consider it.

Company: Fish

The written test

  • Double-lock singleton, why is violate charged
  • The inner class accesses the outer class
  • Some problems with function value transfer
  • Subclasses inherit from their parent class, and each word has static variables, static code blocks, constructors, and the order in which they are executed
  • Int array, in which all but one number appears twice, find the number that appears only once

One side

  • The principle of image compression, and the necessity of it in the Transform phase, are hotly debated
  • Inner classes refer to arguments of external functions, so why final definition, value passing
  • Determine if an application is cut to the background
  • Discussion of componentization, hypothetical scenario, how to deal with
  • The implementation of plug-in, and the corresponding scenarios are discussed

Side 2 (Architect with Fish)

  • A difficult problem, also a custom plugin, to discuss whether there is a better way, the end result, he came up with a clever way, not practice, but told me to keep my opinion.
  • Bytecode related knowledge, ASM and MD5 implementation principle, PNG compression principle, here is more chaotic, that is to say, where to ask which, more divergent.
  • Some thoughts on becoming an architect

On three sides

  • What are the principles, advantages and disadvantages, and benefits of implementing alpha channel by MP4
  • Start with (0,0), go up, down, left, right,0 is unblocked, 1 is blocked, target position (k,j), ask whether you can reach this position, similar to the algorithm of the maze
  • conclusion

I felt that the purpose of the interview was to knock you down. Many times we discussed the question, and when I said what do you think or the correct answer, the interviewer asked me to go back and search on the Internet by myself, or the proposal I gave could not stand my scrutiny. I asked two or three questions, but the interviewer was a little speechless, which felt very strange.

Company: far right

Pen test

  • Reference relationships in Android
  • Customize view steps
  • Activity Lifecycle

One side

  • Introduce the current status of the far right
  • Common players, plus pros and cons
  • Opengl drawing process
  • The process of audio and video codec

Second interview

  • The work I did at Tik Tok
  • Performance optimization, package volume optimization, cold start optimization, some implementation of caton optimization
  • MVC MVP MVVM difference, as well as their own implementation of lightweight MVVM principle
  • Knowledge of codec
  • The advantages and disadvantages of iJkPlayer, and whether to read the relevant source code
  • The discussion of flutter

conclusion

Overall average interview process, but the interviewer’s question is not very comprehensive, more concerned about their own care, for my questions (large front and flutter), insight is only needs to maintain sensitivity to new technology, from the point of the company’s products, especially in April had some accident, dau fell sharply, It seems that I only have 100W + daily work and the office environment is not so good. Later, HR asked me to talk to CTO for another round. Considering various factors, I directly refused.

Android learning PDF+ architecture video + interview document + source notes

Company: BIGO

BIGO is a subsidiary of YY. Currently, it has just acquired an overseas live broadcast product, and it will move its business to Beijing in the future. It still wants to do something. As the main personnel are still in Guangdong, the first two are telephone interviews

One side

  • Multi-threaded how to ensure the safety of the thread, violated, sychronized, reenterLock, principle as well as the differences between these three lock, the JVM is how to realize sychronized thread safe.
  • Implementation principle of HashMap, put() principle. Hash collisions, resize, 1.8 changes, what is a red-black tree, advantages.
  • UI optimization, mainly from the detection and optimization of two parts, optimization is divided into general optimization, and change the optimization of the drawing process.
  • Introduction to JVM, introduction to memory, GC, etc
  • Binder mechanism

Second interview

  • Is hashMap thread safe? Concurenthashmap implementation principle. What has changed since 1.8
  • Principle of playing transparent MP4
  • Cold start optimization and UI lag monitoring and optimization
  • Thinker the principle of realizing the plug-in, we use what to realize hot update, hot update general scheme, as well as the advantages and disadvantages

On three sides

  • Introduce your previous work experience, what did you do in Huawei, why you left Huawei and what did you do in Douyin
  • Realize the principle of playing alpha video by MP4
  • Have you used Kotlin? Some of the features of Kotlin
  • How does memory leak and OOM occur? How does memory leak monitor and how does Leakcanery work
  • Read the source code of the third party framework, the specific implementation principle. Retrofit, OKHTTP, EventBus, etc

conclusion

BIGO one face or partial foundation knowledge, was not very deep or very partial problem, on three sides by the interviewer is tencent’s bosses, before the interview more project I ever did discuss the problems and architecture, and some other aspects of the problem, integral feeling is good, hr little sister is from guangdong, the voice is very nice, also very sincere.

Company: Yinyu Technology

The main Japanese live streaming product seems to be round A. The company is not big, and its founder seems to have come from Toutiao. Various welfare systems are similar to Toutiao Jinbin.

One side

  • The activity lifecycle and the meaning of each function
  • Four types of Activity Tasks
  • Fragment life cycle
  • There are two ways to start the server
  • The size limit of data transmitted by the intent
  • The principle of binder
  • The start process of the activity
  • Hashmap implementation principle, 1.8 changes, red black tree concept
  • Merges two ordered lists

Second interview

  • Why did you leave Tiktok
  • Disadvantages of the componentized implementation of SPI, how to use bytecode injection
  • The composition of Dex, why does each Dex have 65536 limits
  • There’s more. It’s been too long to remember

conclusion

It was A startup company in round A, and I passed the interview technology, but I was stuck in the salary. Maybe MY demand was too high, and the company thought that the price performance was not high according to my current background, so they stopped the discussion. Later, when talking with other companies, they learned something about the company, and many people started to change jobs after receiving the year-end bonus.

Company: Little Red Book

One side

  • Activity life cycle, Fragment life cycle, when onRestart() is called
  • There are two ways to start a service, the life cycle of a service
  • Binder mechanism
  • Process protection: 1. Prevent the process from being killed. 2
  • App package volume optimization, Lint, ProGuard, andresGuard principle, bytecode injection, remove variables of R. Java, remove access001 method, compress image resources and use Redex, etc.

Second interview

  • To introduce myself
  • Do you know about JNI and C++? I don’t know much about it. I’ll skip it
  • The Activity launchMode, the meaning of each Mode, and the Activity startup process
  • How to implement MP4 playback alpha video, encoding and decoding process, NV20, YUV, RGB concepts, SurfaceView and TextureSurfaceView
  • What are the technical solutions, advantages and disadvantages of componentization
  • Implement a queue with an array, void add(int val) and void pop(), and consider expansion

Three sides (Business line leader)

  • Introduce yourself and what you have done in Tiktok
  • What are the two most rewarding things to do
  • How to refactor code, basic six principles, detail what each principle means, and design patterns used
  • Suppose the scenario, the interface definition is defective, the second version needs to be modified, whether to add or directly modify, and is there any other plan, how to do it, why, this is an open question, combined with the design principles, as well as the real situation and some of their own examples can be explained

Sheng Yang (Android principal)

  • Introduce yourself. Why did you leave Douyin
  • Mp4 playback alpha video implementation scheme, detailed explanation
  • Cross-functional cooperation, a specific example, how to communicate, a hypothetical example, in the most appropriate way to communicate.
  • How do you manage up and manage down

Five sides (similar to VP level)

  • View on technology selection, flutter, c++, Java, kotlin, the core is problem solving
  • Whether kotlin will be used, advantages, and real benefits in the project
  • Componentization, depending on different version number solutions
  • Plug-in, some practical problems, what is the specific memory is not clear

conclusion

The decoration of Xiaohongshu is really magnificent, and the office environment is very good. However, the interview process is a little bit too much, which lasted for 5 rounds. But generally speaking, the technology is very good, whether in breadth or depth, which is a company worth joining.

Company: Are you hungry

One side

  • Package volume optimization, principles of Lint, ProGuard, andResGuard, and some package volume optimization solutions done by Tiktok
  • Discussion of threads and thread pools, why thread pools, the implications of thread pool parameters, what happens if the queue is full, and why the number of thread pools is CPU cores +1
  • Okay, I can’t remember

Second interview

  • To introduce myself
  • Trot out the difference between a thread-safe way, sychronized and trot out
  • How to customize Transform, customize Task, how to rely on each other, what is the general order, the concept of incremental compilation, asynchronously speed up file reading, use of ASM interface
  • I am really not familiar with the meaning and difference between cookie, session and token, so I can directly say that I am not quite clear about it.

On three sides

  • To introduce myself
  • What have you done in Douyin? Discuss the related aspects in depth
  • Thinking about architecture, how to design a good architecture, six design principles, respectively explain
  • What design patterns have you used? Why do you use design patterns? What are your thoughts on design patterns
  • How to improve the development efficiency, less communication costs, examples to illustrate
  • Why kotlin? Pros and cons
  • Future planning

Four sides (cross face)

  • Introduce yourself. Why did you leave Douyin
  • Related knowledge of audio and video, NV20, YUV, RGB relation, why mp4 compression rate is higher than WebP animation, encoding and decoding process, general encoding format, the difference between soft and hard solution.
  • View drawing process, the principle of hardware acceleration and the difference between software drawing, as well as the related View optimization

conclusion

Generally speaking, the interview experience was good. The three interviewers had very profound insights on career development and new technologies, and also gave me a lot of suggestions.

Company: Meicai

One side

  • Animation implementation, frame animation and attribute animation implementation principle
  • How to calculate the true size of an image loaded into the phone’s memory
  • The principle of OOM generation, memory leakage is caused by what, GCRoot which types, JVM, etc.
  • A binary search of the deformation of the problem, the specific topic can not remember clearly
  • Why componentization? What are the advantages and disadvantages of componentization
  • The start process of the Activity
  • View drawing process, starting from VSYNC signal

Second interview

  • Performance optimization, package volume optimization, R. Java optimization, Access $XX method optimization, resource optimization principle
  • What is MVVM, my own lightweight implementation of MVVM, what are the advantages
  • See source code for third parties, Retrofit principle, difference between dynamic proxy and static proxy, whether to use reflection, OKHTTP principle, difference between Http and Https, Https socket Security layer handshake, EventBus principle, 3.0 difference, Use of APT and how to handle bytecode (ASM, javaassit, BECEL, etc.)

conclusion

Meicai is really so messy, I feel there are dozens of interviewees. Is meicai expanding so much now? When I interview the guy next to me in the interview, also is really noisy, but also the basis of the interviewer is good, have seen some source code, but did not asked anything particularly good, for the new technology of opinions and advice to me (usually ask the interviewer for some new technology such as flutter, and some Suggestions for me) feeling is not very deep. I talked to HR and left.

Company: IQiyi

One side

  • Call from Activity A to Activity B in the lifecycle if it is an asynchronous process
  • Cold up optimization, how to use Systrace, implementation principle
  • / testamp.txt/testamp.txt/testamp.txt/testamp.txt/testamp.txt/testamp.txt/testamp.txt
  • The principle of plug-in, Activity start process, hook point
  • Void add(Node n); void remove(int index); void add(Node n)

Second interview

  • Introduce your working experience. Why did you leave Douyin
  • Implementation principle of HashMap
  • In the work of Douyin, UI optimization and cold start optimization were mainly discussed, and many related knowledge points were extended
  • Handwritten code for the consumer producer model

conclusion

The interview was kiwifruit on IQiyi TV, not iQiyi mobile app, because I still wanted to make an app. After the second interview, I told the interviewer my ideas, so there was no need to continue the conversation and left directly.

Android learning PDF+ architecture video + interview document + source notes

Company: Fast hand

One side

  • Why does blocking not cause anR barrier messages to generate memory leaks
  • Event interception mechanism, view drawing process
  • The difference between SurfaceView and TextuReview
  • Opengl drawing flow, Texturesurface, vertex shader and flake shader respectively,VOB
  • An unordered int array, given a target number, find the array of two numbers to add to target, and output coordinates

Second interview

The second interview was conducted by Facebook, and the interview style was indeed different from the previous interview

  • How to find index, why size is a multiple of 2, how to resize, after resize, the previous hash conflict still exists? Currenthashmap implementation principle
  • How to ensure the safety of multithreading, what is optimistic lock, how to use
  • Designing a framework for sending voice modules requires writing out all the interface functions and explaining them in detail. Perhaps the interviewer is more concerned with design skills, and the discussion here is very long.
  • WidthMeasureSpec, heightMeasureSpec, and the corresponding AT_MOST, EXACTLY, and UNSPECIFIED parameters of the View are UNSPECIFIED, onMeasure, onLayout, and onDraw
  • Array containing 1-3 of 3 kinds of figures, such as,2,3,1,2,2,1,3,3 [1], the sort of,1,1,2,2,2,3,3,3 [1], requires the time complexity, follow-up the content into an object, continue to sorting

On three sides

  • Why did you leave Douyin
  • How does MP4 play alpha video? Compared with other schemes, what are the benefits
  • “Zigzag” to print binary trees
  • 1~100 lamps, all are bright, the first time will be divisible by 1 lamp, dimmed, the second time will be divisible by 2 lamp, dimmed, the third time will be divisible by 3 lamp, dimmed… Press the number divisible by 100 for the 100th time and ask how many lights are on at the end.

conclusion

Generally speaking, the interviewer’s technology is still very strong, the background of the second interview is very good, the idea is also unique, a little foreign style. The three interviewers pay more attention to algorithms and problem-solving ideas. Throughout the interview process is really not too friendly, three times the interview went to three times, and the first two are in the break room, has been said can’t find a meeting room, especially noisy environment, and points, the first two are approaching between tea to send meal is mixed and disorderly, feel fast worker efficiency and the environment there is some confusion (personal interview), but can’t deny quickly in 2018, the result is very good, In particular, the revenue of the live broadcast shook the sound live a few streets.

HR face summary

In most Internet companies (except foreign companies), when you go to HR meeting, you can basically decide to send an offer. As long as you don’t have too “personality” or three views that are different from ordinary people, you can receive an offer, which is generally a positive and optimistic attitude. There are a few things to note:

  • Don’t bad-mouth your former company and your former leader
  • The standard answer to why you left your former company is that the current company is not suitable for your current development, and you are looking for a better opportunity. (Of course, most of the reasons are because you know the money, so it goes without saying.)
  • Be positive and helpful
  • Pay attention to the above points and it’s generally ok

discuss

I’m going to discuss a few topics, of course, from my perspective, not necessarily right, welcome to discuss.

The interview

In most cases, the interviewer or the company takes the lead in the interview process, and most of the pace is to follow the interviewer. However, IN my opinion, the interview is actually a process of mutual discussion. Not only the company chooses you, but you also choose the company, your future colleagues and the leader. So I in this interview, more is to explore, and the interviewer will ask the interviewer questions, not only is the last said the interviewer can ask him a few questions, some will be asked during the interview process, a good interviewer will discuss with you, and discuss out a reasonable plan or correct answers, the whole process is very cheerful, learning to each other, But there are some interviews, is not very friendly, the question that asks always say oneself go back baidu, this very let me speechless.

The biggest harvest of this time was the communication with more than 60 interviewers, which made me understand myself, my strengths, weaknesses and future planning, as well as my views on how to be a person and do things. I would like to sincerely thank more than 60 interviewers.

Internet winter

For this topic, there are some feeling, from my own perspective, starting in 2018 the Internet has been a cold winter, the Internet started to lay off workers, reduce HC, and even from the code farmer annual bonus (hard for a year, just expect their year-end ~), of course, recently really environment there are some fluctuations, but far from online as severe winter has to pass.

From my interview result will know, the Internet is not the winter, but is more rational, higher requirements for all the candidates, so we more should pay attention to the cultivation of their ability, this is not to say that we have to make a commitment to brush algorithm, back theory knowledge, etc., we pay more attention to how their theory knowledge can bring more value for the company, product, In terms of soft power, it’s not just about getting things done, it’s about managing up and managing down.

** Personal advice: ** Think about why you want to job-hopping, brainless is the worst situation, if you must job-hopping, the best situation is to ride a donkey to find a horse, do not resign naked, job-hopping should be cautious!! Be careful about job-hopping!! Be careful about job-hopping!!

Is academic degree important?

My answer is yes, I’m a beneficiary of my degree, and I invite interviews for any resume I send out (except for some companies that have a very strict seniority limit, Hulu). In the circle of the Internet, of course, is the core of your own technology, but how many people go against technology can achieve or very cow force, if you are such a person, what all needless to say, but I think the vast majority of programmers are ordinary people, ordinary, don’t say what 3 years after the company from education, education is a lifetime thing, Those who can crush you in the college entrance examination, out of the society as long as they are willing to, still can crush you, you work hard, you desperately, others will not sleep for you, so, to improve their education, or to improve as far as possible.

Big companies vs. small companies

I don’t agree with the saying that “big companies screw the screws and small companies make progress faster”. Of course, the specific situation is analyzed and everyone’s situation is different, but I still think people can go to big companies or try their best to go to big companies. I summarize the following reasons:

Gold plating, which I believe most of you agree with, I will not repeat. With the depth and accumulation of knowledge, what you can learn in a big company is deeper and more systematic, and you can have time to think and learn by yourself, especially for students who have not worked for a long time. And best people work together, the probability of large companies run into good colleagues more, ordinary people like me are in imitation and learning, it is because too many people are around the, will have a sense of crisis, to have the opportunity to follow them to learn, to learn how they learn, how to think, and even how to human behavior. In Huawei, there are Zhuoxin and Li Qiao, in Douyin, there are Xia, Jiang and Lehua. There are so many people, I have learned so much from them, some of which will benefit me for life.

choose

Choice is also very important, the primary premise of choice is that you should have a lot of opportunities, otherwise you have no chance to choose, in a lot of opportunities in your face, must think carefully, do not impulse, think about their needs, listen to the opinions of others, and finally make their own decisions. We can’t guarantee that every choice is right, but we can guarantee that we will not regret it, and we should be calm and think more when it comes to things.

The choices mentioned here are not only about which company to go to, what direction to engage in, what kind of colleagues to work with, what kind of leader to choose, and even things in life. The Internet says that a person should have the following points to make some achievements, which I think is quite right:

  • You can do it yourself
  • Some people think you can
  • Anyone who thinks you can do it can do it

Life and Work

Actually this topic there are some confusion for me, “work is for a better life”, this sentence is very correct, but not as a background, parents help where you can’t afford to pay a down payment of ordinary people to enjoy life, continuous efforts, continuous progress is the only thing that has a better material rewards, Beijing is the talent of the whole of China, in the work of three years, I dare not slack off, because there are too many people around me who are better equipped than me, stronger than me and younger than me. No matter where I am, the allocation of resources is based on the principle of 50/80. Many people around me say that I am an ascetic monk who does not know how to enjoy life and is too boring. Indeed, I do not deny that, but I know that only in this way can I hold up a good life for my parents, lovers and future children. In turn, these are my motivation. Feeling a little too much, this topic all depends on their own, I am satisfied with the current state. My humble opinion, everyone can read it.

The last

Thank you for patiently reading my long-winded interview, the above is only a personal point of view. I feel that two years have gone by quickly. I have grown up a lot in these two years. Thanks to all the people who helped me.

Android learning PDF+ architecture video + interview document + source notes

Here I also share a self-collected and organized Android learning PDF+ architecture video + interview document + source notes, and advanced architecture technology advanced brain map, Android development interview topic information, advanced architecture information to help you learn to improve the advanced, but also save you on the Internet search information time to learn, You can also share it with your friends to learn together

If you have the need, you can like + forward, follow me, and then pay attention to the wechat public number [Android development home] for free