Software has unwittingly done a decade to do with the joy of success and failures of the pain, but dared not call themselves masters, because my eyes were compared with the real master, there is still too far. The world has not become master of the short cut, but some basic principles can be followed.
1. A solid foundation. Data structures, discrete mathematics, compiler theory , these are the foundation of all computer science, if not master them, it is difficult to write high-level procedures. According to my observation, learning computer science more people than other professional people can learn to write high quality software. Everyone can write the program, but when you find that hard to write to a certain extent improve the time, you should think about is not to come back to learn the basic theory. Do not go for the beginning OOP , even if you re-versed in OOP, when encountered some of the basic algorithm may also do nothing.
2. Rich imagination. Do not be confined to a way of thinking, a problem of time to think about some solutions to the problem, try the others never thought of the method. Imagination is built on the basis of a wealth of knowledge, in addition to other computers, multi-read materials on other subjects such as astronomy, physics, mathematics and so on. In addition, more than to see science fiction movies is a good way.
3. The simplest is the best. This may have followed an all scientific criteria, such a complex theory in Einstein's mass-energy exchange of the eyes, but could not be more simple is a simple formula: E = mc2. The simplest way to more easily understood and more easy to implement, easier to maintain. A problem when the program give priority to the most simple, only a simple program can not meet the requirements consider complicated.
4. Not into a dead end. When you encounter obstacles that may wish to get away from the computer to see the scenery, listen to light music, chat with friends. When I encountered problems when the will to play the game, and is the kind of very violent fighting games, when the charge of that part of the game extremely excited when the brain cells responsible for programming that part of the brain cells get adequate rest. When back to work, I'll see that the problem can be solved even now.
5. Thirst for answers. Natural history of human development is a thirst for an answer, even if only a small part of the answer is also worth to pay. As long as you just believe, we must find the answer, you will pay the energy to explore, even if it was not the answer, in the process, you will learn a lot.
6. More with others. Three from everyone, perhaps in a casual conversation with others, you can Flaring spark of inspiration. More on the Internet, take a look at other people's views on the same issue, will give you inspiration.
7. Good programming style. Note that to develop good habits, code indentation layout, variable naming rules should always be consistent. We all know how to troubleshoot the error code, but often neglected troubleshooting comments. Comment is an important part of the program, it can make your code easier to understand, but if the code has been clearly expressed your thoughts, you do not add comments, if comments and code inconsistencies, then worse.
8. Tenacity and perseverance. This may be a "master" and the biggest difference between the general programmer. Masters are not geniuses, they are honed in countless days and nights out. Success can bring us tremendous joy, but the process is immense boring. You may wish to make a test, find a table of prime numbers less than 10,000, all of them were written down, and then check it three times, if we can complete the work without interruption, you meet this one.
These are my programmer career point a few years experience, hoping to give you help.