Android development engineers need to learn accumulation, need to hone in the project, the whole process is also a process of accumulation. When I can organize all relevant knowledge together to make use of, realize and make innovation through thinking, in fact, the whole process of Android learning is relatively successful.
Introductory learning stage
First of all, the official documents are certainly the best textbooks. Some online cases shared by the gods can also be read more, while learning while practicing. Assuming good English and some Java and XML basics, follow the official Training to get started. If English is not very good, but also to solid basic skills, the programming language practice. Also need to find more information and do more exercises, at least to master the basic knowledge of Android development, such as the use of four components, create Service, layout, simple custom View and so on is the most basic requirements.
Maybe the early look at everything feel very difficult, but do not be impatient, slowly, the lower base determines the superstructure. Early to learn steady, late to go far. Here are a few recommended books for beginners: “The First Line of Code”, “The Art of Android Development”, “The Authoritative Guide to Android Programming”.
Learning methods
- Practice and think
For newcomers who have just stepped into this industry, I think the best way to learn is to practice more and think more, so as to break through themselves in learning and accumulate experience. For newcomers, the early stages of Android development are a constant struggle, so the fastest way to grow is to fight various bugs and keep honing your skills. The blending of theory and practice is something you have to find out for yourself.
- Write the log
There must be a lot of mistakes in early learning. Recording and summarizing can help us solve problems quickly. Writing a log is a way of recording our daily learning. Writing a log is a review and summary of the knowledge system. It is not so much journaling that helps us learn as journaling about problems.
Overall, there’s still a lot for junior Android developers to learn, so stay in the right frame of mind, prepare for the long haul, and take it one step at a time.
Intermediate learning
Android developers at this time already have some ability to look at the essence of technology, and have a certain understanding of learning Android development. At this time you can put your eyes on other sharp drilling, hot technology, expand your knowledge. Areas you want to try but are not familiar with can also be approached.
In the middle learning stage, there is no need to repeat too simple work, we need to improve the ability to solve problems. Forming a thinking method and knowledge system of our own is the most important task at present, which is also a necessary condition for us to become senior Android engineers.
Learning methods
- Participate in open source projects
Starting open source projects or contributing to open source projects can greatly improve our technical level. Many people have such a feeling, that is the key imagination is often a kind of inspiration, think about it that moment is like getting through the ren Du two veins, all of a sudden practice jiuyang magic. This kind of inspiration is rare in Android development learning. I myself have participated in many projects in the open source community, and obtained many useful components. I am the beneficiary of open source projects. Therefore, I recommend you to participate in open source community activities, and I believe you will also gain a lot. For example, GitHub is a good open source community. In the project, GitHub gathers programmers from all fields around the world. They can directly read the open source projects of top companies like Google and Facebook, and it is very convenient to read others’ source code or contribute their own code.
- Read Android source code
The understanding of Android source code can help us to further study, to lay a solid foundation for our future ability to improve. Read more excellent source code, it is possible to repeat the good again. Can not always stay in the use of the basic API, should go to a deeper level of research, such as activity, view of the internal operation mechanism, Android memory optimization, JNI, etc., in addition to flexible use, should be able to read the source code and understand its implementation principle.
Advanced learning
The most important part of advanced learning is “better”. To some extent, no matter how well completed a project is, there will always be a better design. At the stage of advanced learning, no matter how well the project is completed, we can ask again whether there is a more perfect design idea. Although engineers with extensive development experience already know where the bottlenecks are and what needs attention before a project even begins, creating better solutions is always the goal of senior engineers.
Learning style
- System to learn
Understand the system, learn to use systems thinking is more conducive to solving problems. For example, FB’s Buck build, how many technical teams in China made build optimizations based on it (and got promoted). The most commonly used architecture in Android is MVC, MVP and MVVM. However, if these ideas are mixed with modularity, hierarchy and componenzation, it is not such a simple thing. We need to learn more knowledge of Android development to know the deep principles contained in it.
The last
In addition to the learning experience mentioned above, I also summarized some advanced practical technologies of Android advanced UI, performance optimization, mobile Architect, NDK, hybrid development (ReactNative+Weex) wechat applet, Flutter, etc.
If you want to become a senior Android engineer, but lack a complete system of learning methods, you can check out the **Android learning notes, in addition to Android development experience and learning notes, there are learning videos and BATZ interview questions. Students who need Android architecture video +BATZ interview PDF+ study notes are welcome. **
Ability represents the present, potential determines the future. The journey of learning is always hard, but fortune always favors the hardworking child.