Saw a very interesting read here.
Basically, it lists 5 main type of programmers
- The duct tape programmer
- The OCD perfectionist programmer
- The anti-programming programmer
- The half-ass programmer
- The theoretical programmer
My favourite, the duct tape programmer. He gets the fucking job done. It might not be pretty, it might not look beautiful, hell, it might be the furthest thing from poetry, but to hell with it. It works. And doesn’t break again. There’s a good read on the duct-tape programmer here.
I’ve experienced a type of programmer missing from that list tho.
The deflector programmer. He is the guy who constantly tries to deflect work from himself, claiming things including that the value add is low compared to the effort required, and thus not really worth doing, and yet at the same time, keeps suggesting minor updates for other programmers on the team, and insisting that they are necessary.
I think this kind of programmer is worse than any of the programmers listed above. Honestly, they spoil team morale, and has a negative impact to the team. It’s worse than no impact. I’ve met/worked with quite a few of these guys already. And they are a real pain in the ass.
Then comes the problem, with so many types of programmers around, how do we find a good one? Generally, despite what many people think, I do not believe knowing a certain programming language should ever be a requirement for a job. Rather, it should be a certain skill set, the ability to react, and the ability to learn fast that is what is important.
There’s this idea that people who code by google are lousy programmers, and dunno their stuff and therefore need to google. I beg to differ. I think that the ability to code by google shows how good a programmer is. After all, it shows that they are able to react and think on their feet. If they can code by google, it means that they learn on demand, and has displayed a mental capacity to be able to grow on demand and therefore show that they are able to improve as a programmer along the way, by themselves. A guy who can figure out things he doesn’t know on demand by himself, is the real programmer. Steven Benner has written an interesting post on it here.
“Real knowledge is to know the extent of ones ignorance” – Confucius