Can a university even be a client-side outsourcing interview? Will the client really disappear in two years?

Recently, on a community platform, I saw our friends who are engaged in Android development, the interview experience of gold three silver four interviews to find a job!

The host is a senior who is engaged in Android. The resume also stated that he has no work experience. Then he invested hundreds of companies. Finally, a company was willing to invite me to interview. Although the review is an outsourcing company, the host feels nothing bad. So the host was so excited that he could not even sleep the night before the interview.

Like most interviewees, this baby has also brushed countless interviews. Like the life cycle, mvp, view distribution mechanism, and custom view process, I've already learned it thoroughly.

But the interviewer doesn't seem to follow the routine, just when I guessed whether the interviewer's first question was HTTP or Activity.

The interviewer has started, can you talk about the use of Lifecycle?
Me: ...The interviewer saw my entanglement and paused and said it was all right.

Then I asked the next question. Tell me about the pitfalls you encountered when using mvp?
Me: ………(I don’t seem to encounter any pits…).
The interviewer looked at me again, frowned, and continued to ask, if the front-end and back-end transmission data needs to be encrypted with a key, where should the encryption process be placed?
I:? ? ? …At this time, I am afraid to look directly at the interviewer.

Then you can talk about how to process network requests using Retrofit if there are multiple BaseUrls in the background, the interviewer asked coldly.
Me: Just create a different Retrofit instance (obviously know that this is not the correct answer).

At this time, the atmosphere was embarrassing, and the interviewer did not state a specific solution, but just turned over my resume. Because of my proficiency in using Kotlin in writing my resume, and I prepared related questions wisely (the advantages of Kotlin, the comparison with Java).

But the interviewer started again: how do you solve the problem that Kotlin data class does not have a parameterless constructor?
Me: Uh, I didn't hear you clearly, you say it again (give the brain some reaction time).

You talked about how to solve the problem of no empty parameter constructor in Kotlin data class. The interviewer raised his tone.
"I haven't met...", I thought for a long time and said helplessly.

Then you can talk about the source code of Hander, the interviewer is already a bit impatient.
Hearing this question, my eyes have slipped, and finally he has come to a good point. I have followed the ide to read the source code of the hander, and I have also written a blog to summarize it. It can be said that I am very familiar with it. , So, this is my chance to raise my eyebrows, I must say it well. "The Hander mechanism is an important message mechanism in Android..." I started, from MessageQueue to Looper to ActivityThread, and even ThreadLocal, I picked it up at my fingertips, just like the title of a certain blog -" layer by layer Take off the coat of the hander". At this moment, I was like a toilet failure. It was continuous and completely out of control. My eyes began to drift as I talked about it, and I felt that I was already subconsciously controlling my own words. At this time, I already felt that I was not here. Speaking of the source code, but a catharsis of the suppressed mood of the entire interview. Just when I was about to talk about the last function, that is, the despatchMessage method of the hander, a thought flashed in my mind. Will the interviewer think that I am just memorizing the source code, and then encountering actual problems? Will the salted fish be solved? "The smile gradually disappeared. At the same time, "You don't have to say it in such detail",

The interviewer interrupted me with a smile, "Go back and wait for the notice."

Many people who learn Android development start to doubt themselves after running into a wall when interviewing for a job. Think that the client will disappear within two years, and the romantic history of mobile development?

My answer does not exist.

Many readers reported that they agree with this point of view. Mobile development has not cooled down, and it is not as tragically as the "Romantic Demise" that many people sang badly. It is just like the Internet industry, the bubble gradually dissipated and began to enter the second half of rationality.

Here I want to share with readers, in the second half of mobile technology, how do we find our own technological direction and how to cultivate our own differentiated personal competitiveness.

The following are a few updated Android engineer job recruitments that I found on a recruitment website in the past few days:


When it comes to the technical direction, many authors will talk about some completely empty industry trends in the next ten years; some will blindly encourage everyone to switch to the technical direction, to the front-end, to the back-end, and to AI; some people directly Encourage readers to abandon the technical direction, switch products, operations, or even leave the Internet industry. In my opinion, these ideas are somewhat irresponsible, and they do not put themselves in consideration for everyone's actual situation.

Here are my views. If you have different opinions, welcome to communicate in the comment area, don't spray if you don't like it!

