Take you to a comprehensive grasp of advanced knowledge points! Share some experience with Android beginners, with an annual salary of more than 800,000!

Preface

From graduation to interviews, there are only a few companies. The first few times of the order went smoothly, and I gave me offers when I went to the third one! In the first two job hunts, I didn't consider what I needed in the future and what my future plans were. As long as I have a job, my salary will meet my requirements! So choose the salary range on Zhaolian Recruitment, just take a meal and wait for the interview call!

I have been doing Android development for two to three years. The task of the work is to write some interfaces, the simple use of RecyclerView, the web framework is packaged by others and used directly, and then it is to integrate some third-party sharing and payment! It can be said that there is no technical improvement at all. Compared with people who have been working for about a year, they have a few more project advantages! So this time I came out to find a job and expected 15K, and I was very flustered when I said that!

Let’s talk about how to learn more

The first thing to say is that the learning of technology is a process of accumulating and changing from quantitative to qualitative. There is no way to make you a big cow in a short period of time. The so-called one-step ascent is reserved for those legendary geniuses, but geniuses. After all, it is only a very small number of people.

Most of the big cows still rely on perseverance and correct learning methods. Through continuous hard work and continuous learning, they have spent a lot of energy to achieve their current achievements.

Therefore, when you finish reading the official documents, you are actually only taking a small step. To become a real big cow, you need to continue to work hard in your subsequent studies.

So how do we proceed to the next step of learning?

Then we have to talk about the actual project

Our ultimate goal of learning a technology is to apply it to actual projects. No matter how powerful a technology is, if there is no way to apply it to actual projects, its meaning and value will be very limited.

Moreover, the human brain is not comparable to a computer, and it will be forgotten. If you do not pass a large number of actual projects, you will quickly forget a lot of knowledge points, at least I am like this (can anyone tell me how to save a bad memory!!) .

So after reading the official documents, we must continue to consolidate our knowledge points through a large number of actual projects. At this time, many of your knowledge points cannot be fully understood. Only through project experience and analysis in the pit Only by growing up in problem-solving can we fundamentally understand some technical concepts.

Experienced developers should have more or less such experience, that is, some concepts are not very understandable at the beginning, but in the process of project after project, you will find that you understand the principle unconsciously, yes, This is the feeling!

For actual project combat, I actually don't have much skills. I just do it in one sentence, but in this process you must think more about why you write it, why you do it, learn to understand the principle, and pay attention to the essence.

Let’s talk about reading technical articles

In such an era of information explosion, it is very easy to find dry goods articles of a certain technology from the Internet, various technology platforms (csdn, cnblogs, oschina, Android bus, segmentfault, etc.), each Wechat platform official accounts like this are a good way to get dry goods information.

Although the official documentation is amazing, there are still many knowledge points that we may not discover because they are often hidden in deeper API documents, and the large number of APIs makes it difficult for us to read all API documents. Still use it as a lookup tool.

In my opinion, a programmer who does not actively pay attention to various technical platforms to obtain technical information is not a qualified programmer,
so every morning I spend at least an hour to obtain useful information on various technical platforms I follow.

  • On the one hand, you can find related technical dry goods articles, and consolidate and check your own knowledge points by reading these articles. After all, technical learning is not only the most primitive technical points in the document, but also the design of various architectures. , The use of tools, the realization of functions and the application of solutions, etc., through various articles on these platforms, you can make your own knowledge system more perfect.
  • On the other hand, as a developer, we need to understand the latest technology trends through these platforms and pay attention to the development trend of technology. After all, the technology is updated very fast, and the transformation of the technology ecosystem will lead to the elimination of a certain technology at any time. (As a layman, I’m here to make money, so it’s essential for me to make technical reserves based on technological trends.) In other
    words, programmers are really a group of friends who love to share, so the current technical articles are really There are too many, too many, dazzling.

We have to screen and read properly according to our own situation to improve learning efficiency.

