There are two types of programmers
As with any all-encompassing field, there are many ways to group Computer Programmers.
Ignoring the language they use, the career level and experience, the style, whether they think HTML is a programming language, I figured that when it comes down to the basics there are only two major types of programmers: Engineers and Artists.
Not so long ago, I would have said all of us are both. Writing a piece of code felt similar to writing poetry, so we’re artists.
At the same time, a popular belief is that we are engineers, since we can handle Math better than the average person, and some programmers actually are quite talented Mathematicians.
The older I grow, it’s clear that not everyone is the same as me. This is true in more than just programming. With programming, in particular, I came to this conclusion after my boss was forced to change 8 other developers in the last 7 years (we were never more than 3 in the team) because I was annoyed at them for writing ugly industrial code. That feeling would spill over, so we would end up fighting for various other stupid reasons.
They would deliver much faster than me, exactly according to specification, nothing more, nothing less. Whereas I wasted time making my code flexible, interfaces highly customizable, components reusable, and other silly things like these.
I am obviously biased, we all think that our methods are the best, but trying to turn my empathy as high as I can, I have to admit being fast is more desirable in most cases. Sometimes you just need the fastest code you can deliver so you can hook your client (or impress your manager). If they want to modify a feature, they would have to pay you extra.
That’s a business model and many companies would rather have that than getting paid once, maybe delivering late because Cornel wanted to have a Settings UI that took more than expected, then the client having no need for them anymore.
If you are a programmer, are you an Artist or an Engineer?
If you are hiring a programmer, which type do you need?