In the previous section of the Manual, we explained individual roles within the development team. Now we shall endeavour to differentiate different programmers according to the technologies they utilise. The following division is purely my own perspective, and it should not be taken as dogma. As the title suggests, this is more a list of types of programmer, rather than separate positions.
Depending on what part of the software the developer is working on, we can describe them as either backend of frontend developers. Backend means that part of the app which ensure functionality or which works with data, stores it, processes it (or in lay terms also the “guts” of the app). In contrast, the frontend is that part which we see and which we interact with – forms, photo galleries, interactive drag and drop, etc. Different technologies are used in the backend development than in frontend development.
Most commonly used in backend development: Java, PHP, Node.js, C#, .NET, Ruby on Rails. It is not normally within the power or interest of the programmer to learn and use all programming languages, and as such we encounter experts/positions such as:
- java programmer
- php programmer
- c# programmer
- .net programmer
- and others
If a programmer profiles him/herself as a backend developer, they may be able to handle a number of programming languages. They are implying that it doesn’t matter to them whether they are going to be developing software, e.g., in Java or C#. If, instead, the candidate CV states “Java developer”, it is basically pointless to offer them a position in .NET, even where this technology is stated elsewhere.
- Angular developer
- React developer
- Vue.js developer
- and others
The same parallel applies with position titles as for backend. If the developer’s CV states he/she is a Frontend developer, this may mean he/she works with a number of frontend technologies. The CV should be further investigated to ascertain what specific technologies he/she handles, and at what level.
Another “category” is mobile developers. The most widespread type of programmers who specialise in mobile development are iOS developers and Android developers. Swift or the older Objective-C are used to develop iOS apps, while Java SDK is used to develop Android apps. Hybrid frameworks are also sometimes currently used. The advantage of these is that one piece of source code can be used to “generate” both apps – for both Android and iOS. This approach has both pros and cons. It is important to remember that one of these frameworks is, e.g., Ionic.
Embedded developers are most commonly involved in developing control units. These may be control units for navigation devices, air-conditioning, auxiliary engines, dashboards, etc. It always involves so-called software within hardware – hence the word “embedded”. This type of software is most commonly written in C/C++.