Programmer's thinking: 5 stages from novice to expert

Source: Internet
Author: User

Excerpt from: "Programmer's thinking Discipline: Nine lessons to develop cognitive potential"

Phase 1: Novice

Novices need recipes

---Novice needs a list of instructions.

The novice has little or no experience in the field of skill. The experience mentioned here refers to the promotion of thinking through the implementation of this technology. As a counter-example, a developer may claim to have ten years of experience, but in fact only one year of experience repeats nine times, then this is not experience.

The novice is very concerned about their success, not too much experience to guide them, they do not know that their actions are right or wrong. Beginners are not particularly interested in learning, they just want to achieve an immediate goal. They don't know how to deal with mistakes, so when they go wrong, they are very prone to panic.

However, if the novice is given a rule that is irrelevant to the situation, they will become able to do it. In other words, this form of rule is required: "When x occurs, execute y." In other words, a list of instructions is required.

Of course, the problem for beginners is that, for a situation, it is not known that the rule is the most relevant. When something unexpected happens beforehand, they are overwhelmed. However, there is always a solution to the rule that is irrelevant to the situation. The problem with the manifest (the rule unrelated to the story) is that you can't explain everything in 1510.

Rules will only let you start, not let you go farther.

Stage 2: Advanced Novice

Advanced Beginners don ' t want the big picture

---Advanced novice don't want to think globally.

Once experienced by the novice, people began to look at the problem in the perspective of advanced novice. Advanced novices are able to get rid of fixed rules more or less, they can try tasks on their own, but still struggle to solve problems.

They want to get information quickly. For example, you might feel this when learning a new language or API, and you find yourself quickly browsing through the document to find a method definition or a list of parameters. You don't want to go to the bottom of your roots or review the basics again.

Advanced novices are able to adopt recommendations in the right context based on past experience, but with difficulty. At the same time, they can begin to form some general principles, but not "the whole picture". They don't have a comprehensive understanding, and they really don't want to. If you try to impose a larger scenario on the novice, they may think the scenario is irrelevant to those principles and ignore it.

When the CEO of the Company holds plenary meetings and displays sales forecasts and figures, you may see this reaction, and many of the less experienced employees in this area ignore them and assume that this is not relevant to their own work.

Of course, this is very relevant, it can help you determine whether you can continue to work in this company next year. However, you do not see this connection, because you are not level enough, but at a relatively low level of skill.

Stage 3: Competent person

Competents can troubleshoot

---Competent person can solve the problem.

At this stage, practitioners can now build conceptual models of problem domains and use them effectively. They can solve their problems on their own and start thinking about how to solve new problems--problems that they have not encountered before. They began to seek and apply expert advice and use it effectively.

Unlike the higher-level followers who follow a subconscious reaction, the competent will explore and solve the problem, and their work Shing based on prudent planning and past experience. Without more experience, they will find it difficult to identify the details when solving the problem.

As you may see, people at this level are often considered "active" and "resourceful". They often play a leading role in the team (whether or not they have a formal title). They are good people on the team, both to guide novices and not to harass experts often.

We have reached this level in software development, but even at this level, people are still unable to apply the agile approach the way we want them to be-they don't have enough capacity to rethink and correct themselves. To this end, we need to make breakthroughs to reach a new level: proficiency.

Stage 4: Proficient person

Proficient practitioners can self-correct

---proficient can correct itself.

A proficient practitioner needs a holistic mindset. They will revolve around this technology, looking for and wanting to understand a larger conceptual framework. They will be very frustrated with the simplistic information.

Skilled practitioners have a major breakthrough: they can all correct forgotten bad job appearances. They will reflect on how they were done and revise their practices to expect better performance next time. At this stage, self-improvement will occur.

At the same time, they will learn from the experience of others. As a proficient, he is able to read case studies, listen to gossip about failed projects, watch what others do, and learn from the story carefully, even if he does not personally participate.

The ability to understand and use the maxim's experience as the human being learns from others is like a proverb or maxim, which is the basic principle that can be applied to the present situation. Experience is not a list of instructions, they must be used in a certain context.

A proficient person knows where there is an error in the pit, or, more precisely, where it is most likely to go wrong. They have the experience and the judgment to understand what this maxim means in a situation. It turns out that understanding situations is the key to becoming an expert.

Similarly, people at a proficient level can effectively use software patterns, but this is not a low skill level that must be mastered. Savvy people can take full advantage of thinking and feedback, which are at the heart of agile approaches. This is a huge leap forward in the relatively early stages. People in the mastery stage are more like junior experts than senior ones.

Phase 5: Experts

Experts work from Intuition
---experts work intuitively

Experts are the main source of knowledge and information in various fields. They are always looking for better ways and means to do things. They have extensive experience in selecting and applying these experiences in the appropriate context. They wrote books, written articles, and made itinerant speeches, and they were contemporary wizards.

Experts work on intuition, without justification. This brings some very interesting effects and raises some important questions-what exactly is intuition?

Although the experts are very intuitive-this is amazing for the rest of us, they may be completely unclear on how to get the conclusion. They really don't know, just "feel right".

For example, doctors treat patients with a doctor. At first glance, the doctor said: "I think the patient has Blosen-platt syndrome, and it's better to do some in-depth examination." "The patient was examined and the doctor proved to be correct," he found. You may have to ask, how did the Doctor know? But the doctor may answer: "He doesn't look very well." ”

Yes, the patient just looked "uncomfortable" and somehow, with the help of a variety of experiences, judgments, memories, and all the other senses in the doctor's brain, the doctor combined the delicate clues of the patient and came to the conclusion of the diagnosis. Maybe, just because the patient's skin is pale, or the patient is lying in a posture that explains the problem, who knows?

However, the expert knows. Experts know the unimportant details of those things, the very important details of those things. Perhaps not consciously, but experts know that attention should be paid to the details and can safely ignore those details. Experts are very good at doing targeted feature matching.

Programmer's thinking: 5 stages from novice to expert

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.