Here are few points to be considered when someone want to become a good programmer.
Passion. It is passion that drives programmers to do what we do, it is the love of one’s job that keeps a programmer going even in the face of problems, show me a successful programmer and I will show you the passion in him. To become a good programmer you need to love programming and develop strong passion for it, because you cannot excel or thrive in what you dont love.
Ready to study books, read blog posts and articles. Good programmers are hard core readers of book, knowledges are hidden in books, you can add to your reservoir of knowledge when you read books. Following and reading the geeks blog articles and posts do help a lot, because you gain from their wealth of experiences and add to you own. I personally have read some books that have helped me in my programming career, I will mention but a few of them that I found interesting and must read for every programmer, they are Code Complete, Clean Code, Domain-Driven Design: Tackling Complexity in the Heart of Software, Patterns of Enterprise Application Architecture, Foundations of Programming Building Better Software.
Problem solving and analytical skills are must have for every programmer, because programmers are problem solvers, programmers solve problems every time, and how much you can analyse and solve a problem and write a maintainable software for it, will determine how far you will go in your programming career. Think of a problem and try to profer solution to it, by doing this, you can improve your problem solving ability.
There have always been much arguments on whether a programmer should be a mathematics guru or not, though Computer Science had its origin from mathematics, I strongly believe you dont have to know calculus or differential equations before you can be a good programmer, but knowledge of mathematics is a plus for you and can save you a great deal of time especially when dealing with problems that are mathematical in nature.
This principle is applicable to all spheres of life and not programming alone – Attention to Details. Paying attention to minute details is a factor that distinguishes a good programmer from an ordinary programmer. This is a culture that needs to be developed by every programmer that wants a better career in life.
A programmer must learn to write good codes, I define good codes as codes that are well written, tested and documented. In my subsequent blog post I will discuss in details about well written and documented codes, but you can read my introductory article on TDD to know what a tested code is. You can also learn how to write good codes by reading other peoples codes, there are many repositories online where you can find source codes of project – Github, codeplex.com, sourceforge.net.
Code all the time, the only way to be good at something is to do it all the time, which means to be a good programmer you should code, code and code all the time. When you code all the time naturally your passion for programming grows, which makes you crave to know more and thus you become very good at it.