Frontend vs Backend Web Development
When searching for web development jobs, you’ll find a wide variety of requirements. Languages, frameworks, and methodologies may differ, but there are two aspects of web development that will be common for all jobs: frontend and backend. Some jobs may require full-stack skills, but full-stack is merely a combination of frontend and backend. The purpose of this article is to explain frontend vs backend web development from a professional point of view.
The frontend of an application is distinctly human. It’s what the user sees, touches and experiences. In this respect, empathy is a required characteristic of a good frontend developer. The frontend of an application is less about code and more about how a user will interpret the interface into an experience. That experience can be the difference between a billion-dollar company and complete collapse. If you were a MySpace user in 2004, you were probably content with the experience. But once you started to use Facebook, you almost certainly had a better experience. You realized that you could socialize with a simpler design, no flashing banner ads, easy-to-find friends, etc. Facebook and MySpace had a lot of differences under the hood as well (backend), but at least part of Facebook’s triumph can be attributed to a better frontend and user experience.
The technical skills required to be a frontend developer commonly include:
HTML – All code in a web application is eventually translated to HTML. It’s the language that web browsers understand and use to display information to users. A web developer’s understanding of HTML is analogous to a carpenter’s understanding of a screwdriver. It’s so important and necessary that it’s often assumed for employment.
CSS – By itself, HTML is quite plain. HTML does provide some basic style options, but to build a good frontend, developers must have experience with CSS. CSS provides the paint, templates, glitter, buttons, tassel, lights, and many other things that can be used to improve the presentation of a web page. CSS is so commonly used that languages have been built to make writing CSS easier. These languages – like Sass and LESS – are also known as CSS precompilers, but they are simply used to write more efficient and manageable CSS code.
The backend of a web application is an enabler for a frontend experience. An application’s frontend may be the most beautifully crafted web page, but if the application itself doesn’t work, the application will be a failure. The backend of an application is responsible for things like calculations, business logic, database interactions, and performance. Most of the code that is required to make an application work will be done on the backend. Backend code is run on the server, as opposed to the client. This means that backend developers not only need to understand programming languages and databases, but they must have an understanding of server architecture as well. If an application is slow, crashes often, or constantly throws errors at users, it’s likely because of backend problems.
Backend development is not all ones and zeros though. Much like frontend development, backend development has a human aspect to it as well. Since most of the code for an application is written on the backend, it should be easy to understand and work with. Most backend languages – like Ruby and Python – have standardized styles and idioms that make reading and writing code more efficient and enjoyable.
The technical skills required to be a backend web developer commonly include:
Ruby – Ruby is a programming language created to be fun and efficient. Ruby syntax is easy to read, even for people who don’t know Ruby. Ruby was thrust into the mainstream thanks to Ruby on Rails, which is a framework (built with Ruby) for building web applications. Ruby on Rails is one of the most popular web development tools for small businesses and startups. Companies like Twitter, Hulu and Github all started and / or still use Ruby on Rails in some capacity. Ruby can be used to code business logic, calculate data and distribute servers for better performance.
Python – Much like Ruby, Python is known in part for its readability. A popular web development framework, Django, also makes Python a popular choice for building web applications. Dropbox was built with – and still uses – Python to run much of its server-side code. Python can be used for everything Ruby can. Whether you use Python or Ruby depends on your skill set, the communities you’re exposed to, and your development team.
SQL – SQL is a universal database query language. SQL is used to interact with databases, which are a part of every backend web application. No matter what language or framework you choose to build your web application, you will likely use SQL, or some abstraction of it, to interact with the database.
Note: There are myriad backend, or server-side languages, but Ruby and Python are two that are very popular in modern web development.