What type of programmer are you ?

Inspired by a discussion with my friend and colleague ‘Dr Deadbeef’ , I’ve lately  been thinking about different types of programmer’s:

Over the past almost 30 years I’ve been in the software business, I’ve seen 3 different types of programmers, with respect to the quality and problem solving ability of their programming skills:

  • the type who can mechanically reproduce an existing working program, or to make a minor change to an existing program
  • the type who can invent a fully new program, i.e create a solution for a problem,  but are  often unable to explain how it works
  • the type who can invent a program, make it elegant in design, and are able to explain how it works to a novice

The first type, those who can mechanically reproduce or modify an existing program, are people who are not ‘natural problem solvers’ ,nor natural programmers,  nor interested in becoming one: this type of programmers have learned the mechanics and basics of programming, of a specific language, but lack in general understanding of general problem solving, abstractions and the semantics of the languages in use, and have no interest in learning ‘the theory of computer science’: These folks are the ‘masses’ of programmers in the world.

At the next level (where I see myself being) are people who can solve any solvable (remember Turing Theorem) computing problem, but where the final solution often is far from clear to anyone else, with messy design, often not clear even to the programmer him/herself when returning to the program after some time of absence.

At the third level are people like my friends Mikael V. or Anders H. who are able not only to solve any problem given to them, but furthermore, make the solution elegant,  so simple and obvious that even moron’s like me understands the solution.

Too bad that the contemporary commercial ‘shareholder value’ based economy fails to appreciate the value of people like Mikael V. and Anders H.

[Edit 140108: Anders H. suggested a fourth category:

"Can add a major feature to an existing architecture without bloating och
breaking it.

Very true. Sits probably at second highest place. ]

Advertisements

About swdevperestroika

High tech industry veteran, avid hacker reluctantly transformed to mgmt consultant.
This entry was posted in development, software and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s