When learning programming, always encounter such difficulties, the author compiled the programming learning stages of the problem and mentality analysis. Hope for the vast number of programming enthusiasts to help.
1th Stage: Opportunities
You are happy, you always want to learn this new content, such as a programming language, whether it is the planning or the environment is forced, in short, you finally have the opportunity to learn.
2nd stage: No base for optimism
Google search--pick one or two tutorials you're interested in, buy materials and books, and start Mooc (large online open tutorials). The tutorials are fun, and there are even online repl that let you play and you feel you are progressing. Of course there are problems-fingers are not skilled, but you insist, will not give up, and ready to your first project to March.
3rd stage: The Deep pit of despair
You begin to extend from "Hello, World", for example, by changing the content to "Hola,mundo" as a cautious attempt, and then daring to be a little fatter, and start unbridled--So, error messages, stack traces, random behavior. Even if you don't have all the wrong information, the code that works in the tutorial, you might have a blank result. You suddenly find that even some seemingly foolish but benign nuances can cause storms, make you sink in the gutter and fall into a deep pit of despair. Even the simplest tasks make you miserable, and you start doubting yourself, doubting that you have no talent for programming at all.
4th stage: Lower your posture
Slowly, through trial and error baptism, by asking colleagues, StackOverflow, blogs for help, you begin to accumulate knowledge. You start to understand how to display the data, how to communicate with the database, how to create an interface, and how to override the method. While you don't really understand how any of the above works, it is becoming a little easier to master these magical spells and expand the realm of knowledge while accomplishing specific, necessary tasks. For some spells, you may be able to use very handy, even in some problematic cases also mechanically, feel as long as the completion of the good, even if the heart know that they do not do. Debugging is a setback exercise. Whether it is because the ego feels that the goal has been achieved, plans to put time elsewhere, or because it is too difficult to look at and daunting, or the self-proclaimed have mastered the expertise to make the choice of self-thought, in short, many people stop at this stage.
5th stage: Dawn's Coming
At this stage, as you have saved enough pieces of information, you can begin to find a connection between them. You are beginning to be able to apply knowledge flexibly, not as mechanically as before. You start with the so-called intuition of some basic rules and begin to shift from rigid adherence to receiving knowledge. This is also an uneven process--the empathy for this is still confusing at the same time--but you are confident that you will take it down step-by-step, and you begin to enjoy the process.
6th stage: Professional
After a while, you have mastered the basic pattern and started to feel that programming is as easy and natural as eating. You can already intuitively understand how things work, and easily mediate between architecture, coding, and debugging. In general, you don't have to think about things, like when you go shopping from home to the store-you know how to go, and if there are new roads, you can weigh the different options instantly and choose the best route. At this point, the hardest part of the problem should be the problem itself, not the operating system to support what you want it to do.
7th Stage: Achievements
You are now an expert with years of experience. The time and energy you put in is rewarded. You write a blog post to help open source projects and become recognized experts in your peers. It becomes your identity and honor, and it becomes your yoke, and what you do needs to match the name of the expert. Suddenly one day, a new thing appeared. You also know that this new thing is very good, it will be very useful, can help to solve the problem that the existing tools are not enough to solve, will be the trend of the future. But at the same time, you clearly know the effort and time required to become an expert, need to feel inadequate and frustrated again, need to go to others for help and so on, you do not want to, you retreat. You'd rather close your eyes and put yourself in a rut and curl yourself up like a withered limb slowly die.
Recommended Reading
Tiobe programming language Rankings (May 2015)
What to learn before you start programming
15 of the most lucrative programming languages on the American market
7 rules to enhance your software vitality