What is Back-End Engineering?

Back to Curriculum Index

Goals

  • Identify the key differences between Front-End and Back-End engineering
  • Categorize various technologies used in backend engineering

What is Back-End?

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

If we think about our favorite web applications, what generally makes them special and useful to us is their ability to do dynamic things. In most cases, we’d like our website to be able to ​do things – to record data we tell it to record, store information for us, and be able to retrieve that data later.

Consider an increasingly popular website for teacher and kids - Kahoot! When a user looks at their dashboard, what are the parts we actually care about? Why did we come here in the first place?

In the screenshot below, the outlines represent examples of dynamic data that had to be stored somewhere. That “somewhere” is what Back-End programming is concerned with.

Kahoot screenshot with annotations for places a back end would play a role. 1 - username, 2 - all kahoots stored, 3 - favorited kahoots, 4 - reports

All of the stylistic pieces (layout, colors, sizes), in addition to logic around user interactions, are considered Front-End concerns.

When we talk about Back-End programming, we’re often thinking of the programming tasks involved in making the following 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.

The Back-End typically handles stuff like storing information in databases, manipulating that data, verifying 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. A framework is kind of like a set of Lincoln Logs.
  • 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.”

What are we doing today?

  1. Store students in lists called Arrays
  2. Randomly select a student from a list
  3. Explore ways to store student data

You will probably leave today with more questions than answers!

Back to Curriculum Index