Why it's so hard to be a programmer

Source: Internet
Author: User
Some people say that every engineer who looks like a normal person is actually an anti-social (sociopaths) who has endured, repressed, and traumatized in the course of learning the development of the program. In the process of learning program development, often see the network of "bitter Talk", also heard around the future of a bright engineers and friends to share the course of learning, always feel different people, the same story is constantly repeating, like a wolf cry, from afar came a sound of ECHO. Recently read Erik Trautman in Viking Code School blog article "Why Learning to code are so Damn hard", the article will learn to write programs (learn to code) process into four stages, and Explains two key factors that affect the formation of each stage "data density" and "knowledge breadth", and finally assembled into this picture: This article is very interesting and very consistent with the "History of Engineers bitterness" I heard, so decided to introduce these four stages to everyone, hope that the beginning of the program to enter this way, the eyes to lightening, Plan carefully and clearly understand what is waiting for you in front of you, and be prepared to be completely mentally ready! Next I will introduce from the beginning of the program to become an engineer, Erik Trautman is categorized by the four stages: want to become an engineer, please be prepared to meet this path first assume that you learn to write the ultimate goal of the program is to rely on this line of food-to enter the relevant areas of work or self-employed, Whether you're ready to be prepared can be seen in your confidence (Confidence) and ability (Capability) Map: As you have more knowledge and skills, your self-confidence will increase and decrease, and finally reach the "job ready" point with sufficient confidence. Before the Job ready can be divided into four stages: the first stage: hand in hand and heart-to-heart honeymoon period just beginning to enter the program development community of friends are always embracing the lofty dreams and aspirations, this can not blame them, after all, on the one hand, we heard a lot of childhood "writing procedures difficult", " Computer science is hard "this rumor, from the very beginning, has frightened many people into the social sciences. No offense to social science professionals); On the other hand, the "National Writing Program" is a very successful campaign, many tools and learning platform to make program development is very good understanding, easy to get started, such as Codecademy, Treehouse, and Code School and other online platforms, Or MIT's Scratch language, Google's blockly and other programming language tools, has succeeded in creating an illusion that everyone can write programs and rely on this line of food. Suddenly our problem is no longer the "difficulty", but "higher than the sky's expectations" and "bigger than the dream." Most importantly, the tools and platforms mentioned above are so useful that they leadBeginners who have no program development experience are aware of variables, conditional statements, and program syntax. When you go all the way through the basic logic of programming language and grammar learning, you will have a sense of accomplishment, self-confidence, began to have "the original I also do", "writing procedures but this" feeling, basically feel that they have been with the "engineer" is not far away. This stage will be full of joy and accomplishment, with the help of various online tools and web-based teaching, you enjoy the sense of dominance that can be performed with fingertip instruction and computer, and you marvel at the magic and the power of the programming language, from Hello world to Simple loop, and each time you complete an exercise, your sense of accomplishment increases a bit. Many people at this time think they have fallen in love with computer science (and think computer science love them), is in the ability to improve, self-confidence has greatly increased the "honeymoon period", then you may feel the world is really good, life will probably rise from this, but I have to brutally tell you: This journey has just begun. The second stage: The confused cliff is like most couples/newlyweds, the honeymoon period will end, you will slowly find that "love is not so simple." Job difficulty an increase (the focus is the code length will also increase), the program error warning occurs frequently, began to keep debugging (Debug). And often the biggest challenge is – when mistakes occur, you don't know where you're going wrong or what questions to ask. Your progress at this stage began to stagnate, like the road to half a sudden encounter cliff and no way to go, began to feel confused about the previous cognition, followed by a great loss of confidence. This phase usually occurs after you have completed the basic teaching of the line. To create a personal website (Portfolio Website) For example, W3 School platform provides a series of HTML, CSS, JavaScript and other web-related program teaching, so that beginners a unit of a unit of learning grammar and function, each unit also has example demonstration usage, It looks so easy! After all, you are ready to build your own website, open the text editor, ..., and then write no two lines on the card off. May rely on Google search can make you to complete the basic structure of the site, but when you want to achieve their own ideas, coupled with personalized design, the network answers and demonstrations are always not the same as what you think, so the code can not be copied all, but left to the right to make up the program code seems feasible but actually poor far! But still do not know from where to debug, may have invested more than half of the time code also "there is no increase", no progress can be made. This is a particular setback in the necessary stage, want to become Programmer must go through this level, bravely jump off the cliff, forcing themselves to fly (of course, at this stage of the death of the small chicks very impressive). But even if you have eliminated countless bugs, and finally finished a few small eucalyptus, you do not happy too early, the future road is very long-term and challenging higher! For those who want to enter this line of food, the "cliff of confusion" is usually the turning point for you to decide whether to enter the line wholeheartedly, and when you invest all your time in writing the program, you will enter the most frustrating phase of the third. You may be curious as to why the first phase of the connection (honeymoon period) is so much worse than the second stage (the confused Cliff). If you are also experiencing the above two stages, you should know that the cause of the phase transition is not related to you at all, not entirely because you are more stupid than others or do not work harder than others, but because of the "resource density" change. Factor 1: Resource density Resource density mentioned in the first stage that when you start to learn to write a program with 0 experience, there are countless resources and tools waiting for you to use. To Google search hit "learn to code" you will find the ultra-multi-program learning platform, teaching text, teaching films, and even experience talk, so that you feel extremely warm and cordial, its "hand in hand to heart-to-heart honeymoon period" title deserved. By the second stage, however, the number of these resources will be drastically reduced, and any program learner who has just graduated from beginners can confirm that I am not false. Beginners first encountered the obstacles are "general problems", teaching text, textbooks will be noted; later, due to the difficulty of the work and personal needs, the problem is gradually complicated, from the Stack Overflow or some of the program People's blog to find clues to solve problems. Until you get to the point where your problem is tricky enough to find clues on the web, you're in the next phase. Stage three: Desperate sandbar to understand the key to entering the third phase, you need to understand another important factor that affects all stages of change: the breadth of knowledge. Factor 2: Knowledge breadth scope of knowledge"knowledge breadth" is the area of knowledge that you have to spend at each stage. At the beginning you need to absorb the knowledge is very concentrated, regardless of the language of the program, regardless of the function is what, first of all to learn the variable type, the declaration of grammar, Loop and conditional judgment, and so on, at this time casually ask an engineer to teach you are the same, because "important information" is the point. However, after learning the basic skills, you need to expand a lot of knowledge, such as starting to learn object-oriented or replay algorithm efficiency, you will need a solid computer science background to deal with, and each application can be involved in more changes ... Believe me, this is not a few MOOC lessons can save you. In this period, the Almighty Google will only throw you more things you do not understand, can not find the relevant clues! Worst of all, you don't know what you don't know. (You don ' t know the know.). So "learning can not finish, the more learning more do not understand" the sense of powerlessness overwhelming, into the most difficult phase of the third stage ––"despair sandbar」。 This stage, as the name implies, is a very long and lonely journey across the desert, giving you the sense of despair that you may not know what year or months it will take to get out. In the endless desert, it is not clear east, data check for half a day without gains, but also from the Mirage (error information or seemingly feasible solution) to mislead, get disgraced, dizzy, in this stage of the Sun died, thirsty death, desperate death of the youth is countless. But as long as the despair of the bar to survive, the next will be much more comfortable! Accumulate enough experience, the error of the program will be greatly reduced, reached a certain level of knowledge, can accurately judge the direction of the problem into the core, work efficiency has been improved, the breadth of knowledge will be gradually focused. When you dragged a tired finally out of the desert, entered the final stage. Stage four: After a traumatic recovery, stepping on thousands of corpses successfully cross the desert, your self-confidence began to rebound, Google can also be said to be a man-of-god level. By this time, Hacker news and the super-hard MOOC course are no problem, you have selected a program language with the framework for research, and have the ability to produce a functioning application. But your heart always have a faint uneasiness, think the program can "use" but in fact code messy no chapter, the engineer's title is actually stumbled into this line of half tone, although you seem to have all the conditions of employment, but always afraid of the interviewer found your weak foundation of computer knowledge ... You are experiencing a "post-traumatic recovery period". After flying over the cliff of confusion and crossing the desperate sandbar, you should have learned what to do, become a true engineer, but always feel that the quality of their own mediocre foundation is not stable, although the success of a project and confidence rebound, but always sigh with the idea of "professional engineers" still have a big gap ..., These are "Counterfeit syndrome" (Impostor syndrome)! In this post-traumatic recovery period, you may often self-doubt, but as long as the wave of efficiency to increase confidence and the trend of recovery continue to work, in the ability and confidence to achieve a degree ... Congratulations: You're Job ready! free to receive the lamp brother even original PHP tutorial CD/"Detailed PHP" Essentials Edition, details of the Advisory website customer Service: http://www.lampbrother.net
  • 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.