A ‘programmer’ is a person who can code a computer software. The term programmer can generally refer to a specialist in some specific area of computer programming or to a generalist who writes code for various kinds of softwares.With popular school of thoughts such as “programming is an art” and “programming is a science”, still in existence with no definite winner, here are the top 10 tell-tale signs of a good programmer that you should look for when hunting a good programmer for your team:
1. Strong Domain Knowledge
While many programmers could get away with knowing only a single programming language, a truly devoted programmer knows how to code and develop in multiple languages such as C, C++, C#, Java, PHP, Python, .Net, Ruby etc.
Since our modern world is being filled with new technological innovations every second, every other person wishes to be a programmer, that is why, in order to truly stand out, a good programmer should have strong domain knowledge and should know multiple languages.
The versatility of programming languages that a programmer has command in, indicates a strong conceptual base. Therefore, the more unique languages a programmer knows, the more valuable and conceptually polished it becomes. So, always look for the versatility factor in a developer’s skillset and do give more weightage to trending programming languages that a developer knows!
2. Experiments First, Asks Questions Later
An average developer will always ponder the question of “If I do this, what will happen?” and eventually turn to someone for advice. However, a trait of a good programmer is that it will dive head first into the problem and try whatever deemed possible to debug the issue on its own.
New stuff never comes into the world on its own, it is born when people experiment themselves. The reason many programmers don’t have this trait is because they are often fearful of the repercussions or have weak theoratical foundations. History has always favored the bold, therefore apart from looking for a smart developer, do look for some brave soul.
3. Emotionally Unattached to Any Element of Programming
In order to be the very best, a developer has to constantly update itself and stay ahead of the competition which includes shunning yesteryear’s old programs and coding practices that have been outdated. Good programmers know that code is simply a means to an end and remain unattached to any specific element of programming.
With no emotional attachment to an already mastered obsolete technology, when a programmer is asked to switch to new environment, instead of doubting the critic, the programmer will look at the dark side of the old technology and will cheerish the bright side of the new technology in question.
4. Want’s to Improve That Isn’t Broken
Another habit good programmers have is their habit to constantly fix something even when it isn’t broken. They will look at a specific program and almost always wonder “what can I do to make it better?” They will then experiment to the bitter end.
Good programmers have a developer’s ego which forces them to always pursue better versions of their current programs. Therefore, look for people who believe in the saying, “There is always room for improvement” and are mentally committed to pursue it.
5. Incorruptibly Patient
There are times more often than not when programmers need to get their work done but they cannot concentrate due to excessive background sound or other forms of distractions. A good programmer needs to be patient and has to prioritize his work above all else. Such programmers care not for the things going around them — such as office politics, music, chattering, etc — as they can block out everything other than their work.
A common tell-tale sign of good programmers in this regard that you can look for is that they are incredibly tolerant and humble. These attributes will also help them to blend-in with the rest of the team, after all team work produces dream work.
6. Pursuits Perfection
There are programmers who strive to achieve greatness, and then there are good programmers who strive to achieve perfection. They know that greatness will come running after them if their work is perfect, and for that they are obsessed with one thing. Getting the job done in such a way that people get mesmerized.
Look for programmers that aren’t focusing for only a prosporous career but consider pursuing perfection to etch their names into history forever.
That’s right, a major sign of a good programmer is that it is a Do-It-Yourself-er. If there is a problem that needs solution, a good programmer will dive into the tiny bits of the issue and will fix it either via brute force debugging or via some self devised workaround.
8. Believes in Evolution
While it may be true that there is no point in learning all there is to know about a specific technology because it is bound to get obsolete at some point in time, what many mediocre programmers don’t get (and what good programmers do get) is that every technology that is present today or would come in the future, is nothing but an evolved variant of some earlier thing.
If the skill set of a programmer has continuously evolved with time and he has mastered the fundamental essence of programming and has an encyclopedic grasp on it then there is truly no need to worry as the programmer will be able to handle just about anything thrown at him in the future. Therefore look for people that like their skill set to evolve with time.
9. Has Fun Failing
Sure failing can be seen as a bad thing by an average Joe, but a good programmer will be fascinated by it and will take failure as a challenge and will dive right into the code to find out what the problem is.
Good programmers consider failures to be unique opportunities to learn. Each time they make a mistake, they take note of what they did wrong and try not to repeat the same mistake again. Evidently, the more mistakes they make, the more they learn, so for them, failure is something that is welcomed.
10. Driven by Experiences
Very rarely do we see someone invent something, decide what to do with it and market it. In fact, in most cases, this process is divided into many parts, with each part being completed by another fellow. This process can take anywhere from a few days to generations to complete. It is all about taking someone’s experience and working forward with it.
Good programmers always keep that in mind when programming that they might not complete a program they started, or might pick up where someone else left off and see if they can improve it in any way. They know that they might not change the world single handedly, but they do believe that they are contributing to the technological evolution bit by bit.