Many people ask me how to become an expert-level programmer. We don’t have a unified model for this yet, but I still want to share some of my experiences with you. How to become an expert programmer depends largely on the software you develop and the industry you work in, as well as the tools your company uses, etc. For some of the methods discussed in this article, you can choose the one that suits your situation. This article is just my personal opinion. If you have any additions or suggestions, please feel free to let me know.
Another important point to note is that being an expert is not the same as being considered an expert. Although many people have the reputation of being experts, they are not. But if people believe he is an expert, he can make money doing it. In addition, although some experts are not recognized, if you are really an expert, you can definitely prove this through your own actions: gold will always shine. However, this aspect is obviously beyond the scope of this article. This is another story about personal branding.
What is an “expert” and how long does it take?
Before I discuss how to become an expert, give me 30 seconds to explain what an expert is and how long it takes to become one.
3months? 3 years? neither! According to the book "Outliers" written by Malcom Gladwell, it takes an average of 10,000 hours to become a true expert. Has your jaw dropped? Yes, you read it right, it’s 10000 hours! In other words, if you have 10 hours a day, it will take 3 years; if you have 5 hours a day, and one year counts as 200 days, it will take 10 years. Wow, 10 years! ! !
According to this statement, with 3 years of experience, I may be qualified as an expert or at least a senior developer. But when I have 10 years of experience, I dare not consider myself an expert - because I know that there are still many things that I need to know but don't know yet.
In addition, this industry (JavaEnterprise Development) has also undergone great changes in these 10 years, and the skills I am used to using have gradually become outdated. So, even if you are already an expert, you will become obsolete and need to start learning again.
There is another point: it is impossible for us to become comprehensive experts. In other words, you may be better than the staff B in a certain skill, but the staff B may be better in another skill Better than you. That is, we cannot have all skills better than others, nor can we all have skills inferior to others. When three of us travel together, we must be my teacher. You can always learn from others what you don’t have or lack. I've come across quite a few developers who speak as if they know best about everything, but that's clearly not the case.
This is also a way to identify rookies. Only newbies are so convinced that they know everything that they can argue with each other online or in the office to the point of screaming. What they say is usually very absolute, such as "this is always better than that", "this is how the problem should be solved", etc. Experts rarely say that. Because they understand that nothing is absolute, and many things often depend on the current form, the skills of developers, the tools chosen by the company, company policies, personal preferences, etc. Only inexperienced developers believe that the world is only black and white. Experts understand that in addition to black and white, there are also gray and various other colors.
How to Become an Expert
For most skills you need to learn, the following four steps (repeat up or down) will help you become an expert:
Learn it
Do it
Discuss it
Teach it
Learn it
Before you master a certain technology, you must first understand its theoretical knowledge. You can learn through books and tutorials, or through classroom education.
Do it
Once you have learned the theoretical skills, you can apply these techniques in real life. Doing this will let you know which of the theories you learned are correct and which are wrong. Many theories learned in college cannot be applied to reality, or may not be suitable for your current situation.
Discuss it
After using technology for a period of time, you will find that you can already use it flexibly to solve problems, then you need to discuss the technology with other experienced people. You can discuss the best ways to apply these techniques, where the theoretical limitations are, what else can be added, etc. All in all, you need to discuss how to develop the technology further.
You can also learn a lot from other people through discussion, even if you thought you knew everything before.
Teach it
Teaching your skills to others is also a good way to find out and fill in the gaps. There may be many things you just know to do but never think about why you do it. Having to explain these behaviors forces you to think about the reasons.
In addition, there may be some technical points that you don’t need to master because you don’t need them (for example, a certain point in the Webservice specification). Similarly, teaching forces you to master these bits and pieces of content and become more and more professional.
How to become an expert-level programmer
The above is how to become an expert. Below I will discuss how to become an expert-level developer.
As a developer, most of us work in a certain industry and use a specific platform. If you're constantly switching tools and industries, you'll never become a true expert. Maybe you will become a kind of "snake oil", and of course this can be very useful in some situations. But if you have never had a professional platform and industry, then you need to use some snacks.
My career started in 1998. At that time, I was working on webapplications. Then I found that I was always changing tools, which meant that I didn’t have a good one. tool. All my time was spent learning new tools, which left me feeling exhausted. Then, I decided to focus on an object-oriented language - Java. At that time, .NET technology had not yet come out. Since 1999, I have only been doing Java.
On your way to professionalism, you must first choose a platform, or it may be an industry. The industry is less important, but having knowledge of the business field can enhance the selling point of your resume.
When learning the platform, you need to first choose a programming language, for example, Java. In Java its platforms are divided into two: Standard Edition and Enterprise Edition.
Once you master the platform, you can start to learn platform-independent technologies, such as design patterns, distributed system design, architecture, etc. You should spend more time learning these skills because they are more transferable to other new technology platforms.
In the future, you may leave software development and switch to other business areas, such as project management or architect, etc. But what you need to know is that once you no longer use this skill, you will no longer be called an expert in this area.
Here’s a diagram of how to become an expert developer. Start at the bottom and work your way up step by step. The blue layer is the platform independent layer. The other colors are platform special layers. If you don't find your platform, you can add it yourself.
how-to-become-an-expert-developer
Specific personal information, please forgive me for not being able to describe it accurately one by one.
Then what if I don’t know what technology I should learn? There is also a way to see job advertisements. See what tools and techniques they mention most often? You can also read online software magazines. See what technology they talk about the most? Don't forget the forum. What technology gets the most questions? And, what technology is everyone talking about and learning about in droves? In other words, this is the technology that will be hot tomorrow!
Get freeLAMPBrothers originalPHPtutorialCD/"DetailsPHP" essential version, please contact the official website customer service for details:
http://www.lampbrother .net
PHPCMSSecondary developmenthttp://yun.itxdl.cn/online/phpcms/index.php?u=5
WeChat developmenthttp: //yun.itxdl.cn/online/weixin/index.php?u=5
Mobile Internet server-side developmenthttp://yun.itxdl.cn/online/server/index. php?u=5
JavascriptCoursehttp://yun.itxdl.cn/online/js/index.php?u=5
CTOTraining Camp http://yun.itxdl.cn/online/cto/index.php?u=5
The above has introduced how to become an expert programmer, including all aspects. I hope it will be helpful to friends who are interested in PHP tutorials.