5 Types of Programmers – Which Type Are You?

There are many different types of programmers that perform software development. Or is it computer programming? Or is it coding? These are all labels or boxes we use to classify people and their skillsets. Much like we distinguishing between testers, coders, managers, architects, designers, CLO etc only these are much more obvious. So what exactly makes a coder a coder or a programmer a programmer? We may use them interchangeably to mean the same thing but from an outside perspective I like to think of them as badges or stripes. Something you earn with time, patience, wisdom and experience.

Some people just have certain qualities about them that make them good, bad, better or worse than the next person. In order to simply determine what these might be, I propose five boxes or labels.

  1. The tool user
  2. The tool user is the least experienced of them all. He has sufficient knowledge to poke around tools like Visual Studio 2005 and whack together a GUI simply by dragging and dropping widgets onto a form. To someone that does not know better, because he produces results that often look qualifying (thought about by the efforts of the tool and not his own doings), they think highly of him and / or his constructions. Why the term construction and not production or development? Well he does not really develop anything. He constructs things with the use of ever increasingly sophisticated tools. Good management that is cluey or tech savy will see past this but unfortunately (or fortunately for the better programmers of the world) he still finds his place. This is the worst kind of software developer. When something under the hood breaks or he / she needs to modify behavior to do anything fundamental, forget it. Languages ​​of choice: Would it really matter? It's all gibberish
    Software of choice: Any and all RAD tools that provide rapid development of clicky interfaces

  3. The hacker
  4. The hacker has moved beyond the notification of expecting tools to do all the work for him. He possesses basic or rudimentary development skills. No knowledge of compiled languages ​​but understands scripting languages ​​well enough to piece bits and pieces together. He can usually copy and paste scripts and tweak variables and functions. He does not usually understand the big picture of developing anything but he can hack at something he is given with pot luck. He trolls the web an forums looking for code snippets to do what he wants and pieces them together. Languages ​​of choice: Javascript, html, css, maybe limited php understanding
    Software of choice: Simple text editors, maybe text editors that provide syntax highlighting

  5. The programmer
  6. The programmer has a good understanding of what it is to code and write software. He does not rely on tools so much as his own understanding of the languages. He is not so phased about the tools he isues as he realizes the tools are not going to do the job for him. This oversight however blinds him from realizing the benefits that they can provide to a more experienced programmer. This unfamiliarity with tools and libraries; a result of limited exposure and experience in the wider field, over shadows him from the larger project environments that require versioning control, many developers and larger environments. He's just not familiar with it. Similarly, while a capable programmer, he does not need to think about how others will use what he writes and as such, does not really fit into the team building environment. He is a skilled 'lone programmer'. He might have skills, but nobody can work with him because he does not think above or below the line of code he writes. Languages ​​of choice: C ++, Java, C #, Visual Basic

  7. The developer
  8. The developer is an experienced programmer who understands there is much more to developing software than the lines of code it consists of. He possesses a much better understanding of software design concepts and principles than the programmer and thinks about a problem in its entity. Whilst he has a good understanding of this problem and is open to seeing it from most angles, he does not need to understand the entire domain to which it applies. With experienced programming skills it does not rely on tools but uses them to increase productivity. Languages ​​of choice: Typically prefers managed code over unmanaged code as it realizes the productivity boost that comes with it.
    Software of choice: The big development IDE's; anything that provides intelligence, syntax highlighting, code snippets, templates, formatting, etc.

  9. The architect
  10. The architect is the crème of the crop. He's a primed software developer with ten plus years of experience under the belt. He's passed well beyond just the technical side of developing software and understanding good solution design. He can walk into a business domain and connect up the dots people inside the domain could not. Leaning on many years of experience on what works and what does not, he's often hired out as a consultant for his valued expertise.

This much leader, yet specialized skill set puts him in high demand. When a company wants to bring in the big guns and call in a consultant. This is the guy.

Languages ​​of choice: Programming was something left to his youth, his consulting services require him to write very few lines of code.
Software of choice: Modeling tools, metric tools and tools for comparative purposes.

What types of programmers have you met / worked with in your walk of life?

Comments are closed.

Freelance Web Designer | Web Design | WordPress | Hong Kong