Not many programmers practice these essential programming skills. If there is a mandatory problem-solving programming test, I would bet, the average programmer would have been much better. Anyway, here is my list of things, which can help you to become a good programmer.

1) Coding, Coding, and Coding
Why have I Coding at the top of this list? because it's difficult and same time its central piece of programming.

By doing coding, you also realize your mistakes in designing, error handling, threading and then go back to those respective skills to improve. You just can not work in designing only, coding produce output, which is important to learn and act as a success.

2) Reading Books
Coding is easier said than done, and there is a huge difference between good code and bad code, but how do you know? Until you have seen a good code and know why a particular code is good, you can not understand the difference.

3) Contributing to Open Source, Signing-up mailing lists
Contributing on the Open source code, especially from Apache, Google, and some other projects is another way to improve your programming skill and become a better programmer. Just signing their mailing list and the following discussion teaches you a lot.

Since most of the discussions happen between good programmers, by listening to them and understanding problem and their approach, solution, and view, automatically develop good programming habits on you.

To get most of it, do not just sit passive, ask questions, offer your view, but same time value others as well.

4) Practicing data structure, Algorithms, and Design related problems
I was thinking to put that as the second item, but it ended up fourth. In my opinion, this is the most critical of things to do to become a better programmer. Most of the good programmers I have seen and met are really good in data structures, algorithms, and basics.

By learning these things, you take better advantage of what is available. Since data structure is a key piece of any program, solid knowledge of them helps during problem-solving.

Similarly, knowledge of key programming principles, search and sort algorithms and other well-known algorithms develop programming skills on you.

5) Reading Good Blogs
Reading good blogs is a small part of reading books. How does reading blogs help you to become a better programmer? Well, it does. Since blogs are often written by programmer themselves and most of them share their personal view, experience, you often find them relevant.

Also, blogs are a small piece of information so it digests well. A blog also helps to learn new technology and new features of existing language and API.

Many times, I have seen something subtle or missed things from a really well-known part of Java described in a small blog post.

6) Reading Code
If reading blogs help to become a good programmer, then reading code help more than that, but same time reading blog is easy but reading the code is tough. Do you see resistance? then you should do it. Look code of open source projects, your fellow programmer's code, your existing proprietary code, code from Java SDK and try to understand how they work, try to see what they are doing and why they are doing.

Find patterns, develop navigation skill, initially you will find it boring and difficult, but with time you will develop a good code sense, which will alert you when you do a mistake, help you to spot others mistake, gaps, and code smell.

7) Writing Unit test
Unit test complement thinking and coding process, and subsequently help you to design better. Anything which is difficult to test has a chance of improvement. Also, writing unit test helps a lot in finding better names, better abstraction, better interface and abstract class design and overall improves code quality.

But like coding and designing, unit testing is also a tough job for average programmers, you will see a lot of resistance there. Some programmer writes trivial test, instead of thinking hard on usage scenario.

Remember there is no substitute of think through the process, after analysis, design and development, unit testing is another opportunity to think through scenarios and gaps in your code. Make it a rule, always write a Unit test for your code.

8) Doing Code review
Like Unit testing, Code review is another thing which helps to become a good solid programmer. Code review helps both reviewer and author, reviewer improves his code sense and offers genuine advice while author learns from his mistakes.

9) Talking to fellow programmer
Reading is passive event compared to talking. Talking a program and discussing that with a fellow programmer, often leads to a better solution, it's natural because your mind tends to involve more when you talk and listen to other.

I have then found gaps, missing requirements, bugs and design flaws while discussing with teammates. In the software industry, where programmers tend to isolate them with their computer, talking, sharing and doing whiteboard sessions helps immensely.

10) Participating Stack Overflow and forums, Commenting in Blogs
This is another form of activity, which helps to revise knowledge. By sharing knowledge, the first person who benefits is the one who share. Since programming is big and vast, you tend to forget most of the things which you don't use for more than 3 months.

Participating in StackOverflow and answering others queries, commenting on blogs and forums is a nice little way to revise knowledge and same time correct your misconception.

By putting our knowledge in front of others, we not only helps others but also put them to the test. Many times you will see, someone benefiting from your knowledge but also you is getting your misconception corrected.

Author's Bio: 

INFOCAMPUS is Best JAVA Training in bangalore. With 100% Placement assistant. It also helps candidates by providing Live Projects with AFFORDABLE Training fees. Visit http://infocampus.co.in/java-training-bangalore.html and make an enquiry to get a call back with much more information. Contact 9738001024 and attend free demo for java classes.