What do we call someone who creates software?
Sample titles used:
- Computer scientist
- Software developer
- Software engineer
- Computer Engineer
- Development engineer
- Web developer
- Mobile applications developer (and specialities like Android apps or iOS apps developer)
- Front end developer
- Back end developer
- Full stack developer
- Devops engineer
- Computer programmer
- Systems analyst
- Information systems technician
- 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 could 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.)
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?