Every time you or me visit a website online, there are two main aspects to the experience. First, how it actually works beneath the surface, and second, how it looks. Each one of these two areas are programmed by two different groups of techies: the back-end development vs front-end development.
Alternatively, the former are called web designers, the latter web developers, respectively.
But what’s the difference between these two exactly? In this post, I’ll discuss the distinction between back-end development vs front-end development. Perhaps you’re interested in website projects yourself or simply wish to know more about how your favorite sites are created? In that case, read on!
For anyone interested in learning programming, the single most interesting difference between front-end and back-end development is that they make use of different programming languages. As a beginner programmer, when you initially decide on what it is you wish to achieve with programming, you’ll be focusing on either the back-end or the front-end development.
Of course, it’s possible to master both areas. In that case you would be a full-stack developer.
— See also: How to Choose Your First Programming Language
These days, most websites are dynamic and show different content depending on who’s using the site. You can log into your user account on your favourite websites and see your own posts and those of your friends. But how does the website know who you’re friends with? And how does it remember everything you write and post? This is where back-end developers come into play.
Back-end development uses a database to store all data that is linked to you. To be able to retrieve this data correctly and quickly when needed, back-end developers use servers and applications to complement the database.
So when you log in on your web browser, the server receives a request from your browser, saying you’d like to log in and see your wall or landing page. The database retrieves the right data and sends it back to your browser, and you see a welcome message on your screen.
When it comes to a specific website or a project, back-end developers design data structures and other necessary frameworks that best suit the project. They need to figure out how to store user data in an efficient way, for example. That way you and I will enjoy a fast and reliable social media experience.
Tools for back-end development
The programming languages used by back-end developers focus on database management and the different dynamics and functionalities of a website. These are often called server-side languages, and include such beautiful examples like:
Developers use SQL to create the database itself for a specific project. The other languages are ones that the database recognises and which build the actual functionalities of the website, such as creating a user account. In a way they translate user inputs into something that is stored in the database. These powerful programming languages make your favourite websites work!
Example of a back-end design pattern
When I first started with programming, I sometimes had difficulties to wrap my head around how it all really worked.
To help grasp what’s really happening with the interface, server, and database, think of a shop, for example. You first tell the salesperson what it is you want. That’s your user interface. The sales clerk just looks pretty but, unfortunately, isn’t too bright, so they have to ask their boss what to do. The boss is only good at delegating tasks to other employees. So the boss makes the smartest, fastest, most suitable employee get the product you wanted from the storage. Then, the product finally goes to the salesperson, who presents it to you.
This design pattern with the three operators (pretty salesperson, boss, and smart employee) is how most back-end tasks run in web applications, such as social media.
The pattern is called the Model-view-controller framework (MVC). The model is the smart employee working in the background, the view is the pretty salesperson, and finally, the controller is the bossy supervisor.
For a more detailed explanation, check out my post on the model-view-controller.
Storing user data is cool and all, but what makes your favorite websites look good then? Front-end developers create the look and feel of every page you visit. In other words, they are responsible for the part of a webpage you directly interact with and can see. They create and determine the layouts, colors, fonts, and other styling elements.
Front-end developers also make sure to consider the brand identity and the emotional experience the website wishes to convey to their end users. Alternatively, this aspect of web projects is also called web design.
Tools for front-end development
As for the programming languages used by front-end developers, the main tools are:
For a flying start into learning these front-end tools, check out this list of beginner level courses in HTML and CSS I recommend!
Full-stack development – combining both areas
A full-stack developer masters both aspects of creating and maintaining a website. In fact, sometimes it’s even not that black and white with the division into back-end and front-end sides of a project. Each one needs to understand what the other one can and will create.
In the future, web projects are only going to become more complex and diverse. Therefore, understanding both sides of the development process is an invaluable asset to have.
Personally I have developed a couple of web applications so far, taking care of both the front-end and the back-end. Creating web apps was something I had on my mind when I first started to learn coding.
I find it great to start with an idea of how such an app could work, then figure out the functionalities and finally design the look and feel for the end-user. First the user interface is very minimalistic, containing mostly links between the different pages. Then, gradually, you see how the interface starts to take shape. At the end, you have a beautiful, easy-to-use web app for anyone to use.
— See also: Why I Started to Teach Myself to Code
Putting it all together
In short, back-end development stores and organises data. It sends and receives data, enabling websites to be more dynamic than those using only front-end development tools.
As I pointed out before, the two areas differ from one another in terms of the programming languages used. The back-end works with databases to store user information, like all of your Twitter or Facebook posts. Simultaneously, the front-end makes sure these websites look beautiful and are user-friendly. In other words, back-end developers are responsible for storing and managing all the data a website needs. Front-end developers ensure a friction-free experience for the end-user – that’s you and me.
Even though there is a clear distinction between back-end development vs front-end development on a web projects, the two are ultimately just two sides of the same coin. So whatever you’re interested in with web projects, you’ll get to know both sides.
— See also: 4 Steps to Get You Started With Coding
— See also: Learning Computer Science Basics Before Coding
Thanks for reading! If you liked this post, please share it so others can read it too!