Introduction to Backend Development

Mosly Referred to the server-side of an app and anything that communicates between the database and the frontend/browser.

A Backend Developer's Life Cycle

understand

plan

develop

test

Backend Development Tools and Technologies Servers: A computer that listens for incoming requests from the clients (frontend). Example of web servers are Apache Nginx, IIS servers, Tomcat.

A list of few things a Backend developer should learn under servers.

Types of Servers :

  1. Static : the server sends its hosted files as it is to your browser

  2. Dynamic : the application server updates the hosted files before sending them to your browser visa the HTTP server.

Communication Protocol(HTTP) :

It comprises of the formal description of rules and formats of a digital messages.

Others :

  1. Load Balancing

  2. Message Queues

Need Some Research here, i didn't understood these terms.

Databases :

it provide an interface to save data in a persistent way to memory.

Types of database :

  1. MySQL

  2. SQLite

  3. MongoDB

  4. PostgreDB etc.

Things to learn in databases as a Backend developer

  1. Schemas

  2. Normalization

  3. Indexes

  4. Stored procedure and triggers

  5. Wide knowledge of SQL, DDL & DML

  6. Views

  7. Strong database optimization skills

Things to learn in Operating Systems

  1. Memory Management

  2. Cloud Computing

  3. Processes & process management

  4. Inter Process Communication

  5. Threads & concurrency

  6. Input & Output management

  7. Scheduling

  8. Distributed File System

  9. Virtualization

Topics to Master

in any programming language

  • Session management

  • Authentication & Authorization

  • Caching Mechanisms

  • APIs & Web Services

  • Software architectures (MVC)

  • Software design patterns

  • Algorithms and data structures

  • Structured logging

  • Debugging, profiling and tracing

  • Deployment

  • Software testing

  • Frameworks and Package Managers

Things to consider as a Backend Developer

  • Scalability

  • Security

  • Robustness

  • Readability

  • Performance Oriented

  • Maintainability