A programmer or a developer? A mini-dictionary of IT professions
If you’ve come across this article, you probably know a little about the IT industry. You surely know what technologies you are most comfortable working with, you can evaluate the extent of your knowledge, and perhaps you are even almost sure what career path you want to take. Yet, as you go over job ads - either on web portals or employer websites - you get a little dizzy reading all the job titles, don’t you? There are so many of them and they might seem confusing at the beginning. In this article, we will try to explain the main differences between some popular IT job titles, so that you can learn, for instance, how to distinguish between a Full Stack Developer and a Front-end Developer.
Web Developer is in charge of creating a service code for a server using a selected programming language, in order to enable correct data exchange between the server and the visitors. A WebDev can also be responsible for modifying the already-existing solutions based on Frameworks, SMFs and CMSs. This position usually requires tight cooperation with Web Designers, UX Specialists or Server Architects.
If you are thinking about becoming a WebDev, keep in mind that an interesting portfolio with samples of your work is as important as your technical competences.
This position combines 2 functions: „development” and “operations”. In real terms, it means that DevOps Engineers must not only develop software but also maintain the environment it is supposed to work in. They work closely with programmers and testers.
DevOps Engineers are also responsible for administering the operating system, configuring and maintaining development environments, ongoing system maintenance, automation of repetitive activities, and software version control. And so on, and so forth ;)
This kind of developer must be familiar with technologies such as Java, .Net, C++, Ruby, PHP, etc. His/her responsibilities include coding (websites, apps or systems) on their server-side, API´s creation, and organizing database communication. There are times, of course, when the front-end and back-end competences overlap. For someone who is as comfortable working on the front-end as they are on the back-end, chances are they can thrive as Full Stack Developers.
Full Stack Developer is someone who is not only able to code a system or an app on the server-side, but also see to the correct interface visualization and its functionality on the client-side. A Full-Stack Developer might not be equally fluent in both sides of the project, but they will be skilled enough to handle them on their own.
It often seems that becoming a Software Architect is the last step of a programmer’s career path. An architect is someone who has the final saying in the key technical decisions related to the product, which shows how much responsibility this position requires. Choosing the right technology, designing the solution, watching over the code quality, sharing your knowledge with programmers - these are only some of the architect’s main duties. Software Architects will often be in charge of one, or even several IT teams, which also determines that they don’t really code much themselves anymore.
Analyzing the required changes in the code, designing and implementing the requested functionalities, document drafting - these are some of the most important tasks for a Software Engineer. The key difference between this job and an “ordinary” programmer is the possibility to DESIGN solutions.
An analyst works closely with the client - more on a business level than a technical level. His/her task is to collect all the requirements the client has in terms of necessary functionalities, and then “translate” them to a technical language and pass on to the programmers. If you’d like to read more about what a business analyst’s job looks like, please refer to our previous articles.
A System Engineer is in charge of designing IT systems and networks and their further implementation and administration along with database installation and modification. This job also requires drafting different kinds of documentation (technical, testing and as-built).
Software Quality Control Engineer / Tester
Being a Software Quality Tester implies making sure that all the systems and software are working smoothly as well as running IT equipment functionality tests. Software testing is tightly related to its making process. Bear in mind that computer software testing is not only about checking if the systems are working as they should, but also and above all, about discovering errors and failures and the reasons they occur. As an effect of such tests new software is created or the existing one gets upgraded.
I sincerely hope that after reading these short explanations the job ads won’t give you a headache anymore. Like I mentioned at the beginning, though, the specific job description may vary according to the company. Don’t forget that!
Are there any other IT jobs whose functions you are not very clear about? Or perhaps you wish to add something to the explanations given here? Feel free to comment :)