In my case, I divided technical articles into four categories based on my understanding:

  • Knowledge point explanation class : generally introduces specific knowledge points of a certain technology.
  • Function realization\Solution category : It is more targeted, generally it is a specific function or function realization in a specific scenario or program application including bug solutions, etc. The article generally contains a certain thinking analysis and specific Code.
  • Source code\framework principle analysis class : Disassemble, analyze and explain the source code for each technical point or framework.
  • Learning methods/experience summary class : mainly introduces some learning methods and summarizes and analyzes the problems encountered in project development.

For knowledge explanation articles, if you have learned to read official documents, it is easy to judge whether it is just a document porter. If it is a document porter, I will quickly skip it and focus on whether the author has added himself Analysis and perspectives. If it is the author's original, then I will read it carefully to see if there is any deviation in my understanding of a certain knowledge point and if there is any omission.

Articles such as function implementation\solutions have many scenarios. My focus is on its implementation and analysis ideas, so as to draw inferences from similar scenarios. For some common functions or solutions, I will carefully read and study their code , The rest is mainly for marking and collecting, leaving an impression in the brain, creating an index, and checking it when needed. For scum like me, I only remember the title after a period of time when the scene is not commonly used. Up.

I will read articles about source code\framework principle analysis repeatedly, combined with the source code for verification, and regularly review or summarize articles, and keep deepening the impression in my brain, because the understanding of the principles can help me better when I encounter project problems. Find out the best solution faster and better.

The number of articles on learning methods/experience summary is not too much compared to other types of articles. Generally, I will read it very carefully. There are a lot of detours. Of course, this kind of article will have a strong subjective consciousness, and we need to distinguish by ourselves what is really useful.

Someone may want to ask, if you spend an hour reading technical articles every day, the articles will be messy. . .

This is indeed the problem. After all, the capacity of our brain is limited. Just like our LRUCache caching strategy, the most commonly used information will always be kept in the brain, but the content that is not concerned for too long will soon be discarded and forgotten ( Legend has it that there are such a group of "hypermemia" patients in the world who have no ability to forget. I can remember everything I experienced personally, and I can be specific to any detail, I am envious of it!).

Regarding the problem of forgetting, what we can do is to do a good job of collecting, but there are too many technical platforms. When you need to search for articles, you will find that you can’t remember which platform you are collecting. Then one platform is one platform. The search efficiency is definitely low.

So we can use cloud notes or github to organize the articles that you think are excellent and need to be collected into one place. According to the classification of the articles, create different link indexes, and give the title of each index that you think is important. Keywords, you can review the favorite index every time you add a new article, so you can find it in the fastest way when you want to find an article.

I know how to read documents and read so many technical blogs, don’t I have to learn in other ways?

The answer is definitely no! ! !

Although there are a lot of dry articles in blogs, in most cases the knowledge system is relatively fragmented. Compared with books, it is not so systematic, and compared with video tutorials, it is not so intuitive, so aside the documentation and For blog learning, we also need to learn additional books or video tutorials according to our own situation .

Some people feel that they are always unwilling to read a book. My method is to set a small goal for yourself when reading a certain book, such as reading at least 20 pages of the book every day, so that you don’t learn too much every day. It's easy to get anxious. Of course, you can set the daily reading volume according to your own situation. If you calculate according to the daily reading volume of 20 pages, a 500-page book will be finished in less than a month.

Some people think that it takes too long to watch video tutorials. In fact, it is true. Some blogs can read content in more than ten minutes, and it often takes 1 hour to put it in a video. But the advantage of video tutorials is that you can see real-time Some concepts are more intuitive and easier to understand.

Of course, if you are playing a local video, you can use a player such as potPlayer that supports accelerated playback of the video without changing the video sound to speed up the viewing of the video.

At last

If you see this and think the article is well written, give it a thumbs up? If you think it deserves improvement, please leave me a message. Will definitely inquire carefully and correct the deficiency. Thank you.

Finally, for Android programmers, I have compiled some information for you, including not limited to advanced UI, performance optimization, mobile architects, NDK, hybrid development (ReactNative+Weex) WeChat applets, Flutter and other all aspects of Android High-level practical technology; I hope to help you, and save everyone's time to search for information on the Internet to learn, and you can also share dynamics with friends around you to learn together!

Friends who need information can click on my GitHub to get it for free

9B%EF%BC%9F%E5%A6%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/a132445/article/details/112951644