Perfection. The word that symbolizes an ultimate goal and motivates people to develop their forward thinking because everybody wants to excel at things they do or like and achieve great results. Consequently, this concept involves all spheres of life, especially work, especially IT which requires accuracy, thoroughness and deep consideration of every tiny detail. Thus, to bring the performance of the company to perfection, you need super employees with ideal skills and knowledge. As a result, here is a question: are there perfect programmers as they are key people in the IT sphere?
Earlier I wrote an article where I busted some myths about IT guys and it’s interesting to look at them from the other side, not what they aren’t but what they should be. And there are some key interesting traits that I find to be useful for a programmer.
Who would have thought that it’s really necessary for a coder. When I think about the word “abstract”, the first thing that pops in my mind is philosophy and Ancient Greeks who contemplated over global concepts and proved why horse is not a frog. Actually, abstract thinking is extremely useful as programmers should plan, make schemes and solve problems first in their head, so it is hell of a skill to build a code in your mind when I even can’t remember my own telephone number! Maybe I should learn from our Master Yoda coders :)
Ability to write a pure code
A good programmer is not just someone who can write a code. How often can you observe a situation when a guy creates a code but it doesn’t work, and he spends hours, days or even months to solve the problem? A good programmer is someone who produces a pure and optimized code initially without any errors. Companies sometimes even make coding conventions which must be taken into account while writing. It’s a really meticulous and time-consuming job which requires diligence, attention to details and lots of coffee.
There are a lot of arguments regarding the necessity of advanced math knowledge to be a good programmer and everything comes to a conclusion that it depends on what kind of programmer a person wants to be. However, the real essence is not in the formulas but in the way of thinking this subject develops. Math forms a particular mindset that allows coders to logically estimate their work. So, nuh-uh, you won’t weasel out of attending math classes!
When you think about IT companies and people who work there, imagine a usual open space with comfortable chairs and calm employees who listen to their favourite music while working and drink tea or coffee with milk. What can happen that can be called stressful in such a peaceful atmosphere? But underneath all this, programmers constantly solve problems, find reasonable solutions and very often everything is done on a tight schedule. But can you see that on those concentrated, cool faces? No, and that’s what I call handling the stress.
Laziness (optional, of course, but intriguing)
Today I hear the phrase “Laziness is an engine for progress” much more often than ever. People start to consider this particular feature of character to change from the negative one into the stimulus to find more and more sophisticated ways to make our lives easier. Larry Wall in his book “The Pearl of Programming Languages” talks about laziness as “The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it”. An interesting theory and very attractive :)
I suppose that is enough for the general criteria of a programmer that will do their best to perform a task. In fact, I believe you don’t need to look for a perfect coder who knows all the languages, can write a program in one minute and save the planet. In this case, you can bump into a guy with a perfect programmer syndrome, ability to nose up and panic when something goes wrong. You just need a person who knows how to do their job, can organise their work efficiently and produce sound solutions.