What is Backend Development?

An iceberg is a metaphor that helps explain what is backend development

As a new programmer, it can be intimidating to figure out what field you want to specialize in. There are so many different options: frontend development, backend development, data science, mobile development, and on and on. It can all be very confusing. Two of the most popular options are backend and frontend development. In this article, I am going to answer the question: what is backend development? I will also explain how it differs from frontend development. 

Programming fields

The different areas of programming you can specialize in are called programming fields. Backend development is one example of a programming field. Other fields include frontend development, data science, and game development (although this is far from a complete list).

When you are first learning to program, you shouldn’t spend too much time worrying about what programming field you want to specialize in. The best thing to do is to start with an easy to learn programming language like Python and focus on mastering programming fundamentals.

Then, once you’ve learned how to program, you can focus on what programming field to base your career around. Nonetheless, even if you are just starting out, there is no reason why you shouldn’t have at least a basic familiarity with the different fields. So without further ado, I will answer the question: what is backend development?

What is backend development?

Most website and apps have a frontend and a backend. The frontend is the part you can see. So, for example, on this blog, everything you can see is the frontend. Most websites and apps, also have a part you can’t see. The part you can’t see is called the backend.

For example, here is a picture of a page on Airbnb’s website that allows you to book a reservation at the world-famous seashell house in Isla Mujeres. 

All of the pictures and text you can see on their website belong to the frontend. 

When you click the check-in button on the page shown above, a calendar pops up.

The calendar, like the images and text, are part of the frontend. The data in the calendar, however, does not come from the frontend. It comes from the backend. As you can see, the calendar shows specific dates are available, and certain dates are already booked. All of this data comes from the backend.

Airbnb’s backend is also responsible for recording each reservation. When you pick a date for a property on Airbnb and reserve it, Airbnb takes you to a thank you page, and your interaction with the website ends. Airbnb, of course, has to record that information. That is where their backend comes in. Airbnb’s backend saves the information about your reservation so they can make sure they do not book the property out twice, and so they can send you an email reminder when your reservation is coming up.

Do the backend and frontend work together?

You may have noticed the frontend and the backend share data with each other. To share information, they must be able to communicate. The frontend and backend communicate through HTTP requests. An HTTP request is a package of data one computer sends to another.

When the frontend needs a piece of data (like what dates a property is available), it sends an HTTP request to the backend asking for it. The same thing happens when the frontend collects data that needs to be saved, like a reservation on Airbnb. The frontend sends an HTTP request to the backend with the information, and the backend saves it.

Where is the backend?

The frontend code for a website or app executes on your computer or phone. The backend code, on the other hand, runs on a server. A server is a computer designed to receive requests, like HTTP requests, and deliver data back to the computer that made the request (like your computer via your browser).

So when the frontend of a website sends a request to the backend, it sends it to a server. The server then responds with whatever the frontend needs. For example, when you book a reservation on Airbnb, the frontend sends a request to one of Airbnb’s servers with the name of the person making the reservation, the property reserved, the date, and other information. The backend, running on a server, receives that information, and stores it in a database.

What skills do backend developers need?

Backend developers need to know how to program in one of the languages popular for backend development. While you can build a backend in any programming language, there are specific languages more popular for backend development than others. Popular backend programming languages include Python, Ruby, JavaScript, PHP, Go, and Java.

Backend developers need to be familiar with HTTP requests, TCP/IP, and the client/server model. Backend developers need to know how to set up and manage servers. They need to have a strong understanding of databases. Finally, they need to be familiar with different frameworks. For example, a backend web developer must be familiar with one of the popular web development frameworks like Django. A web framework is a piece of software that speeds up the creation of a backend.

Is backend development hard?

Backend and frontend development both require you to master a specific set of technology and face their own unique challenges. At many companies, the backend team is considered more prestigious than the frontend team. This perception is changing though.

How much do backend developers get paid?

Backend developers get paid very well. According to Glassdoor, the average base pay for backend developers in 2019 is 117,284 dollars per year.

The average pay for frontend developers, however, is significantly less. According to Glassdoor, the average salary for frontend developers in 2019 is 77,908 dollars. So as you can see, backend developers are very well paid. Frontend developers, however, are also well paid.

Should you start with backend or frontend?

If your goal is to go from a beginner to a software engineer in the shortest amount of time possible, I recommend that you focus on frontend development before pursuing backend development.

I’ve found it is easier to get a job as a frontend developer than it is to get a job as a backend developer. Backend teams at companies are often considered more prestigious and are harder to get. Once you get a job as a frontend developer inside of a company,  you can transfer to the backend team (after you’ve proved yourself of course).

However, if you are a brand new programmer,  I do not recommend jumping straight into frontend development either. One reason is you will have to start learning to program in JavaScript. I’ve written and spoken extensively about why that is a bad idea.

Learning enough frontend development to get paid takes a long time. Like backend development, there are a whole set of technologies you need to learn aside from just programming.

Why would you want to wait so long to get paid as a programmer? Instead of jumping into frontend development right away, I recommend learning how to build web scrapers first. Unlike frontend development, which can take months to learn, you can build your first web scraper in a matter of weeks.

That way, you can start building the experience necessary to land a backend or frontend job at a company (if that is your goal) much faster. If your goal isn’t working at a company as a programmer, learning how to build web scrapers is the best way to start freelancing, which allows you to work remotely and be your own boss.

Summary

Website and apps are like icebergs. There is a part you can see and a part you can’t see. The frontend is the part you can see. The backend is the part you cannot see.

The frontend runs on your computer or phone, whereas the backend runs on a server. The frontend and the backend work together to create a website or app. They communicate with each other by sending HTTP requests back and forth.

Both backend and frontend developers are paid very well. Backend development, however, can be harder to break into than frontend development. I recommend starting as a frontend developer first. But if you are new to programming, I also suggest not worrying about front or backend development just yet.

Start with an easy to learn programming language like Python, and learn to build web scrapers. Unlike frontend or backend development, you can learn to build your first web scraper in a matter of weeks. That way, you can freelance, and get paid for your first programming job as soon as possible.

Once you’ve mastered the fundamentals of programming, and gotten paid for your first programming job, your confidence will be very high, and you will find front or backend development much easier.

 

Want to learn to become a freelance programmer working from home? I’m offering a FREE trial of my training program, Five-Week Coder. You will get the opportunity to join over 1,000 other people in my private Facebook group, get weekly coaching sessions with yours truly, and watch all of my lessons and lectures. I will help take you from a beginner to getting paid for your first freelance programming project. I can’t wait to work with you!

Published by Cory Althoff

Cory Althoff is the author of The Self-Taught Programmer, which Book Authority named one of the best software books of all time.

Leave a comment

Your email address will not be published. Required fields are marked *