A few months back, I had posted a Q&A on the topic ” What it takes to be a Good Programmer ” on LinkedIn. The response I got was excellent.
Here are some of My favorites from the list and 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.
What it takes to be a Good Programmer ?
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 creating the applications that just work. Frequently updating the knowledge on the domain, not only on the ones that we work will also improve us.
- Understanding the requirements and communicating well to meet the requirements is also required.
- While knowing a lot of programming language is useful and sometimes necessary. It is also more vital that you know one or two languages very well. It is also essential that you understand where it is best used.
- Participation in Coding contests like topcoder.com, Imagine Cup etc. will also help get you to know how stronger you are in Software development.
- Learning some of the basic design pattern techniques is also more critical because better software has to be designed .” Head First Design Patterns” from Oreilly is an excellent book to start with.
- Trying to read and understand others’ code , Debugging 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 learning a few things that can be done best to solve the problem. Discussing it with them will also add another learning experience for you.
- Another vital aspect is involvement in the developer community. This will undoubtedly help you in meeting some of the experts and even share the knowledge.