What language is good for Android development! If you want to find a job, it’s too late if you don’t read this information! Share a little interview experience

Preface

The programmer industry is changing with each passing day. The technology system is updated at a fast pace. New technologies and new frameworks are emerging in an endless stream. All technologies are like a bottomless pit. The more you learn, the more you don’t understand, and the more you don’t understand. Learn more.

Therefore, once you choose this industry, it means that you must continue to learn to keep up with everyone’s footsteps. To become a good programmer, you need to use the right methods and set the right goals to continue. To learn.

As a very enthusiastic old driver who has been blowing water in various technical groups for many years, he always pops out to help solve problems when someone asks questions. Therefore, many friends in the group often ask me what should be done In this way, I learned a technique, and everyone is very kind.

Wherever you need help, I will be there. So, in order to help some students solve some learning puzzles, I will share and discuss some of my learning experience today. If you have any comments or suggestions, please feel free to comment Leave a message in Ha.

Is embedded development difficult?

After this exchange with classmates, I also learned a lot. Because I don't understand a lot of embedded aspects, I can count on learning.

From my personal point of view, combined with previous learning experience. I think embedded development is Javastill a bit more difficult than soft opening on the Internet (such as back-end). For example, we are engaged in Javadevelopment. After all, it is basically user-mode things, but many embedded things have penetrated into the kernel mode . So there must be some difficulty, which is manifested in several aspects:

  • First of all , it is embedded at the bottom level, and both software and hardware must be understood, and the requirements for capabilities are much higher;
  • Secondly , the learning threshold of embedded development is also higher, and like Linuxthe development process under the platform, many people are not used to it and can't figure it out;
  • Furthermore , the positive feedback of embedded learning may be slow, especially in the early learning stage, which leads to a lack of sense of accomplishment and can't stick to it, so it is often abandoned.

But having said that, doing IT is like this. The more you go to the bottom, the higher the training of human ability, so for ability, it is upgrading , so on the contrary, if embedded is done well, I think it will be the Internet problem It's not too big, it will be a dimensionality reduction blow .


Overall learning ideas

Generally speaking, embedded learning can be divided into three major stages:

First, the basic learning stage , which includes general programming foundation (C language, data structure/algorithm, operating system, computing network, computing group, Linux system foundation) and basic hardware foundation . A solid grasp of these two foundations is the follow-up The source of power for development and continuous progress.

The second is the embedded application programming stage , or the system platform programming stage. Because I usually rely on a specific embedded platform and a specific embedded operating system, I am familiar with the programming methods and processes on this system platform. Take a common ARM+Linuxplatform as an example, you need to master several major aspects from memory management to multi-task programming, file I/O, network programming, and even graphical interface programming.

The last step is to go deep into the low-level embedded development stage . The most common ones are kernel development and driver development. These all belong to the category of kernel development, so you need to learn and understand the internal mechanisms of the operating system. On this basis, you need to master the migration from system to The details of kernel development and driver development are the road to godhood.

The general idea is this, let’s take a look at the detailed learning route and knowledge points.


Learning route + knowledge combing

It took a long time to organize this detailed brain map of the knowledge route. Of course, due to limited time and abilities, after all, the entire embedded system is too large. Including my embedded classmates, it is impossible to understand everything. Some things may not be covered, and the shortcomings are still small. Partners communicate and supplement together, improve and progress together.

img


Recommended books

Finally, according to the overall learning route, recommend some corresponding classic books:

img

to sum up

First of all, I feel that my own foundation is not enough. Major manufacturers seem to like to ask about these underlying principles.

Another part of the reason is that the information has not been read. On the one hand, I can easily deal with it after a few days before the test with that information (I still want to thank the information, really good), so I feel good about myself. The information didn't go into further.

The previous preparation only involved Java, Android, computing networks, data structures and algorithms, and it was difficult for interviewers to investigate other basic courses.

The next step is to check the omissions and fill in the vacancies and conduct targeted reviews.

In the end, the set of materials must be read all this time, it is really too comprehensive, and all the knowledge points are covered, and almost all the knowledge points I encountered in the interview are there! Here is also free to share with you, I hope you will not make the same mistakes as me! ! ! Be sure to finish it!


How to get: Click on my GitHub

82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)

Guess you like

Origin blog.csdn.net/m0_53537576/article/details/113093272