What types of programmers are there?

This episode describes twelve types of programmers that I thought to include. There is no neat way to group programmers so this is just some categories that I thought about and I hope it will help you to focus your efforts. Figure out what you’re good at and try to fill one of these roles.

  1. Architects have the vision and plan to build large scale software solutions. They’re good teammates and always available to help when needed. Architects have a lot of experience and can save you from making mistakes. They’re good communicators because they can’t do everything and need to get everybody working together.
  2. Automators love to build software that helps the whole team perform better and faster. If you’re the type of person who not only cleans up after yourself but thinks of ways to make it easier for others to do the same, then consider working on small utility projects.
  3. Database programmers are in their own world. They work with concepts that are very different than anybody else on the team.
  4. Debuggers have usually developed deep knowledge about how computers work and are able to think logically and methodically to pinpoint problems. Think of a debugger as an architect looking deep in the code.
  5. Designers are not always developers just because the skill needed to be a good designer is so different than learning how to program. Becoming at least familiar with the role of a designer will help make you a better programmer.
  6. Reporting developers understand how to organize and present data to the user. This is a different world just like database programmers. The tools needed to generate reports are sometimes very complicated and require special training.
  7. Infrastructure developers help the team run by keeping the software development systems up and running. These are your build engineers who maintain the computers you’ll use to make official builds of your project.
  8. Quality Assurance developers are a must. A good QA engineer just thinks differently than a developer. It’s a full time job of a QA engineer to try using your product like your users are certainly going to try.
  9. Security engineers are like a good QA engineer but I mention them in their own category because they have a knack not just of finding problems when your software is misused, but they know how to misuse it on purpose.
  10. Systems engineers understand how various operating systems work and how to use the full power of the system to help you write better products.
  11. User Interface developers make things look easy. But that’s actually very difficult to accomplish.
  12. Web developers in a way are just one type of user interface engineer. I decided to list web developers as their own category because there really is a vast difference in the skills needed to build great web applications vs. great native applications.