Every single day, billions of people browse through countless webpages, websites, download applications, or use communication platforms. You enter the website URL in a bracket, and voila – the search engine takes you to it in a matter of seconds.
Today, there are more than 1.7 billion websites, and the number is growing every second. Out of these, only some 200 million are active. From only one website in 1991 to over 1 billion in less than 30 years – the growth is impressive, right?
Any company that wants to succeed in business doesn’t have a choice of staying offline anymore. Creating a website is like building digital business headquarters, and somebody needs to code it, build it, analyse, and maintain.
That somebody is a web developer. What web developers do is they basically translate common language into a computer code.
If you’re interested in finding out how the magic happens or would like to pursue a career behind the scenes of creating internet content, you’re at the right place. Here we are going to explain everything you need to know about web development, its different types, necessary skills, and responsibilities.
What kind of web development is there?
You may have heard of front-end, back-end, and maybe also full-stack web development.
These three different titles stand for different parts of the website building process – user interface implementation (front-end) and server-side program creation (back-end). The third title denotes a person who’s mastered the entire process, and is capable of either monitoring work, or doing the whole process on their own (in case of smaller projects).
Now let’s go through all three.
What is a front-end developer?
Front-end developers translate web design aesthetics into a user interface. Everything you see and click on a website is created by a front-ender: fonts, colours, pushbuttons, drop-down menus, sliders, etc. Front-enders need to have some artistic sensibility, as their main care is data appeal and presentation. If you’d like to combine some coding with your creative skills, front-end programming might be right for you.
Skills and tools
HTML is short for Hypertext Markup Language, and it’s used for structuring and organising a webpage and its content. Every page we encounter on the internet is written in some version of HTML.
Basically, HTML provides a web page skeleton, ensuring that the images and text are correctly formatted for a browser to read them. The browser can not possibly load them on its own, as it needs a programmed instruction. This is what we meant by saying that the front-ender’s job is to translate common language into code.
While HTML provides the bones, CSS can be compared to skin, as it has everything to do with website appearance. The acronym stands for Cascading Style Sheet as it specifies the style of documents by helping design layouts, fonts, and colours. HTML ensures that elements exist on the web page, while CSS is responsible for their looks.
HTTP stands for HyperText Transfer Protocol, and it’s used by the World Wide Web for communication between the server and the user device. It’s a part of the internet protocol which defines commands and services necessary for transferring data through the web. Moreover, URLs (Uniform Resource Locator) are used to specify addresses on the internet.
Besides programming languages, front-enders need to be familiar with different frameworks and libraries for adapting content to various devices. Some of these are Bootstrap, Backbone, EmberJS, JQuery, Underscore or AngularJS. They provide built-in features for automatic resizing of the web page (or website) to easily fit a mobile app and have lots of features that help you cut down manual work and simplify programming.
Technical knowledge in the abovementioned programming languages and frameworks is not the only skill-set necessary for successful front-end development. Being communicative and a team-player is also important, as web-development projects are rarely a one-man show, especially big ones. Front-enders need to communicate and coordinate with back-end and full-stack developers, as well as with designers, user-experience analysts, or even stakeholders. They need to be able to assess and identify potential issues in user experience and offer recommendations and solutions in design.
This is why being a visual type with a strong sense for both aesthetics and practicality are almost equally important in front-end web development.
Here, we’ll briefly sum up some of the responsibilities that you’ll often find in a front-end developer’s job description:
- Creating efficient, testable, and reusable codes by using software development skills
- Building libraries for future use
- Creating a user interface with HTML and CSS
- Integrating data from back-end databases
- Design-functionality optimisation
- Optimising products for maximum speed and scalability
- Collaboration with a team/stakeholders
- Input validation before delivering materials to back-enders
Front-end job titles
While browsing through some job ads, you may have noticed several different titles revolving around similar descriptions. Some of the commonly used titles are:
- Front-end developer
- Front-end engineer
- CSS/HTML developer
- User-interface developer
- Mobile/tablet front-end developer
- Front-end SEO expert
- Front-end accessibility expert
Each different title stands for the same position, but specific formulations denote the exact necessary expertise.
For example, ‘front-end SEO expert’ needs to know a lot about search engine optimisation, while ‘mobile/tablet front-end developer’ is expected to have experience in developing apps and websites that run on these devices.
After listing skills and responsibilities of a front-end developer we thought that dealing with some possible job interview questions could give you an overview of what companies find the most important regarding this position.
- Assessing whether you really know how to code
This could be performed from the commodity of your home, as the employer might ask you to create something super-simple, like a click counter. Their goal with this initial task is not to overwhelm you, but to see whether you can code at all.
- General knowledge assessment
Besides knowing how to code, a good candidate needs to be prepared to solve common problems, read code, and know when and how to use specific features and solutions.
- Personality assessment
Teamwork between programmers, designers, stakeholders, SEO experts, user experience analysts, and others is extremely important for successful web development. That’s why the employer might want to find out about your sociability, extroversion, or how you react in specific situations.
What is a back-end developer?
If front-enders are responsible for everything you see and ‘touch’ on a website, we can say that back-enders are handling what’s ‘behind the scenes’.
But, what is behind scenes in web development?
Well, there are three main things: the server, the database, and the application.
Back-end developers create codes that control how websites load and run on the server-side. The server receives requests from the ‘clients’ and has an implemented logic to send data back to them. The database stores all data relevant for the application, while the application is the ‘middle man’ – it takes in requests, retrieves data from the base, and sends back responses. ‘Client’ in this case is anything that sends a request to the back end – browsers, mobile applications, even smart appliances.
As you can see, this is a complex machinery, so the human ‘operator’, a.k.a. the back-end web developer needs to build and maintain the technology that will power these elements, as they are necessary for the user interface to exist and function.
If you’re more into complex problem solving and hard coding, back-end development might be right for you.
Skills and tools
Back-end developers have to master an even longer list of programming languages than front-enders because their job is more delicate and complex, as the entire system depends on it.
Some of the server-side programming languages they use are Python, PHP, Java, Ruby, .Net. Moreover, they need to be familiar with certain tools and frameworks that help them save or change data, or return it to the front-end user, such as Oracle, SQL, MySQL, or PHP specific frameworks like Symphony, Zend, CakePHP. Back-end programming knowledge will probably include working in the Linux operating system or software like CVS, Git, or SVN.
PHP or Hypertext Pre-Processor is used for static or dynamic websites and applications. The three main areas this scripting language covers are server-side scripting, command-line scripting, and writing desktop applications.
Ruby and Python are multi-use languages for creating apps, sites, and back-end scripts. The difference between them is that Python has a single solution to every problem, while Ruby offers a more versatile approach. They are also used for data analysis, prototyping, or proving concepts.
Similar to these, .Net is also used for creating mobile, web, or Windows applications, and it’s friendly with numerous programming languages like C#, C++, or F#.
Frameworks are not necessary for application or website building, but they do offer tools and scaffolds to help programmers work faster and easier, as they offer template creation, simplify repetitive tasks, and pack the data into one place. They can be compared to libraries of files and functions made to save you from coding the same basic things over and over again.
The other skills that a back-ender must possess are pretty much similar to those required of a front-ender, and these are the so-called soft-skills. Back-end developers need to communicate with stakeholders, or clients, understand their exact needs, and build the most efficient solutions for them, while at the same time collaborating closely with front-enders. Moreover, they have to be responsive and efficient problem-solvers, interested in riddles and mind-games, as that’s what their job is mostly about.
Here is a brief list of responsibilities that a back-end developer might need to handle on their job:
- Analyse data, processes, or codes, and make them more functional and cohesive;
- Search for potential problems, their source, and ways of improvement;
- Teamwork with front-end developers;
- Project leading if necessary;
- Developing new programs, features, or product ideas;
- Staying up-to-date with trends in the industry;
- Reporting to clients or company management;
- Constant learning – conferences, training, new programming languages.
Back-end job titles
Back-end job titles might take various forms depending on what’s necessary for the position. Besides ‘back-end developer’, or ‘back-end engineer’, you might run into very specific titles like ‘Ruby developer’, or ‘PHP developer’, etc. Such descriptions denote that knowledge in that specific programming language is crucial for the job position.
So far, you probably have realised what back-end development is mostly about, but as mentioned above, tackling some interview questions could give you more context on what employers find the most important.
- Your programming and work preferences
You might be asked to name your favourite programming language and explain why you prefer working in it. This type of question is a chance for a developer to show enthusiasm about their work and share their experience. You might as well be asked to talk about your last job position. What did you like the most, what would you change?
- General knowledge assessment
Problem-solving is the basis of back-end development. That’s why a sheer amount of knowledge is necessary, so you can utilise it when you run into a problem. You might be asked questions such as: what is an Anti-corruption layer, how do you deal with Dependency Hell, why do array indexes start with 0, what is the difference between design and architecture, why are stateless services important, when do you use REST/SOAP, etc.
- ‘Bill Gates’ questions
These are also called ‘manhole cover questions’ and are made for assessing how the candidate approaches ‘weird’ questions that have more than one correct answer. We think you’d agree that there is some social prejudice about programmers being overly introverted, solo-flyers, or asocial. By asking you some of these questions, an employer can find out more about your flexibility, agreeableness, extroversion, and personality in general, and figure out how much of a team-player you are.
For example, they could ask you: what would happen if you put a mirror in a scanner, or would you like to work for a perfect clone of yourself? You might be asked to change roles with the interviewer, and ask them questions, or talk about your aspirations and where you see yourself in the future. They could ask you about your behaviour in social situations, and much more.
What is a full-stack developer
If you’re still wondering what is a web developer, this is the closest you can get with the answer. A full-stack developer is that guy who’s transcended both front-end and back-end web development and can combine a bit from both worlds.
Full-stack developers are usually those who monitor large projects and jump-in if necessary to solve problems in both the front-end and back-end area. They can handle server-side programming, databases, user-interfaces, or plan the project with a client, as they are fully aware of every step that needs to be taken once a project starts.
When it comes to smaller, low-budget web development projects, full-stackers are usually capable of handling the entire process on their own.
Since the market is becoming more and more fluid and the line between front-end and back-end tasks is getting blurry, more and more people are reorienting to building a full-stack developer career. Moreover, companies are often looking for people who know how to work on all parts of the site, as they can usually choose the best tools and languages. As the position comes with a lot more responsibilities and expectations, full-stack developers earn the most among all three positions, so that’s why it’s very appealing to master both sides of the process.
Skills and tools
Full-stack developers are expected to handle all of the above-mentioned programming languages and frameworks.
Of course, they also have to master PHP, Python, Ruby, and have experience with applications, databases, and their related frameworks.
Basically, they have to know everything, from setting up Linux servers and writing server-side codes, to translating design into the CSS code.
It is preferred if full-stack developers are capable of monitoring the website building process in case of huge projects, and it’s necessary for them to know a lot about system security and data protection. Sometimes, these people can be user-experience analysts or need to have some additional skills like SEO, or visual design.
As they are the most experienced in the field, they are usually able to identify and address any potential issue in the product and offer quick and effective solutions.
We could simply say that full-stack development requires a next-level analytical mindset, with advanced problem-solving skills.
Nevertheless, just like the previous two positions, they mustn’t lack soft skills, as they need to communicate with stakeholders, designers, and front-end and back-end colleagues.
As expected, a full-stack developer has a number of responsibilities that are even more complex than the previous two positions. Finding out what companies expect from a full-stacker might help you decide whether you’re ready to engage in the process of becoming one.
Here’s a brief list:
- Back-end developing
- Front-end developing
- Cross-platform optimising
- Creating functional and efficient servers and databases
- Creating responsive applications/websites
- Working in a team with graphic designers, web designers, and other developers
- Monitoring a project from its conception to realisation
- Creating and developing APIs
- High awareness about system security and data protection
- Understanding and integrating both consumers’ and technical needs
- Constant learning of new programming languages and frameworks
- Staying up-to-date with innovations in the industry
- Having creative ideas for work efficiency improvements
As you can see, it’s not only about applying front-end and back-end knowledge, but having a holistic approach, and engineering full solutions.
As mentioned in the examples above, you might sometimes run into different job titles describing similar or same positions. Here are some of the names you might see:
- Full-stack developer
- Full-stack engineer
- AreaX software engineer
- Full Stack Software Engineer (React & Python)
When a specific program is introduced in the job title, it denotes candidates’ required area of experience.
- General knowledge assessment
Full-stack developers require the highest level of knowledge in the field, so you might be asked some simple questions like to explain what is DevOps, or inversion of control, or what’s the difference between git-pull and git-fetch. On the other hand, there are some more complex questions that might come your way as well, and the employer could ask you to build or read a bridge pattern, or an observer pattern and explain it. They could give you a complex line of code, and ask you to explain its output, or to compare two different languages, features, or frameworks.
Since this is the most important part of a full-stack developer’s job, the employer will probably give you some ‘what if’ situations and expect you to react. They could ask you to identify and fix a flaw in database design or explain how you would prevent a bot from going over a publicly accessible API.
Some questions could involve describing your reactions in unpleasant team-work situations, or you could be handed some of the above-mentioned ‘Bill Gates’ questions as well.
What are the key differences between back-end and front-end dev?
If all this text was too much information for you, and things got a bit fuzzy, don’t worry. We prepared this table where we’ve sorted key differences between back-end and front-end web development, to help you figure out what is your preference.
|Front-end developers||Back-end developers|
|Part of website they’re responsible for||User interface||Server-side coding (server, database, application)|
|Main tasks||Translating web design into a website, by segmenting content, adjusting its looks, and actions.||Creating codes on the server-side, that control how websites work.|
|Responsibilities||Creating codes for building a functional and appealing user interface; |
Optimising products for maximum speed and scalability;
Data integration with back-end databases;
|Creating functional and cohesive codes; |
Detecting issues and offering efficient solutions;
Developing new programs, features or ideas to make work more efficient;
If you choose to take the web development professional path, don’t forget that you don’t have to learn everything at once.
For example, maybe you like front-end development now, and with time, you decide to dig deeper and build skills in that area, but you may also become interested in back-end development and learn that, which will then make you – a full-stack developer.