To use a programming language is very easy for a programmer, but it's a dream for many programmers to be an expert software developer. There are five levels of programmers: Novice, Senior novice, competent, proficient, and expert. Most programmers are senior novice. And programmer living in this level are a lot of people who have 1 to 10 years work experience.
As a programmer, how to find the bottlenecks for your improvement and how to improve yourself quickly? This is really not an easy question which can be answered in a few words. I started to work in software industry in 2009 and I left the company A which I worked for 3 years in 2012.And I joined company B and it's nearly a year here now. However, I dare say what 1 learned in company B is more than the total I learned in company A. The big progress is because I develop some good study habits, These habits are mostly "stolen" from my colleagues.
We do not need to crossing the river by feeling the stones, because their predecessors have been summed up a lot of valuable experience to us.
1. Please use Google as your search engine. It is absolutely very important. When you try to use Google to do some technical search, you will find how much Baidu is inefficient. Also, the same technical keyword, Google results have much higher matching degree than those of Baidu. If you say your English is poor, then quickly remedial English. I have not found a very excellent programmer whose English is very bad. Many English technical articles are mostly very delicate and very organized.
2. Learn to set your own goals and achieve them. Some people say they have a goal which is proficient in xx language in one year. I would say such a goal is no goal. Setting goals must follow the SMART principle, that is:
- The goal must be specific (Specific)
- The goal must be measurable (Measurable)
- Objective must be achievable (Attainable)
- Goals should relate to other goals(Relevant)
- The goal must have clear deadlines (Time-based)
The goal can not be verified is slogan, and shouting slogans is precisely what Chinese people are best at. To establish a verifiable goal, you also need to track the progress of the goal. You can use a number of tools to assist in tracking the progress, for example wunderList.
3. Use code hosting site to manage your code. As a programmer, you may write some demo codes while learning new languages and then subsequently you throw them away. This is a bad habit. You should learn to manage your code so that they become a valuable asset of you. There are a lot of free code hosting site such as GitHub. GitHub is the world's largest source code hosting site, a lot of well-known open source framework source codes are hosted on GitHub such as jQuery, Junit, Ruby, Clojure etc.. Here, you can upload your source code and share to others. You can also easily view excellent source code of others. If you prefer, you can become a volunteer to develop an open source project with others. You only need a git client and a GitHub account.
4. Make notes to summarize the knowledge. A programmer who is not good at summarization is not excellent programmer. In SMART principles, there is a very important one which is the goal must be measurable. And we are in the process of learning technologies, in addition to the output of the code itself, the log is also an important and measurable output object. You can write down the mistakes to avoid repeating them. Recommend you to use Evernote. It supports almost all operating systems and mobile platforms, and it's very convenient to sync notes to the cloud. You can refine them and publish them so that others can review them and this can also expand your influence,
5. Make read as your daily habit. Software Engineering is a knowledge-production activities, the carrier of of the others experience is the text. As IT people, knowledge alternation is very frequent, you will be abandoned if you do not understand the outside world. Not only do we have to love to read, but also to read good books and read good articles. Develop good reading habits is one of the qualities that every programmer should have.
6. Familiar with a variety of shortcuts. For programmers, improve the speed means productivity. Improve productivity, you will have more time to start a new learning. Familiar with shortcuts not only saves time but also release your brain from repeated mechanical labor, you can pay attention to the more important part. Operating system or browsers have their own variety of shortcuts. Master shortcuts of IDEs which programmers use every day is especially important. From now on, print a copy of the IDE Shortcuts and put it on the table. Get familiar with a few of them every day.
In order to become a good programmer, we must persevere and continuously learn.
Source : http://huangbowen.net/blog/2013/03/24/senior-programer-good-habits/