20.12.2018 – The jack-of-all-trades software developer who is able to do everything is a thing of the past. The software industry has grown. Today, there is a large number of programming languages and technologies. To do their job well, a developer needs to specialize in one field.
This makes sense, because it’s the case in so many other professions. School teachers do not teach every subject. Engineers have specializations too, like civil engineering, ship building or aircraft construction. Or would you want to board a plane which wasn’t built by a specialist?
In the past, software development specializations were usually the programming language or technology. You were a C++ application developer, a systems developer, or a network administrator. But with new languages, frameworks and technologies came new classifications of software specializations. Today, there is a whole range of job titles in the field of software development.
The most common areas for programmers today are front-end, back-end, and mobile development. Of course there are other specializations, some of which you may have heard of. Does game development, DevOps or data science ring a bell?
Let’s stay with the main three areas. What exactly do front end, back end, and mobile developers do?
What are their tasks and expertise and how do they differ from each other? And how would you do in each of these roles? Find out which software development specialization is the one for you!
Front end developer
Front end development is all about what the user sees. It’s in the name: front. This includes UI (user interface), UX (user experience) and any means of user interaction.
Technically, every developer who builds a user interface is a front end developer. But so many things have a user interface: simple websites (homepages), complex web applications (see Facebook, Medium, or Google Mail), systems applications (like Microsoft Word on Windows), apps on smartphones, or embedded applications (which for example run on vending machines and kiosks). Typically, the term “front end developer” refers to the developer specialized in the front-end part of web development.
The front end developer’s task is to develop the interface of a website with HTML, CSS and JavaScript. Typically, a designer first creates a layout for a website, and the front end developer then has to implement that. This goes beyond just looks. Functionality is very important. For example, what happens when the user clicks on a button? Will a pop-up open? Will it bring you to the next page, or will it send data to a server?
Connecting the front end to a server application adds more tasks to this list. In this case, data needs to be exchanged via an API (Application Programming Interface, the interface with the server application). Does the website allow for the user to log into an account? If so, authentication needs to be implemented in the front end as well. A front end developer needs to create and program all of these functions.
The indispensable basic skills for front end developers are HTML, CSS, and JavaScript. HTML is a language which describes the basic structure of a website. It marks headings, paragraphs, links, pictures, and much more. CSS is for styling, coloring, placement, or spacing of HTML elements. JavaScript is the language that is used for creating interaction. Unlike HTML and CSS, it is a proper scripting language that provides functions, if-then logic, and loops.
The more elements on a website, the more tasks and challenges for the front end developer. Fortunately, there are a lot of tools, libraries and frameworks that help with these tasks. The community of web developers is large. They created an ecosystem of tools, frameworks, libraries, and languages. The world wide web is constantly evolving, and there are new standards and tools time and again. You might have heard of HTML5 and CSS3 as state-of-the-art standards for HTML and CSS. For JavaScript, the latest standard is ES6 (ECMAScript 6).