What is Back End Engineering?
Goals
- Diagram how the internet works
- Identify the key differences between 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 https://www.vcahospitals.com/
, what happens?
Let’s draw a slightly more involved diagram of the client-server model that is displayed:
Source: Mozilla.org
What is Back End Engineering?
In a broad sense, Back End engineering is concerned with managing and manipulating data (aka information).
Consider a website like VCA Hospitals. When we view the landing page, what are the parts we actually care about? Why did we come here in the first place? In the screenshot below, the light blue box outlines the opportunity for the user to get dynamic data that will have to come from somewhere. That somewhere is what Back End engineering is concerned with.
When we talk about Back End engineering, 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.
At Turing, our full-time students learn to program via Ruby and Ruby on Rails. We believe the fundamental concepts are more important that the language itself; students can easily pick up a new language once they have those fundamentals!
Today, 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.”