android development interview 2019! Do you know all the necessary knowledge points of Handler in the interview? Download for free!

To put it bluntly, which industry is not eating youth? Regardless of the industry, most of the practitioners are betting their youth on tomorrow.

And the cruel fact is that no one’s job is irreplaceable. If you resign and the boss tries to keep it, it means that you are the cheapest candidate among the group of candidates to replace you.

The market is gradually maturing, and the prospects for programmers are indeed gloomy, which is not alarmist. But this statement is not objective, because most industries have this characteristic. The reason why I didn't see people from other industries jump out to talk about things, maybe it just shows that the programmer community has a high degree of introspection. Well, I just want to put gold on my face.

On the other hand, this also fully reflects the programmer's ability to build momentum on the Internet. For example, last year, the 996 project resounded on Github at home and abroad.

1. Be sure to solidify the basic knowledge of basic data structures, classic algorithms, Unix programming, program compilation and linking, and computer principles, which will affect your career development in the long run.

2. It is recommended to start with the C language, not only because many operating systems and network protocol stack open source codes are implemented by C/C++, but also because of the characteristics of the C language itself: as a high-level language user, you don’t need to pay attention to the underlying details, and you can see it intuitively. To the data flow. Moreover, C is relatively simple in grammar rules and can be applied in a short time. The most important thing is to follow the learning method of C/C++ and python, and you can know the performance status of your program's memory and other performance more clearly than learning python directly.

3. Don’t pursue the salary of your first job too much. You can even say that you don’t pay too much attention to the salary of the first two years. (Although I haven’t worked for five years, the meaning here is, don’t pay the extra one or two thousand monthly salary in the first two years. You don’t need to learn how to invest in stocks for financial management (but you must have a basic sense of risk). Many people around you who have only started financial management in their thirties have also realized the freedom of wealth. It is to do a few complete projects in a down-to-earth manner, learn the basic principles, and ponder the business process at the same time. Of course, big factories will have a lot of procedural chores. How to deal with them as soon as possible and not to consume their precious time too much is another subject.

4. Be bold and make your own voice more. Many newcomers in the workplace worry about their lack of technical depth when discussing projects, and their opinions are relatively superficial, which is wrong. To put it bluntly, we all come to work, making money is the kingly way, and face is the least important. Only by expressing more of your business thinking can you show your value. Many times you can discuss your ideas with others and quickly update your knowledge reserve.

5. Answer the main mechanical engineering background, let's talk about how mechanical (including electrical) engineering switched to an Internet company. Depending on the situation, if it is a bachelor's degree, it is strongly recommended to cross the test of electrical engineering, because many basic courses such as digital electrical modeling, electrical engineering, advanced mathematics and other important courses are studied, and the difficulty of postgraduate entrance examination is relatively small. If you have a master's degree in mechanics, it is recommended to learn all the algorithms and data structures first, not necessarily looking for an internship in a startup Internet company. You can't learn the complete project development process in one or two months. Try to join a team inside a school to complete a project. For example, Huawei will set up programming competitions in major colleges and universities every year. These can give you a comprehensive understanding of what skills are necessary to enter the software industry. For those who are already working, like me, I changed careers after graduation. Here is my learning process for reference only. Get started with the C language as soon as possible, and use the time off work to brush up the questions and type the code in the book on the algorithm and data structure provided by the link above. Then choose a popular embedded operating system such as freertos to familiarize yourself with the source code to clarify the basic principles of embedded system internal task scheduling, memory management, task communication mechanism, etc., and manually transplant a popular chip such as stm32f429, run the tick, and schedule tasks. OK. Why choose a popular chip, because all kinds of pit predecessors have stepped on it, forum consultation is quite easy. Then you can get started with the bible of advanced programming in the UNIX environment. Generally speaking, after learning the embedded system, and then learning the process communication and virtualization of the Linux system, you will find that it is much easier to get started than learning Linux directly. After having a basic understanding of unix system calls, it is not difficult to develop Linux applications. It is best if there is a combination of company business and practice. The next step is to look at your own development direction. If you want to develop in the Internet of Things, you can transplant the A core and have a deeper understanding of interrupt handling. If you want to engage in network or background development, you can be more familiar with the network protocol stack. I recommend the introduction to lwip, which gives the complete code implementation of TCP and UDP protocol specifications, which is of great help to understanding TCP slow start, congestion control, and socket programming.

6. Don't rush to choose management positions such as product managers. Only by following a few large projects and playing a few iterations can you have a clear understanding of the project landing process of the big factory and be able to talk to various old you bar code farmers. Wrangling. I don't understand the needs clearly, and the old employees play to death every minute.

7. It is also a digression. Although the salary was not high in the past few years, it is necessary to develop a good habit of saving money. When you come to Shenzhen penniless, live in a 900 farmer’s house, eat roasted meat in Guangdong, and look at the price of RMB 50,000 or 60,000 outside the customs, you will know how difficult it is to survive in Shenzhen. Only hard work is the basis for solving social problems. For example, people know whether they drink water or warm water, and many things can only be known after they have experienced various sorrows.

The author switched from Java development to Android development in 2013. He has been in a small factory, and he has also been to a large factory such as Huawei and OPPO. In April of 2018, he joined Ali until now.

I have participated in many interviews and interviewed many people as an interviewer. I know that most junior and mid-level Android engineers want to improve their skills. They often grow up on their own. The unsystematic learning effect is inefficient and long, and it is easy to encounter the ceiling technology stagnation!

I have compiled a list of the most systematic Android development mainstream technologies at the Ali P7 level, which is especially suitable for in-depth learning and improvement of small partners with more than 3-5 years of experience.

Mainly include Ali, and the mainstream architecture technology of ByteDance, Tencent, Huawei, Xiaomi, and other first-line Internet companies. If you want to learn Android development in depth and become a qualified senior engineer, you can bookmark these advanced Android technology selections

I have collected and sorted out the interview questions of Alibaba, Tencent, ByteDance, Huawei, Xiaomi and other companies in the past few years, and sorted out the requirements and technical points of the interview into a large and comprehensive "Android architect" interview Xmind (in fact, it is better than Expected to spend a lot of energy), including the knowledge context + branch details.

Java language and principles;
big factory, small factory. Android interview first see if you are familiar with the Java language

Advanced UI and custom view;
custom view, the basic skills of Android development.

Performance tuning;
data structure algorithms, design patterns. All of the key foundations and key points need to be skilled.

NDK development;
future direction, high salary is bound to be.

Cutting-edge technology;
componentization, hot upgrade, hot repair, frame design

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

When I was building these technical frameworks, I also sorted out the advanced advanced tutorials of the system, which will be much better than my own fragmented learning effect, visible on GitHub; "Android Architecture Video + Study Notes"

Of course, it is not easy to learn and master these abilities in depth. Everyone knows how to learn and what kind of work intensity is as a programmer, but no matter how busy the work is, I still have to spare 2 hours a week to study.

And mastering these abilities is not simple. Everyone knows how to learn and what kind of work intensity is as a programmer, but no matter how busy the work is, I still have to spare 2 hours a week to study.

Within half a year, you will be able to see the changes!

Guess you like

Origin blog.csdn.net/weixin_52746928/article/details/113105226