For a FullStack dev interview, you have to be able to work on the backbone of applications.
Enters Backend roadmap + tips.

This is the seventh thread of the series: Interview Preparation!

🧵THREAD🧵
First, let's define the scope of this.

The limit between the backend and the frontend is the APIs.
Those are the contracts between both worlds, usually part of the backend responsibility, but there has to be an agreement with the front end since it will be the consumer.

⬇️
From that point up to the storage is all backend.

Sometimes there is also a separation with the DB part and in mid-size/big companies there are devs specialized only on Databases (DBA = DB Administrators).

Let's start with a summary of the topics you should cover.

⬇️
Main topics:

- Designing and Building APIs
- Authorization & Authentication
- Dependency Injection
- Error handling
- Caching
- Logging
- Designing Business Logic Model
- Mapping model to relational (if stack requires it)
- Database (big topic)

⬇️
We won't go deep into every topic, but I will cover the basics of some of them, you can dig deeper on each one.

First learn about HTTP Requests, response, statuses, structure, tools (postman for example). There are plenty of good tutorials online for this, both free and paid

⬇️
Of course, you will need a backend environment/language to put this into practice. Some of them for you to pick from:

- C#
- Java
- NodeJs
- Python
- Ruby
- PHP

There are more, but any of these should be great. If you already know Javascript NodeJs is the easy path.

⬇️
Now, you should start building your first APIs. Watch and follow along with any tutorial on the language you picked, learned the basics, and BUILD!

Once you have your first API defined time to move downwards the chain until we hit our nice repository!

⬇️
Next, you should be defining your business logic model, these vary depending on lang & soft engineering approach, but in OOP, you would have a project with the classes of your business model.

Define rules, properties, methods, anything related to business logic & objects.

⬇️
With your business model and API in place, you will want to start adding:
- Error handling (look into exceptions and how to design them and model state for APIs)
- Dependency injection to avoid hardcoded dependencies (this will give you flexibility &help you test)
- And more!

⬇️
After that, you will want to get to your DB storage where you would be saving to and retrieving data from.

You can do this in several ways, I will tackle using a SQL DB with ORM and without.

⬇️
You have your business model object and need to get to a SQL database that has a relational schema (tables and relationships).
There is a mismatch in there that needs to be adapted.

You can do this automagically with an ORM (Object-Relational Mapping) framework or by hand.

⬇️
With an ORM solution...

You take a more declarative approach, you describe the relationships on your classes definitions and you get an abstraction done by the framework so you always work with objects.

⬇️
Doing things by hand...

You have to adapt your objects, convert the fields to parameters in a stored procedure call for example or convert the dataset result into a collection.
There are tools that help to do so, but it is a more imperative way. You take care of everything

⬇️
We are not going to cover SQL on this thread because this is long enough already and there is too much to tackle.

Just keep in mind there are other approaches, like NoSql databases, in which you can just save documents or objects directly without any mapping.

⬇️
That will be all for today's thread, I hope this gives you some insights into the whole Backend world, there is definitely much more to learn in this area, but this should be a good point to start!

Thanks for reading and I will see you tomorrow for some CI/CD knowledge thread!
You can follow @MattCodeJourney.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: