Sample titles used:

  • Computer scientist
  • Software developer
  • Software engineer
  • Engineer
  • Computer Engineer
  • Development engineer
  • Web developer
  • Mobile applications developer (and specialties like Android apps or iOS apps developer)
  • Front end developer
  • Back end developer
  • Full stack developer
  • Devops engineer
  • Programmer
  • Computer programmer
  • Coder
  • Systems analyst
  • Information systems technician
  • Analyst/programmer
  • Database administrator (some are expected to developer database applications)
  • Software architect
  • Principal engineer
  • Senior engineer
  • Junior developer
  • Junior engineer
  • Data architect
  • Software consultant
  • Software craftsman

You can almost take a large set of nouns used in any business title and pair up with any of “engineer”, “developer”, “scientist”, “architect” and so on. The number of potential titles is huge.

The  list is far from complete – there are people writing statistical code in R, and health care analysts in informatics creating online records systems – and in so many other fields – who are also sometimes called programmers or coders or analysts.


Historically (meaning past 10-20 years), only about 1 in 4 “software developers” held a degree in computer science, engineering or even math. I have worked with peers who had no degree, a degree in history, a degree in geology, a degree in psychology, many with degrees in business, a degree in art history, degrees in physics, 2-year degrees, a degree in political science, and many with degrees in computer science and (typically) electrical engineering or mechanical engineering. Some of the people with no degree also turn out to be the most knowledgeable having self taught across a broad array of subjects (I know several people, in very different fields, who seem to know more than those who have even graduate degrees within their fields!)

Some web jobs involve no traditional programming – web page design, HTML, CSS – but are sometimes called web developers.

For good or bad, the only qualifications to write software, including for hire, are that you can write software. A side effect of that is that there is no consistent title in use. This, in turn, means government statistics on jobs and future employment opportunities may be meaningless as the titles are all over the map.

The title “engineer” has normally applied to those who have a degree with “engineering” in the title of the degree. In some states, even with a degree in engineering, you cannot use the title “engineer” (outside of work) unless you are a licensed Professional Engineer.

Much of the  media regards anyone who works in a technical capacity as an “engineer”, whether they have a degree in any related field or not. I recently read an article describing an elementary school program as a “computer science education program”. Really? In elementary school? Several high school curriculums are titled “engineering” (and they do introduce bona fide concepts of engineering). Some IT certification programs use the title “network engineer” for someone having no college degree.

Many metro areas now have “boot camp” programs that claim to train and certify individuals as “coders” in 3-6 months, full time, for a big fee.  The media refers to these graduates as “Coders”.

The media also runs news stories saying parents should encourage their children to be “coders” (I strongly disagree and might explain why another day.)

Finally, programming today is very different than it was in the 1960s, or the 1980s, or the dot com era. Today, many developers are using tools that make creating software solutions much simpler. A “coder” no longer needs to know about processor architecture or machine level instructions. A web developer has  little need to understand the theory of operating systems. While they must master many details of some programming languages (say Javascript or PHP), they no longer need to necessarily be experts on the “full stack” from user interface down into the details of a server operating system. Similarly, people are publishing real world applications for Android using a graphical user interface designer and graphical/blocks programming system (App Inventor) – and many have little knowledge of the Android OS or underlying API. And even little knowledge of software development concepts.

A consequence is that many of the new positions are akin to a mid-skilled blue collar worker (this also depends on how you define skilled blue collar worker).

What titles should we use?