How to advance Android development?

Original address: Please scan the WeChat public account of stormzhang after the article - AndroidDeveloper


Many people have asked me the same question before, that is, I have been learning Android for a year or two, but I have encountered a bottleneck and feel that there is no progress. How can I improve?


I believe that many people have encountered such troubles, so today I will give you a systematic answer to the problems encountered at various stages as a past person.


beginner

Generally speaking, beginners need a book. Combined with the video, after reading the book, you are basically considered a beginner. It should be reminded that you must remember to knock all the demos in the book and run them yourself. In many cases, it is better to knock and knock Far better than running it yourself. At this time, everyone's learning ability is different. If you study full-time, it will take about 1-3 months.


Junior engineer

Generally, those who have worked for less than a year are considered junior engineers. At this time, they can basically master the basic knowledge, such as the use of the four major components, the use of common layouts and controls, some simple animations and custom Views, etc. This stage is relatively speaking The progress is quite fast. At this time, you only need to find a relatively reliable company, take the initiative to do things, take more tasks, don’t be afraid of hard work, and work more overtime. Although everyone is disgusted when it comes to overtime, the reality is that you don’t work too much overtime at this time. Do something, do you have to wait until you feel that your skills are not enough and work overtime? At this stage, you don't need to consider the balance between life and work at all, because at this time you can't talk about life at all. If you work hard at this stage, it is easy to quickly grow into an intermediate engineer.


mid-level engineer

This stage varies from person to person, but probably between 1-2 years of work experience. However, this stage is often the period when you encounter bottlenecks. During this period, you may have no problem with a single function in the app. You are also familiar with some commonly used open source libraries, and some popular open source libraries will also be used in the project. Wait, some common animations, custom Views and layouts can also be implemented quickly, and you may also pay attention to some common coding skills, but this time is no longer the stage where working overtime can greatly improve your technology. , this stage requires methods, practice and execution, so I have summarized the following methods on how to advance at this stage:


1. Keep blogging

Intermediate engineers are not just doing things and learning blindly. In fact, they need to summarize and summarize knowledge, and blogging is the best means. Persistence in blogging is actually a review and summary of your knowledge system. If you think you have mastered a certain field, but you can write it out and make others understand it, that is the real mastery. If you don’t say anything else, let’s just say that some big names in the IT industry generally have their own blogs. Those blog posts are the best testimony to your knowledge accumulation. For more benefits of blogging see this article " Why do I keep blogging? "


2. Participate in open source projects on GitHub

I have repeatedly reminded everyone that GitHub is a must-have for programmers. It gathers programmers from various fields around the world. On it, you can directly read the open source projects of top companies such as Google and Facebook, and you can see the style of top engineers. Here you absolutely It opens another world door, you can read the source code of Daniel, and try to contribute your own code, take the first step, participate more, and communicate more. You will become excellent.” In the same way, if you read more code from big cows, you will grow and improve without knowing it. GitHub is not only a business card, but also an advanced artifact!


3. Have your own complete work

Maybe we participate in the development of a lot of functions in the company, whether it is for company reasons or product reasons, more or less in order to catch up with the progress or to make profits, there are always some places that we feel dissatisfied, such as the design style is not enough Material Design, some wild ideas of product managers, and even some KPI-oriented function implementations, etc. I believe that everyone has this idea at this stage, and they feel that their app is not cool enough and is not called Android, so at this time, Take action, use your spare time to develop a complete work of your own, you can try the latest technologies and frameworks, use the tools you think are the best, and adapt to the style of Material Design you think, this process not only practice your previous If you want to try new skills, you have also gone through the conception and iteration process of a product, and even finally open-sourced it. This process is very valuable. You will encounter and overcome various problems, and you will grow up unconsciously. After open source, you will subconsciously have higher requirements for your code, and this work will also become a bonus item on your resume in the future. So if you haven’t passed this stage, start preparing and go through this stage from now on, even if you don’t have any creative idea, you can even imitate some apps from the open source community or the market. After all, you are using It is not for business, and this stage of idea is not particularly important.


4. Read some advanced books

Reading is a necessary process for progress at each stage, but at this stage you need to read some advanced books, whether it is about Java or Android, you need to read the following books:


「Thinking In Java」

Maybe you have read it before, but I believe that you must not understand some advanced knowledge. If you look back at this book at this time, it is estimated that it will be a gain.


「Effective Java」

This book is a must-have for advanced Java. It teaches you some Java skills you don't know, as well as some common design patterns and principles, and really teaches you how to write Java elegantly.


"Exploring the Art of Android Development"

This book is for senior Android engineers, and some of the knowledge points and skills mentioned in it are very good, which are necessary for Android advanced.


5. Read the Android source code and understand some advanced concepts

The Java language has advanced, and you also need to advance about Android. You can’t stop at the use of some basic APIs. You should study in a deeper direction, such as the internal operating mechanism of activity and view, such as Android memory optimization, such as aidl, such as JNI, etc., does not only stop at being able to use it, but understand its implementation principle by reading the source code.


senior engineer

I believe that if you have achieved the above aspects, plus the test of time, you are already a senior engineer, generally working for more than 3 years. But even if you become a senior engineer, you still have more to learn, such as technical aspects of networking, architecture, and server-related knowledge, you need to continue to learn and practice. But in addition to technology, the difference between senior engineers is that they also care about products and business. In fact, they have changed their thinking in terms of thinking about problems. They are not just thinking about problems from a technical perspective. They are no longer a simple Coding machines, the content of the work will spread horizontally to other aspects.


I have always said that technology is not everything. Even if you want to take a purely technical route, in the future, when you develop an architect or CTO, you must eventually participate in the product, manage the team, and understand the business, but the focus is different. Unless you want to be a coder for the rest of your life, don't hear anything outside the window, and just want to hide in a corner and type code quietly, you must develop in multiple directions. It's just that you don't need to think about these things before you become senior engineers. When you get to this stage, I believe you will understand what I said today. If you are interested, I will take time to write about the career development route of technicians in the future. .


Finally, a word for everyone, there are things to be done at every stage of life. What you can do now is to do the things you are doing right now. It is best if you can work harder than the people around you. Worry, what you want, years will give you!


WeChat does not support external links. You can click "Read the original text" to view it. If you feel it is helpful, you may wish to forward it and support it. Press and hold the QR code to subscribe.


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324029839&siteId=291194637