beginning
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 directly learning python.
Where should Android programmers who have worked for 2-5 years go?
Direction: In-depth study of Android current popular technology; rebirth from the ashes
With the popularity and development of smartphones represented by Android, which accounts for 80% of the market, the Internet industry has entered the "mobile" era in full swing. But in recent years, with the gradual maturity of the market, the entire mobile Internet industry is in a stage of declining growth and fighting over inventory. Faced with technological changes and fierce competition. The industry has increasingly higher requirements for mid- to high-level mobile developers, and users have higher and higher requirements for product quality and experience. So how do we break through the bottleneck? A senior NetEase architect told us: Learn the most advanced and popular technology, keep up with the changes of the times and change yourself
Today I will share an Android in-depth learning road map compiled by a senior expert from Netease, and free learning materials at the end of the article. ( Route map, can be saved and saved )
1. Learn to apply other people's good architecture ideas
When the advanced technology is not in place, we must appropriately study and refer to the good architecture ideas of others and apply what we have learned
- Architect basic UML modeling
- Analyze the source code of Android system; such as Binder principle and architecture design
- EventBus architecture
- Plug-in architecture; custom framework standards; build a plug-in framework
Note: Learn the internal architecture of major Internet companies and master the latest architecture experience
2. Break through the native layer bottleneck
Now it is the AI era of artificial intelligence, so we need to learn the preface technology to grasp the opportunities in the future Internet of Things. Keep up with the trend
- artificial intelligence
- Smart home
- Audio and video development and application of several popular apps such as Douyin, iQiyi, Douyu, and QQ
- Opencv face recognition location and tracking
- AS Compiler SO Principle
Note: These can be said to be the points that you need to master if you want to become a low-level development engineer
3. Master the latest adaptation technology of learning custom controls and Android 9.0
- Large-scale project screen adaptation
- UI drawing process
- Custom View
Note: Learn the latest technology of Android9.0, Liu Haiping adapts to a higher level of native experience
4. Performance optimization
- Crash optimization
- Caton optimization
- I/O optimization
- Network Optimization
- UI optimization
- Memory optimization
- Start optimization
- Storage optimization
- Power consumption optimization
- Installation package optimization
Note: How to optimize performance in the era of 2019. For some people like entering large-scale BATJ, it is very helpful to increase the running experience interview after APP posting. It is very helpful to answer the answers like clouds and water.
V. Understanding of the mainstream hybrid development technology of the two platforms of weex and Reactnative
-
weex
-
ReactNative
-
Create APP combat
Recommended learning materials
- Brain Mapping
Due to the length of the article click on the link to see the problem and obtain detailed study notes articles: GitHub
%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)**