I don't know that the software has been done ten years. There is a successful joy, but there is a painful pain, but I don't dare to say that I am a master, because I am more than the real master, it is too far away. There is no shortcut in the world, but some basic principles can follow.
1. Sound foundation. Data structure, discrete mathematics, compilation principle, these are the foundation of all computer science, if you don't master them, it is difficult to write high levels. According to my observation, people who learn computer majors can more written high quality software than others. The program will write, but when you find that it is difficult to write a certain degree, it should think about whether it is to go back to learn these most basic theories. Don't go to learn OOP at the beginning, even if you are fine, you may have no hand when you encounter some basic algorithms.
2. Rich imagination. Don't stick to a fixed thinking method. When you encounter problems, you should think about several solutions to solve the problem, try the way others have never thought about. Rich imagination is based on rich knowledge, except for computers, more about other disciplines, such as astronomy, physics, mathematics, etc. In addition, it is also a good way to see more sci-fi movies.
3. The simplest is the best. This may be a criterion following all sciences. Such complex quality interchange principles are just a simple formula that is simple in Einstein: E = MC2. A simple approach is easier to be understood, more easily implemented, and more easily maintained. When you encounter problems, you should give priority to the easiest solution, and only the simple solution cannot meet the requirements.
4. Do not drill the horn. When you encounter obstacles, you may wish to stay away from the computer, look at the scenery outside the window, listen to light music, chat with friends. When I encounter a problem, I will play games, and it is the kind of violent fighting game. When the part of the brain cells responsible for the game, the part of the brain cells responsible for programming have been fully resting. When I started working, I will find that the problem is now able to solve it.
5. The desire for the answer. The history of human nature science is a process of eager to get the answer, even if you can only know a small part of the answer, we pay for us. As long as you firmly believe, you must find the answer to the question, you will pay energy to explore, even if you don't get answers, you will learn a lot during the process.
6. More than others. Three people must have my teacher, maybe in a conversation with others, you can explore the inspirational spark. Many up-to-go, see what others' views on the same issue will give you a lot of inspiration.
7. Good programming style. Pay attention to develop a good habit, the indential arrangement of the code, the naming rules of the variable should always be consistent. Everyone knows how to exclude the error in the code, but often ignore the missed troubleshooting. Note is an important part of the program, which makes your code easier to understand, and if the code has clearly expressed your thoughts, you don't have to add any comments. If the comments and code are inconsistent, it is even worse.
8. Toughness and perseverance. This may be the "master" and general programmers the biggest difference. Masters are not genius, they are hone in countless daysday night. Success can bring us extremely joy, but the process is incomparably boring. You may wish to do a test, find a number of items within 10,000, copy them all, then check three times, if you can complete this work, you can meet this.
These are a little experience in the programmer career in these years, I hope to help you.