What is Back-End Engineering?

Back to Curriculum Index


Goals

  • Diagram how the internet works
  • Identify the key differences between Front-End and Back-End engineering
  • Categorize various technologies used in Back-End engineering


How Does the Internet Even Work?

When you visit a URL like google.com/calendar, what happens? Let’s draw a slightly more involved diagram of the client-server model that you see below.

Client server model
Source: Mozilla.org


What is Back-End?

In a broad sense, Back-End programming is concerned with managing and manipulating ​data​ (aka information).

Consider a website like Instacart. When we view an Instacart page, what are the parts we actually care about? Why did we come here in the first place? In the screenshot below, the blue boxes represent examples of dynamic data that had to come from somewhere. That “somewhere” is what Back-End programming is concerned with.

Instacart.com screenshot

When we talk about Back-End programming, we’re often thinking of the programming tasks involved in making this possible:

  • Storing data and accessing it later
  • Verifying that data is accurate
  • Manipulating, analyzing, and/or calculating data
  • Making sure data can be retrieved quickly and easily


Back-End & Front-End

The Front-End is the part of the application that users see, touch, and interact with. This is the code that produces the experience in front of the user. All of the stylistic pieces of a website (layout, colors, sizes), in addition to logic around user interactions, are considered Front-End concerns.

The Back-End typically handles stuff like storing information in databases, manipulating that data, authenticating users, etc.; it’s what happens behind the scenes.


What technologies are used on the Back-End?

There are numerous technologies that can be used for Back-End programming. Here are a few of them:

  • Languages and frameworks: Ruby/Rails, Python/Django, Elixir/Phoenix, Java/Spring, and more.
  • Databases: PostgreSQL, MySQL, Oracle Database, MongoDB, etc.

We won’t be talking about anything except for a teeny tiny part of Ruby. However, we hope that these terms give you a lay of the land so that next time you hear one of these words, you can say “Aha! That’s a database.”

Back to Curriculum Index