Backend Development
Server-side development with Node.js, NestJS, Spring Boot, Python backends, sockets, Nginx and payment integration.
Module 2: Flask & Jinja2 Lightweight Web Apps
Flask is a "microframework" that provides the essentials for building web applications. Combined with Jinja2 templates, it's perfect for serverside rendered websites.
Read article →Module 0.5: Jinja2 The Python Template Engine
Jinja2 is a fast, expressive, and extensible templating engine for Python. It is the default engine for Flask and can be used with many other frameworks including FastAPI and Django.
Read article →Advanced Jinja2 Features
Take your templating skills to the next level with these advanced concepts.
Read article →Module 0: Understanding RESTful APIs
Before diving into code, it is essential to understand the architectural style that powers most of the modern web: REST Representational State Transfer.
Read article →RESTful API Best Practices & Examples
This guide provides practical examples and advanced concepts for building highquality REST APIs.
Read article →Introduction to Networks
A network is a collection of interconnected devices computers, servers, routers, etc. that can communicate with each other and share resources. Networks enable data exchange between devices regardless of their physical l
Read article →OSI Model and TCP/IP Stack
The OSI model is a 7layer conceptual framework that standardizes the functions of a telecommunication or computing system.
Read article →IP Addresses and Ports
An IP Internet Protocol address uniquely identifies a device on a network. It's like a postal address for your computer.
Read article →Network Protocols Overview
A protocol is a set of rules that defines how devices communicate over a network. It specifies: How to format data How to establish connections How to handle errors How to terminate communication
Read article →What are Sockets?
A socket is an endpoint for communication between two programs running on a network. It's a software abstraction that provides an interface between an application and the network protocol stack TCP/IP.
Read article →Socket Types and Domains
The domain also called address family specifies the address format and communication scope.
Read article →Socket API Functions
The Socket API provides a set of functions to create, configure, and use sockets. This module covers the core functions used in socket programming.
Read article →Socket Lifecycle
Understanding the socket lifecycle is crucial for writing robust network applications. This module explains the complete lifecycle from creation to termination.
Read article →TCP Server Implementation
TCP servers are connectionoriented and provide reliable, ordered communication. This module teaches you how to build a TCP server from scratch.
Read article →TCP Client Implementation
TCP clients initiate connections to servers and communicate over reliable, ordered connections. This module covers building TCP clients.
Read article →Handling Multiple Clients
A basic TCP server handles only one client at a time. Realworld servers need to handle multiple clients concurrently. This module covers different approaches.
Read article →TCP Error Handling
Robust error handling is crucial for production socket applications. This module covers common errors and how to handle them properly.
Read article →UDP Server Implementation
UDP User Datagram Protocol is connectionless and provides fast, lowoverhead communication. This module covers building UDP servers.
Read article →UDP Client Implementation
UDP clients are simpler than TCP clients since no connection is required. This module covers building UDP clients.
Read article →UDP vs TCP Comparison
Understanding when to use UDP vs TCP is crucial for effective socket programming. This module provides a detailed comparison.
Read article →Byte Ordering Endianness
Byte ordering, or endianness, determines how multibyte values are stored in memory. This is crucial for network communication where different systems may use different byte orders.
Read article →Address Structures
Socket addresses are represented differently in different languages and APIs. This module explains address structures and how to work with them.
Read article →Exercise 1: Echo Server
Build a TCP echo server that receives messages from clients and sends them back.
Read article →Exercise 2: Chat Application
Build a multiuser chat server where clients can send messages that are broadcast to all connected clients.
Read article →