Backend vs Frontend - a brief elaboration
Backend vs Frontend
The topic for today is backend development, as the concept still remains vague to many. So in order to talk about back in development, let's revisit what front-end development is: it's the practice of creating user interfaces that are flexible and make it easy for a user to interact with data. To simplify, it is what you see without the functionality available.
Backend, data & functions
Backend development is a practice of creating those plugs into the data, oftentimes called an application program interface or API. I honestly like to think of the backend as like a panel of plugs, where each plug returns a massaged subset of the data, and the panel itself hides away all the complexity of fetching from and updating to the database. Unlike front-end development, back-end isn't specific to any one platform; in fact, it serves as more like a foundation that supports whatever platforms sit on top of it. So you can use a Python, NodeJS, or PHP backend in combination with any sort of frontend. To illustrate this, let's look at the ATM analogy.
When a user wants to withdraw €40 from their account, they'll tap on various buttons on the machine (or our UI/UX & frontend in this case) that then communicates to the backend to actually carry out those tasks.
Get money - backend or frontend?
Now let's go back to the panel of plugs visualization. Imagine the front-end plugged into one plug called "get money".
That plug actually connects to several other plugs on the wall to do the business logic - for instance, one to check that the user actually has €40 in their account, and the other to subtract that amount from their balance. Developing each of those plugs is back-end development to make sure that the user interacts with the data safely. So what's in the stack?
The skillset required
So, what are the important factors and skills for working in back-end development? One is to have the architectural skills for making well-organized, extensible, and testable code. A big part of the back-end is organizing logic and data, so those skills allow for writing code with speed and quality.
The second is to communicate clearly with front-end developers - there's a myth that back-end developers don't need to know anything about users (which is wrong by the way). Back-end developers are a big part of allowing users to do what they need to do to get done, so it's a joint effort between front-end developers and back-end developers to write code to do just this.
And that, simply, is back-end development.