Here is some of My favourites from the listand the summarization of the thread. Let me make it clear that I do not consider myself a good programmer. My coding skills are just a mere average and i am still learning and there is a long way to go before i am even pleased with my Programming skills .
Good programmers tend to be intelligent, and tend to have a passion for programming. Because of their passion they will then also tend to contribute to open source projects, and may know about lots of different technologies because they actively read around the topic. – Anthony W
“Good programmers like QA because it keeps them honest. An engineer who takes a bug report personally is not good 😉 ” – Sami
“if a programmer is really good, you should be able to ask them what kinds of programs they’ve written for fun. They should have MANY to choose from. It’s something like breathing underwater to a fish. Great programmers just do it without being forced, it just comes.” – Jason
“It is good to understand why you do things, not just how to do it. You should be able to explain what you have done and why you did it the way you did.Being a good programmer is about attitude and a state of mind as much as any technical skills. Unless you are looking for specific skills or experience then attitude will make up for any deficiencies. ” – John R
“You also have to have two fundamental characteristics: 1. Smart, and 2. Get Things Done.” – Chuck M
“To be a good programmer you should never call yourself a programmer. I am fond of ninja, cookie monster, and Keyboard Jockey.. If you want to be a great programmer.. Quit reading how too, and just be one.” – Rodney
“A good programmer is somebody who is willing to learn and try new ways of doing things throughout his career” – Ken
Here is my view on the topic :
Passion is one that pushes developers to make good code rather than making the applications that just work.Frequently updating the knowledge on the domain not just on the one’s that we work will also improve us .
Understanding the requirements and communication well to meet the requirements is also required.
While knowing a lot of programming language is good and sometimes necessary . It is also more important that you know one or two languages very well.It is also important that, you understand where it is best used .
Learning some of the basic design pattern techniques are also more important incase a better software has to be designed .”Head First Design Patterns” from Oreilly is a good book to start with.
Trying to read and understand others code ,Degugging a lot to know the application and asking for help when you are struck up is another way to improve .Senior persons or even your colleagues might be knowing few things that can be done best to solve the problem . Discussing it with them will also add another learning experience to you .
Another important aspect is involvement in the developer community. This will certainly help you in meeting some of the experts and even share the knowledge .