1. Don't leave the Internet industry lightly.
It's very simple. Most people come to work to make money. Compared with many traditional industries, the salary in the Internet field still has an absolute leading position, and the ceiling is relatively high. Around 30 years old, take Ali's P7, P8 or so, or go to a medium-sized company that is awesome. For technical management, the annual salary of one or two million is not a big problem, and it is enough for you to cope with the various financial pressures of your personal and family. In contrast, it is difficult for other industries to guarantee such treatment.

In addition, if you feel that you have enough money, you can also choose to start a business on the Internet. The disruptive nature of Internet technology determines that he has a very large room for innovation. In addition, computer technology has continued to develop in recent years, such as the Internet of Things, 5G, AI, and big data. Continuously maturing and gradually landing, there is a lot of room for imagination for friends who want to start a business.

2. Don't leave the technical direction easily.
Some readers who have been working on technology for a long time will consider leaving the technology to do products and operations when they encounter bottlenecks. Of course, I am not denying this choice. I myself support technical people to learn product thinking and user thinking. But if you directly abandon the technology and transfer the product, it may be very risky. This means that you have to abandon your years of technical accumulation and start from scratch in a new direction. If you want to switch back to technology in the future, you may already be eliminated.

Of course, there are also successful bosses who have successfully transformed themselves. Huang Zheng of Pinduoduo has a technical background, then switched to products, and finally started a business. If you plan to start a business in the future, you can indeed consider such a route.

3. Don't change the direction of technology easily.
This is what the mobile development field has been discussing in recent years. Some want to switch to the big front-end, and think that the big front-end should unify user terminal development; some want to switch to the back-end, feel that the back-end has high concurrency and high performance, and feel very technical; some want to switch to algorithms, AI, and think this is the future The trend must be grasped.

This kind of thinking is the "retail thinking" I mentioned earlier: buy whichever fire you see, chasing the rise and killing the fall. Friends who know the stocks know that this often does not end well. And what I admire is "value investing": Don't be affected by short-term fluctuations. If you are optimistic about a stock and believe in its inherent growth value, you must hold it for a long time, and the final return will definitely be higher than most people.

Don’t think that the big front-end, back-end, and algorithms must be tall. Every field serves business. They also write a lot of business code. They are not busy dealing with high concurrency and high availability every day. It looks like a golden question. As for choosing a big front-end or native, it's just a form of UI display. In the end, all you do is business development, which will not bring much brilliance to your resume.

I am optimistic about the "stock" of the mobile terminal. In other words, unless users don't use their mobile phones anymore, or there are terminals that are more powerful than mobile phones, then they need to worry about their jobs. But I think it is more likely that even if the terminal is iterated and mobile phones are eliminated, I think the operating system running in the new terminal is still called Android.

Android advanced road

So, as an Android developer, how do you plan your own learning route, and then step by step to the middle and advanced levels?
①The necessary skills for architects to build a foundation

**Main skills: **In-depth Java generics, explanations in simple language, concurrent programming, data transmission and serialization, Java virtual machine principles, reflection and class loading, dynamic proxy, efficient IO.

Related learning documents:

②Android advanced UI and FrameWork source code

**Main skills: **Advanced UI promotion, Framework kernel analysis, Android component kernel, data persistence.

Related learning documents:

③360° overall performance tuning

**Main skills: **Design ideas and code quality optimization, program performance optimization, development efficiency optimization

Related learning documents:

④ Interpretation of open source framework design ideas

**Main skills: **Hot repair design, componentized framework design, image loading framework, network access framework design, RXJava responsive programming framework design, IOC architecture design, Android architecture component Jetpack

⑤ NDK module development

**Main skills: **C and C++, JNI development, Native development tools, Linux programming, low-level image processing, audio and video development

⑥The necessary skills for architects to build foundation

**Main skills: **Architecture design, MVP, MVP and MVVM, modular and componentized architecture

⑦WeChat Mini Program

**Main skills: **UI development, API operation, WeChat docking

⑧Hybrid development and Flutter

**Main skills: **Flutter Framework architecture analysis, Flutter application startup analysis, Flutter message mechanism, Flutter Platform Channel mechanism, Flutter asynchronous Future mechanism, Flutter Isolate creation process, Flutter rendering mechanism, setState update mechanism, Flutter animation principle .

image

The above outline has corresponding PDF documents to help them learn and understand:

The full version of the information has been organized into a PDF file, and interested friends can click here to get it quickly! Hope to help everyone!

Guess you like

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