Are you a good programmer?
Have you ever caught yourself wondering if you’re really good at programming? Amid so many languages, bugs, and daily challenges, it’s normal to have that doubt: “Am I a good programmer?”
This question crosses the minds of many people in the field. But what about looking at it from another angle?
Larry Wall, creator of the Perl language, defined three virtues that, according to him, every good programmer carries: laziness, impatience, and hubris. It might seem strange at first glance, but these three words, when well interpreted, make perfect sense.
Let’s explore these virtues with practical examples and see how they can, in reality, help you evolve as a developer?
1. Laziness
The quality that makes you go to great effort to reduce overall energy expenditure.
Laziness, in this context, is that desire to avoid repetitive work at any cost. It’s the impulse that makes you automate processes, create useful scripts, write decent documentation just so you don’t have to answer the same question more than once.
And here comes one of the most well-known phrases in the programming world:
I always choose a lazy person to do a difficult job… because they will find an easy way to do it.
— Bill Gates
This phrase well summarizes the virtue of laziness in the dev world. It’s not about avoiding work, but about making the effort only once.
2. Impatience
The anger you feel when the computer is being slow.
Who hasn’t felt this? That screen loading slowly, that build that takes forever… And then impatience kicks in.
But this impatience can be channeled for good. It’s what leads you to write faster code, smarter scripts, and solutions that anticipate what the user (or you yourself) will need.
A good example is creating an automated test suite that runs only the tests affected by the latest changes in the code. You speed up the process, avoid wasting time, and still ensure more quality. Impatience here becomes an ally of productivity.
3. Hubris
The quality that makes you write (and maintain) programs that other people won’t want to say bad things about.
Hubris, in this case, is that dash of confidence (well-dosed) that makes you care for your code with affection. It’s wanting to do well because you know that what you’re doing matters.
It appears when you refactor messy code just because “it couldn’t be left that way”, or when you finish a function and look at it with a little smile of pride or get that urge to say you’re awesome.
In fact, this feeling starts early. Remember your first Hello, World?
or when you solved your first Code Challenge
, whether in college or not, and then you want to show this to both Tech and Non-Tech people, and all these people see is a black screen with an Input and an Output, and then you simply say: “Isn’t it Cool!?” and the other person simply doesn’t understand anything because they haven’t gone through what you’ve gone through, and then you are arrogant, you are proud of yourself for the result of what you did and that’s good.
Conclusion
Recapping, Larry Wall’s three virtues define that a good programmer:
Is lazy enough not to repeat useless tasks,
impatient enough not to accept slow solutions,
and arrogant at the right point to make beautiful, clean, and functional code.
These virtues develop over time, with mistakes and projects. If you don’t see yourself in them, that’s okay, after all, it’s Larry Wall’s vision ;).
References
I hope you enjoyed the article and that it made you reflect at least a little bit. If you have any questions or suggestions, leave a comment below or contact me through LinkedIn.