search
HomeBackend DevelopmentPHP TutorialHow to become an expert programmer

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.

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Explain how load balancing affects session management and how to address it.Explain how load balancing affects session management and how to address it.Apr 29, 2025 am 12:42 AM

Load balancing affects session management, but can be resolved with session replication, session stickiness, and centralized session storage. 1. Session Replication Copy session data between servers. 2. Session stickiness directs user requests to the same server. 3. Centralized session storage uses independent servers such as Redis to store session data to ensure data sharing.

Explain the concept of session locking.Explain the concept of session locking.Apr 29, 2025 am 12:39 AM

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

Are there any alternatives to PHP sessions?Are there any alternatives to PHP sessions?Apr 29, 2025 am 12:36 AM

Alternatives to PHP sessions include Cookies, Token-based Authentication, Database-based Sessions, and Redis/Memcached. 1.Cookies manage sessions by storing data on the client, which is simple but low in security. 2.Token-based Authentication uses tokens to verify users, which is highly secure but requires additional logic. 3.Database-basedSessions stores data in the database, which has good scalability but may affect performance. 4. Redis/Memcached uses distributed cache to improve performance and scalability, but requires additional matching

Define the term 'session hijacking' in the context of PHP.Define the term 'session hijacking' in the context of PHP.Apr 29, 2025 am 12:33 AM

Sessionhijacking refers to an attacker impersonating a user by obtaining the user's sessionID. Prevention methods include: 1) encrypting communication using HTTPS; 2) verifying the source of the sessionID; 3) using a secure sessionID generation algorithm; 4) regularly updating the sessionID.

What is the full form of PHP?What is the full form of PHP?Apr 28, 2025 pm 04:58 PM

The article discusses PHP, detailing its full form, main uses in web development, comparison with Python and Java, and its ease of learning for beginners.

How does PHP handle form data?How does PHP handle form data?Apr 28, 2025 pm 04:57 PM

PHP handles form data using $\_POST and $\_GET superglobals, with security ensured through validation, sanitization, and secure database interactions.

What is the difference between PHP and ASP.NET?What is the difference between PHP and ASP.NET?Apr 28, 2025 pm 04:56 PM

The article compares PHP and ASP.NET, focusing on their suitability for large-scale web applications, performance differences, and security features. Both are viable for large projects, but PHP is open-source and platform-independent, while ASP.NET,

Is PHP a case-sensitive language?Is PHP a case-sensitive language?Apr 28, 2025 pm 04:55 PM

PHP's case sensitivity varies: functions are insensitive, while variables and classes are sensitive. Best practices include consistent naming and using case-insensitive functions for comparisons.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.