There may be many friends who will enter a confused period after doing technology for many years. They are very familiar with the business logic they are responsible for, but they just deal with various requirements and bugs every day, and they always feel that their ability is not greatly improved. Although I am an indispensable member of the company, I am worried that I will not find a better job if I leave the company.

1. Improve general technical capabilities

On the one hand, common technologies such as data structure and algorithm, computer network, operating system, computer system structure, etc. are of great help to the deep understanding of technology, and on the other hand, such technologies are common when switching between different languages and technical directions.

2. Enhance soft power

Soft power is actually a universal skill, even more so than the first one.

Good communication can shorten the length of meetings, save the cost of communication between each other, and make teamwork more pleasant. Good document presentation skills can save a lot of repetitive communication.

I know how to plan my time, so that I can finish tasks in a more orderly way when I go to work, and I can plan my spare time study efficiently after work.

Be able to reflect on why a five-hour task turned into three days; Why should this requirement be done this way? Is this the most reasonable way to do it? Is there a better way?

More thinking about the problem, the business, and yourself will help you better use and display your skills.

3. Pick a niche area and go deeper

May be a better way to learn is breadth-first traversal first, namely rough know yourself in the field of various aspects knowledge, then the depth-first traversal, namely to choose a interest or feel worthy of further direction to dig down, wait for study about the direction, to go deep into the next direction of technical knowledge.

As business logic matures, user experience becomes more and more important, and a sudden software crash or a loading icon that lasts five seconds is a hindrance to high quality applications. Rendering speed, network request experience, I/O optimization, thermal repair technology, power consumption optimization are all important points for performance optimization. There are so many different areas of Android right now — reverse security, audio and video, Internet of Things, SDK development, etc. — you can pick one of these areas and go deeper. From the perspective of the historical background, in the information age, users receive and like the forms of information transmission all the way from text, pictures, audio and video to the current live broadcast. Audio and video would be a good choice. Which will involve audio and video encoding and decoding and audio and video synchronization processing, special effects processing, synthesis and other technologies, for Android underlying source code understanding is also very helpful.

If you are engaged in Android development, have more than 1 year working experience; If you want to learn more about UI/NDK development, performance optimization, architecture design, Flutter development and other technical points, I have some videos explaining the progress of Android to help you. You can provide them for free. If you need to comment or send a private message.