Four realms of programming capability

Source: Internet
Author: User

One of the basic supporting subjects in the study of human psychology is the analysis of human subconscious and consciousness. Freud was the first person to be able to clearly identify and describe our "field" of mental activity. In the early days of his famous life, he pointed out that our consciousness was divided into "subconscious", "pre-consciousness", "consciousness".
We can describe ourselves as an iceberg if we want to be clear about how they relate to our thoughts, feelings, perceptions, judgments, and motivations, which are key factors in our daily lives and professional lives. The tip of the iceberg, the only part that can be seen from the surface of the water, can be thought of as our consciousness. It is logical, organized, and we can control it, but this part is very small. This huge underwater part is not our consciousness. They are non-organized, illogical, and unrelated, but they can determine our behavioral characteristics.
Modern psychology has been trying to analyze how much a person can master a skill by observing how deep a person can play on the iceberg. People describe the ability of a person to reach four stages. In this article, I will try to apply this classification to the skills that we apply every day, which is programming.


Stage one: unconscious, incapable

John is a young web developer. He used to be a law student, but he thought his money was out of the way, so he turned his eyes and made a career change decision. He used to help his friend with the computer and was very successful, so he thought it should be easy. He quickly looked for some places where he could study the work (which, of course, was near his home). Six months later, he began to claim to be a web-site expert, and his CV already lists a number of programming languages, applications, and development platforms.
John, in fact, is a cold-blooded "copy/paste" person. He thought he could successfully display a Windows prompt box, which means that JavaScript is already mastered. Php? Simple: He successfully installed the WordPress. Linux? He started the Ubuntu system from LiveCD, and he was able to build an Apache load Balancer Cluster Server. His consciousness told him that he had nothing to know.
The problem is that John didn't realize he could learn more, so he simply stopped learning. He has been in a bubble, and many of the online forums and mailing lists he visits regularly tell him that his problems lie in his superficial knowledge, but no one can pierce his bubbles. And, sadly, his ability in the forum is higher than that of you and me.
John was unconscious of incapacity.


Stage two: conscious inability


Mark is a maths teacher. He works at a university in a small town, and he wants his university to hold at least five times times the current number of databases. He knew that his university had lagged behind other research institutions in the field of technology, so he decided to do the work himself. He wants to build an online platform that can share their courses in the community.
Mark is a natural logical type of thinking. He knew that in order to achieve this, he needed to do research and gather information. His search began with Wikipedia, but eventually he realized that there were many teams in the world who offered open source solutions to his problems.
He chose one of those projects that would best satisfy his needs. He began to read the documents and manuals found on its website, and finally he downloaded the source program. His excitement gradually receded as he saw a ' database connection error '. He tried and tried, not even three times to check his every step, or unsuccessful. Mark is not annoyed because he knows he is not an expert in this field.
He began to turn to its mailing list platform, where he described his problems in the most precise language he knew (in fact, few). He reminds everyone that he doesn't know what he's doing, so he wants to get more documents to read, or people give him hints about that. He didn't have to wait a long time to get the solution because he took the right approach.
Mark is conscious and incapable.


Stage Three: conscious ability

It has been two years since he picked up his first HTML book. It is clear that this is a no-go, and for Ed, the question of everyday thinking is how to improve the profession that you love. A few months after he picked up his first book, he got his first job as a freelance worker, and he put a lot of enthusiasm into it, no matter how low the job was, how basic it was (even for his level).
He is convinced that one thing: the best way to learn is to persevere, repeatedly defeated, repeatedly defeated and repeated war. He often studies how to perform a function in the best possible way, because he knows that the best code is not available for the first time. He had to optimize the code, and he reviewed it over and over again. He has revised it again and again.
Later, he wrote himself a program of about 30 to 40 lines. A few days later, he could not help feeling disappointed because he found a more convenient and concise program on the Internet, with only half of the code line. He was eager to know when he could easily write such high-quality code. However, after a period of thought, he began to analyze his own code. He knew he had to rewrite the code, or he wouldn't sleep soundly. He didn't want to copy and paste them.
Ed is on his way to becoming a good expert, but he will not add this title to himself, he is willing to wait.
Ed is conscious and capable.


Stage four: Unconscious ability

This is the ultimate stage of programming level. It is not only the result of accumulation of knowledge, but also a series of logical rules in a few years slowly engraved into a person's mind results.
When we face such a person, we have to sincerely admire him for such a complex problem can be more so easy to deal with. This programmer looks like a solution that can sniff out problems rather than think about them.
Optimized writing, maintainable, secure programs, application of various design patterns, use of the right combination of development tools, which are automatically reflected in his work. Such people can easily use multiple languages to work on a variety of operating system platforms.
Conclusion
After reading the above example, I hope you can be as convincing as I am: This classification pattern of psychology is effective in our particular field of specialization.
It is worth mentioning that some authors put forward the fifth stage: mature and capable, defined as having the ability to educate and pass on knowledge that he has learned, or even is unaware of. We can see these traits from some of the most talented people who can teach and explain (even in the halls), which are clearly acquired skills.
This article goes from: Foreign periodicals IT reviews
Website: http://www.vaikan.com/the-four-stages-of-programming-competence/

?

Four realms of programming capability

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.