It’s been a long time since web development has become a multilevel process hierarchically divided into two parts: back end and front end. Back end is code executed on a server containing a website or a web application and also their databases and operation algorithms. Front end is the client side of the user interface to the hardware-software part. These terms originate from dividing responsibilities between the internal implementation and external representation.
First of all, it is code executed in a browser. It is responsible for displaying a web application or a website and the operability of all elements on various devices, i.e. clients. For clarity, right-click on this page to open a context menu and choose ‘View page source’ (or something similar if you’re not using Chrome) — you’ll see the source code. Thanks to it, a browser understands, processes, and properly shares data: texts, fonts, colours, images, menus, buttons, forms, and scripts. You can take a closer look at each element if you right-click on it and choose ‘Inspect.’
The front end is diverse, so let’s move on from our website to others:
The front end constantly interacts with a back end — thus, they work according to the ‘client-server’ architecture. Using a front end, a client device sends a user request to a server; a server then processes the request and responds with coded data as a result; the front end receives it and turns it into an understandable form that the client displays to a user.
To put it shortly, the front end is everything you see on the Internet and also what users of your website or application will see while interacting with them. But first, you need to find a front-end developer who will create it.
These specialists develop the client side of web sources. Up until the mid-2000s, their job was easy because back then everybody created simple websites that required only proper layout markup. It was enough just to transfer the created design to code using HTML and CSS. When Web 2.0 came around, websites evolved — almost all of them became dynamic, received engines, and beautified with interactive elements. Even brochure websites and home pages have been renovated. As a result, demand for the development of complex projects has appeared, and layout makers retrained as front-end developers.
However, some layout makers refrained from studying JavaScript and PHP. Some of them remain narrow-focused specialists that continue to divide PSD into elements and create styles. That’s why you shouldn’t confuse them with front-end developers who are also good at layout markup but would hardly provide this service on its own; they would rather refer you to a professional layout maker. It’s either boring or cheap for them — it’s not for nothing that they built on their skills. But if necessary, for example during a complex project, front-end developers could both mark up a layout from scratch and rework something in a third-party ordered layout, as well as adapt a template to a CMS.
When web applications became more powerful and gained more functionality, front-end developers started creating enhanced user interfaces (UI). Such interfaces include personal accounts linked with social media profiles, support contact forms, online payment forms, functions for people with disabilities, etc. All of these should function visually, and most importantly — solve user tasks. If needs are not met, user experience (UX) with a web application worsens. Project owners have finally come to appreciate their users to the extent that specialisation of a UI/UX designer has emerged. So, most often, a front-end developer acts as a designer of an interface, although in large companies a UI/UX designer performs this duty while a developer is busier with programming.
Front-end developers also optimise and refactor JavaScript code. Demand for these rises from the development and update of browsers that require quick code adaptation. Sometimes, they test and debug JS code, although testers would do a better job here. Especially if the code is written by the company’s sole front-end developer, only another developer would be able to identify their errors more quickly and accurately.
Hence, professional front-end developers are a jack-of-all-trades. They are capable of creating a part of or an entire front end from scratch, as well as connecting parts ordered from narrow specialists. As a result, thanks to their efforts, your web application will be convenient, functional, pleasant, and dynamic.
Each part of a website or a web application is written in a different language. Here, the basic ones are style and markup languages used to write a source code of web pages. We can conditionally call them simple languages because even beginners can quickly master them. Or more precisely, they have to — as they can’t move on in web development without them (or they can forever mark up layouts). The more complex and extended stage is programming languages.
Let’s start with the 3 pillars that hold the World Wide Web together. Any front-end developer must know these 3 languages:
It was invented by Tim Berners-Lee. He published the language’s description back in 1991. IETF acknowledged its specification in 1993. In 1995, they upgraded it and released a specification HTML 2.0, which became an Internet standard for the first time. Since 1996, the language has been supported by W3C. The current version—HTML5—is used as a standard by developers and has been supported by browsers since 2013.
CSS was created by Håkon Wium Lie. He proposed the concept in 1994. He received support from Bert Bos of W3C, who became a co-author of the CSS1 standard. W3C recommended the latter in 1996. The current version—CSS2.1—has been the preferred standard since 2011. However, developers and browsers try to support the CSS3 specification, which is currently being developed. It allows the creation of animated elements without applying JS, shadows, anti-aliasing, or linear and radial gradients.
XML was created by a team of 11 members headed by tech lead James Clark. After reaching a consensus on key decisions, the team published a draft of the XML specification in 1996. A clean copy was created by co-editors Michael Sperberg-McQueen and Tim Bray in 1997. In 1998, XML 1.0 was recommended by W3C. That version, namely its fifth edition dated November 2008, is still relevant.
And here’s what is not required but may become useful for some projects that are more about the back end or layout markup:
The times when webpage source code was written in Notepad and then saved with the .html extension are long gone. Today, front-end developers make their work easier using HTML/CSS frameworks. In 2021, the most popular ones are:
The choice of programming languages for a front end is way more scarce than for a back end. Up until the 2010s, there was no choice at all — JavaScript was used everywhere. Alternatives started emerging in the last 10 years, and most of them are still aligned with JavaScript by extending its syntax and possibilities and compiling their code in it. Concurrently, the front end employs PHP but only in patches — this language is mostly used in the back end.
JavaScript (JS) is a multi-paradigm language that supports object-oriented, imperative, and functional styles. Usually, it becomes the first programming language for beginners who learn how to make pages interactive and then how to develop a front end. JavaScript is easy to grasp because it has been initially created to be easily understood even by non-programmers. Due to this, layout makers and web designers gradually get into it even if they don’t intend to use it professionally.
JavaScript was created by Brendan Eich when he started working at Netscape Communications. The corporation hired him to integrate the Scheme language into the browser Netscape Navigator, which also required adding a scripting language at some point. Soon, executives changed their minds and assigned Mr Eich the task to develop a whole new language with a syntax more similar to Java rather than Scheme or any other scripting language. Due to this fact, the new browser’s release dated December 1995 listed the new language as JavaScript, although in a beta version dated September it was named LiveScript.
Although some consider JS to be outdated and others try to replace it with new functions of HTML and CSS, many people use this language to animate their static pages, turning them into dynamic ones or even into full-fledged web apps. JS allows the creation of simple things using easy methods and fully integrates with HTML and CSS.
JS provides interaction of a user with a front end: processes cursor movement and button/key clicks, reacts to them by executing programmed actions on a page or by changing the behaviour of its elements. It also arranges the interaction of a front end with a back end: sends requests to a server, receives data, all done without reloading a page.
Programs written in JS are called scripts; they are connected to HTML in a browser and executed when loading pages. Using an interpreter, scripts can be run anywhere, so JS can be executed outside of browsers. For example, it is used for writing mobile apps, widgets for a desktop, macros for office programs, scripts for Photoshop and for space flight tasks.
JavaScript also has frameworks and libraries that make it easier to code or achieve cross-browser compatibility when developing web applications. There are so many of them that there’s even a joke that each month a new JS framework is released. Here are the top 10 popular frameworks and libraries, ordered by decreasing percentage of usage when developing in JS (data from stateofjs.com for 2020):
After JavaScript, Brendan Eich also created ECMAScript. Ecma International made its specification a standard in 1997. It became the basis for creating other scripting languages: in 1996, Microsoft released a scripting language JScript, and in 1998, Macromedia released an object-oriented language ActionScript. However, the first one was created for Microsoft products (Windows, ASP, .NET). The second one created some competition for JavaScript by making edgy applications, websites, and games on Flash. ActionScript was used to make beautifully animated versions of websites in the 2000s, but with the further development of browsers, smartphones, HTML, and CSS, the Flash Player was no longer needed, and Flash content no longer attracted anyone. In December 2020, Adobe, which acquired Macromedia in 2005, stopped supporting Adobe Flash.
In 2012, Microsoft released a multi-paradigm language TypeScript. It was developed by software engineer Anders Hejlsberg based on the ECMAScript 5 standard. Microsoft’s lead architect is also famous as a creator of Turbo Pascal, Delphi, and C#. TypeScript is marketed as a language for web application development that extends JavaScript. It is backwards compatible with JS and compiles to it, so such an application can be run in any browser or together with a server platform Node.js.
After Flash, the time has come for TypeScript to compete with JS in the last decade. Many JavaScript and front-end developers with reviews have already accustomed themselves to it and applied it when writing scripts. This skill gives them a competitive advantage in the labour market. And here are some other languages you can find in a CV and note that a future employee can scale horizontally:
In all of these languages, it is possible to compile scripts and applications to both native code and JavaScript.
The last strong competitor to JS is WebAssembly. It is a low-level programming language created by a team of developers from W3C, Mozilla, Microsoft, Google, and Apple in 2015. It is already supported by the browsers of these IT corporations that are actively involved in its growth.
It’s not easy to hire experienced front-end developers, although there are many of them in the labour and service market. Some employers look for them on freelance marketplaces, others publish vacancies and sort out CVs on HR portals, still others delegate the entire turnkey development to a third-party team. Let’s look at each option so that you can choose what’s suitable.
First, a company needs to find front-end developers on service marketplaces like Fiverr, Guru, PeoplePerHour, or Upwork. Then, your team leader studies their portfolios and reads feedback from those who have worked with them. The next stage is he/she needs to discuss the upcoming work, clearly define the tasks in a detailed TOR, and agree on a deadline. After that, you can place an order through a marketplace, detailing all the agreed upon terms and specifications. Although you can publish an order first, and then process the requests following the same principle.
Benefits:
Shortcomings:
An employer needs to open a position on an HR portal like Adzuna, Indeed, Monster, or Reed. Then, your HR manager studies requests and CVs of applicants with front-end development experience. Alternatively, he/she can headhunt on the same portals or LinkedIn. After that, you ask a candidate for an interview where the latter would talk about themselves and learn more about what they need to do in your company. All of this looks like traditional employment.
Benefits:
Shortcomings:
This is somewhere in between the first two methods. By attracting a dedicated team of remote front-end developers to the project, you get a bunch of temporary freelance employees. Not necessarily all the specialists at once but only those who you actually need, with an opportunity of later attracting someone who wasn’t needed at the first stage. A third-party team only comprises verified and practised front-end developers. Moreover, they have some experience in working together, so there is no risk of sabotage.
Benefits:
Shortcoming: in this case, the cost of front-end developers’ services is higher than that of single freelancers. However, it is still far cheaper than keeping full-time employees.
On freelance marketplaces, front-end devs specify the minimum pay rate from which they start, usually from €9 or $10. This being the case, customers can’t estimate the cost of front-end development services as freelancers offer such low rates for only something simple, e.g. pre-consulting or making a plan.
It’s way easier to pay outsourced remote front-end developers when the payment is hourly. Their hourly rate is fixed and doesn’t change throughout the year, e.g. €45 or $50.
To complete the picture, employers should know the salaries that other companies are willing to pay full-time employees. They vary significantly depending on the required experience or level. Recruiters divide candidates the old-fashioned way — by experience in years. Devs themselves prefer division into junior, middle, senior, and lead developers. These are levels that correspond to a set of skills, technology stack, as well as the ability to work independently. If you combine all of these approaches, you will get the following:
The British IT labour market sees a great difference between London salaries and those in other regions and counties. We have collected open positions for 3 occupational levels from reed.co.uk and indeed.co.uk, then sorted them by level and city (London | other cities and towns). After that, we calculated the average salary for each of the 6 groups. Here’s how much a front-end dev can be paid in the United Kingdom (data for March 2022):
Level | Average annual salary (London) | Average annual salary (other cities & towns) |
---|---|---|
Junior | 30,000 GBP | 27,000 GBP |
Middle | 61,000 GBP | 46,000 GBP |
Senior | 67,000 GBP | 59,000 GBP |
Speaking of the Russian labour market, we can also notice a huge difference between Moscow salaries and those in other regions. We have collected open positions for 3 occupational levels from superjob.ru and zarplata.ru, then sorted them by level and city (Moscow | other cities and towns). After that, we calculated the average salary for each of the 6 groups. Here’s how much a front-end dev can be paid in Russia (data for March 2022):
Level | Average monthly salary (Moscow) | Average monthly salary (other cities & towns) |
---|---|---|
Junior | 98,000 RUB | 73,000 RUB |
Middle | 150,000 RUB | 135,000 RUB |
Senior | 222,000 RUB | 200,000 RUB |