- 1 Introduction to Backend Development ›
- 2 How the Web Works ›
- 3 Development Environment ›
- 4 Programming Fundamentals ›
- 5 Python for Backend Development ›
- 6 Introduction to Web Backends ›
- 7 REST APIs ›
- 8 FastAPI ›
- 9 Databases ›
- 10 SQL ›
- 11 PostgreSQL ›
- 12 ORM and Database Integration ›
- 13 Authentication ›
- 14 Authorization ›
- 15 Backend Security ›
- 16 Caching ›
- 17 Background Processing ›
- 18 Email ›
- 19 Testing ›
- 20 Logging and Monitoring ›
- 21 Docker ›
- 22 Web Servers and Reverse Proxies ›
- 23 Deployment ›
- 24 CI/CD ›
- 25 Backend Architecture ›
- 26 Performance and Scalability ›
- 27 Advanced API Development ›
- 28 Production Backend Engineering ›
- 29 Project 1: Task Management API ›
- 30 Project 2: Authentication System ›
- 31 Project 3: E-Commerce Backend ›
- 32 Final Project: Production Backend ›
- 33 Backend Developer Roadmap ›
- 33.1 What You Should Know Now
- 33.2 Building a Portfolio
- 33.3 Creating Backend Projects
- 33.4 Contributing to Open Source
- 33.5 Preparing for Backend Interviews
- 33.6 Backend Interview Questions
- 33.7 Database Interview Questions
- 33.8 API Interview Questions
- 33.9 Linux and Docker Interview Questions
- 33.10 Where to Go Next
33 Backend Developer Roadmap
33.1 What You Should Know Now
33.2 Building a Portfolio
33.3 Creating Backend Projects
33.4 Contributing to Open Source
33.5 Preparing for Backend Interviews
33.6 Backend Interview Questions
33.7 Database Interview Questions
33.8 API Interview Questions
33.9 Linux and Docker Interview Questions
33.10 Where to Go Next
Views: 13
Where to Move
Move chapter:
- β° 1 Introduction to Backend Development
- β° 1.1 What Is Backend Development?
- β° 1.2 Frontend vs Backend
- β° 1.3 How Web Applications Work
- β° 1.4 Client-Server Architecture
- β° 1.5 Request-Response Cycle
- β° 1.6 Static vs Dynamic Websites
- β° 1.7 Backend Developer Responsibilities
- β° 1.8 Backend Development Roadmap
-
- β° 2 How the Web Works
- β° 2.1 The Internet and the Web
- β° 2.2 IP Addresses
- β° 2.3 Domain Names
- β° 2.4 DNS
- β° 2.5 Ports
- β° 2.6 TCP/IP Basics
- β° 2.7 HTTP and HTTPS
- β° 2.8 HTTP Requests
- β° 2.9 HTTP Responses
- β° 2.10 HTTP Methods
- β° 2.11 HTTP Status Codes
- β° 2.12 HTTP Headers
- β° 2.13 Cookies
- β° 2.14 Sessions
- β° 2.15 What Happens When You Enter a URL?
-
- β° 3 Development Environment
- β° 3.1 Choosing an Operating System
- β° 3.2 Linux Basics for Backend Developers
- β° 3.3 Command Line Basics
- β° 3.4 Environment Variables
- β° 3.5 Installing Development Tools
- β° 3.6 Code Editors and IDEs
- β° 3.7 Git
- β° 3.8 GitHub and GitLab
- β° 3.9 Creating Your First Repository
- β° 3.10 Branches and Commits
- β° 3.11 Basic Git Workflow
-
- β° 4 Programming Fundamentals
- β° 4.1 Variables and Data Types
- β° 4.2 Operators
- β° 4.3 Conditions
- β° 4.4 Loops
- β° 4.5 Functions
- β° 4.6 Data Structures
- β° 4.7 Error Handling
- β° 4.8 Modules and Packages
- β° 4.9 File Handling
- β° 4.10 Object-Oriented Programming
- β° 4.11 Classes and Objects
- β° 4.12 Inheritance and Composition
- β° 4.13 Clean Code Principles
-
- β° 5 Python for Backend Development
- β° 5.1 Introduction to Python
- β° 5.2 Installing Python
- β° 5.3 Virtual Environments
- β° 5.4 pip and Package Management
- β° 5.5 Python Project Structure
- β° 5.6 Functions and Type Hints
- β° 5.7 Classes and Dataclasses
- β° 5.8 Exceptions
- β° 5.9 Working with Files
- β° 5.9.1 File Downloads
- β° 5.9.2 File Validation
- β° 5.9.3 Image Uploads
- β° 5.9.4 Local File Storage
- β° 5.9.5 Object Storage
- β° 5.9.6 S3-Compatible Storage
- β° 5.9.7 Presigned URLs
- β° 5.9.8 Secure File Handling
-
- β° 5.10 JSON
- β° 5.11 Date and Time
- β° 5.12 Logging
- β° 5.13 Configuration
- β° 5.14 Environment Variables
- β° 5.15 Async Programming
- β° 5.16 Python Backend Best Practices
-
- β° 6 Introduction to Web Backends
- β° 6.1 Building a Simple Web Server
- β° 6.2 Routing
- β° 6.3 URL Parameters
- β° 6.4 Query Parameters
- β° 6.5 Request Bodies
- β° 6.6 Form Data
- β° 6.7 JSON Requests
- β° 6.8 Returning Responses
- β° 6.9 Templates
- β° 6.10 Static Files
- β° 6.11 Middleware
- β° 6.12 Application Configuration
-
- β° 7 REST APIs
- β° 7.1 What Is an API?
- β° 7.2 What Is REST?
- β° 7.3 Resources and Endpoints
- β° 7.4 RESTful URL Design
- β° 7.5 HTTP Methods in REST
- β° 7.6 GET Requests
- β° 7.7 POST Requests
- β° 7.8 PUT Requests
- β° 7.9 PATCH Requests
- β° 7.10 DELETE Requests
- β° 7.11 Request Validation
- β° 7.12 Response Models
- β° 7.13 HTTP Status Codes
- β° 7.14 Error Responses
- β° 7.15 Pagination
- β° 7.16 Filtering
- β° 7.17 Sorting
- β° 7.18 Searching
- β° 7.19 API Versioning
- β° 7.20 API Documentation
- β° 7.21 OpenAPI and Swagger
-
- β° 8 FastAPI
- β° 8.1 Introduction to FastAPI
- β° 8.2 Routes and Path Operations
- β° 8.3 Path Parameters
- β° 8.4 Pydantic Models
- β° 8.5 Data Validation
- β° 8.6 Dependency Injection
- β° 8.7 Exception Handling
- β° 8.8 Background Tasks
- β° 8.9 File Uploads
- β° 8.10 Async Endpoints
- β° 8.11 FastAPI Project Structure
- β° 8.12 Building a Complete REST API
-
- β° 9 Databases
- β° 9.1 Introduction to Databases
- β° 9.2 Relational vs NoSQL Databases
- β° 9.3 Tables, Rows, and Columns
- β° 9.4 Primary Keys
- β° 9.5 Foreign Keys
- β° 9.6 Relationships
- β° 9.7 One-to-One Relationships
- β° 9.8 One-to-Many Relationships
- β° 9.9 Many-to-Many Relationships
- β° 9.10 Database Schema Design
- β° 9.11 Normalization
- β° 9.12 Indexes
- β° 9.13 Transactions
- β° 9.14 ACID Properties
-
- β° 10 SQL
- β° 10.1 Introduction to SQL
- β° 10.2 CREATE
- β° 10.3 INSERT
- β° 10.4 SELECT
- β° 10.5 UPDATE
- β° 10.6 DELETE
- β° 10.7 WHERE
- β° 10.8 ORDER BY
- β° 10.9 GROUP BY
- β° 10.10 Aggregate Functions
- β° 10.11 JOINs
- β° 10.12 Subqueries
- β° 10.13 Constraints
- β° 10.14 Indexes
- β° 10.15 Transactions
- β° 10.16 Common Table Expressions
- β° 10.17 SQL Performance Basics
-
- β° 11 PostgreSQL
- β° 11.1 Introduction to PostgreSQL
- β° 11.2 Installing PostgreSQL
- β° 11.3 Creating Databases
- β° 11.4 Users and Roles
- β° 11.5 Permissions
- β° 11.6 PostgreSQL Data Types
- β° 11.7 Constraints
- β° 11.8 Indexes
- β° 11.9 Transactions
- β° 11.10 JSON Data
- β° 11.11 Backup and Restore
- β° 11.12 PostgreSQL Performance Basics
-
- β° 12 ORM and Database Integration
- β° 12.1 What Is an ORM?
- β° 12.2 SQLAlchemy
- β° 12.3 Models
- β° 12.4 Database Sessions
- β° 12.5 Creating Records
- β° 12.6 Reading Records
- β° 12.7 Updating Records
- β° 12.8 Deleting Records
- β° 12.9 Relationships
- β° 12.10 Queries
- β° 12.11 Transactions
- β° 12.12 Connection Pooling
- β° 12.13 Database Migrations
- β° 12.14 Alembic
- β° 12.15 Repository Pattern
-
- β° 13 Authentication
- β° 13.1 Authentication vs Authorization
- β° 13.2 Password Storage
- β° 13.3 Password Hashing
- β° 13.4 Registration
- β° 13.5 Login
- β° 13.6 Tokens
- β° 13.7 JSON Web Tokens
- β° 13.8 Access Tokens
- β° 13.9 Refresh Tokens
- β° 13.10 OAuth 2.0
- β° 13.11 OpenID Connect
- β° 13.12 Social Login
- β° 13.13 Logout
- β° 13.14 Password Reset
- β° 13.15 Email Verification
- β° 13.16 Multi-Factor Authentication
-
- β° 14 Authorization
- β° 14.1 Users and Permissions
- β° 14.2 Role-Based Access Control
- β° 14.3 Permission-Based Access Control
- β° 14.4 Protecting API Endpoints
- β° 14.5 Admin Permissions
- β° 14.6 Resource Ownership
- β° 14.7 Authorization Best Practices
-
- β° 15 Backend Security
- β° 15.1 Introduction to Web Security
- β° 15.2 HTTPS and TLS
- β° 15.3 SQL Injection
- β° 15.4 Cross-Site Scripting
- β° 15.5 Cross-Site Request Forgery
- β° 15.6 CORS
- β° 15.7 Authentication Attacks
- β° 15.8 Brute-Force Protection
- β° 15.9 Rate Limiting
- β° 15.10 Input Validation
- β° 15.11 Secure Password Storage
- β° 15.12 Secrets Management
- β° 15.13 Secure Cookies
- β° 15.14 Security Headers
- β° 15.15 File Upload Security
- β° 15.16 Dependency Vulnerabilities
- β° 15.17 OWASP Top 10
-
- β° 16 Caching
- β° 16.1 Why Caching Matters
- β° 16.2 Application Caching
- β° 16.3 Redis
- β° 16.3.1 Introduction to Redis
- β° 16.3.2 Installing Redis
- β° 16.3.3 Keys and Values
- β° 16.3.4 Expiration
- β° 16.3.5 Distributed Locks
-
- β° 16.4 Cache Keys
- β° 16.5 Cache Invalidation
- β° 16.6 Caching Database Queries
- β° 16.7 Distributed Caching
-
- β° 17 Background Processing
- β° 17.1 Synchronous vs Asynchronous Tasks
- β° 17.2 Background Jobs
- β° 17.3 Message Queues
- β° 17.4 Celery
- β° 17.5 Redis as a Message Broker
- β° 17.6 Scheduled Tasks
- β° 17.7 Retry Strategies
- β° 17.8 Handling Failed Jobs
- β° 17.9 Email Jobs
- β° 17.10 Long-Running Tasks
-
- β° 18 Email
- β° 18.1 How Email Works
- β° 18.2 SMTP
- β° 18.3 Sending Emails
- β° 18.4 HTML Emails
- β° 18.5 Transactional Emails
- β° 18.6 Password Reset Emails
- β° 18.7 Background Email Delivery
- β° 18.8 Email Delivery Best Practices
-
- β° 19 Testing
- β° 19.1 Why Backend Testing Matters
- β° 19.2 Unit Testing
- β° 19.3 Integration Testing
- β° 19.4 API Testing
- β° 19.5 pytest
- β° 19.6 Fixtures
- β° 19.7 Mocking
- β° 19.8 Testing Databases
- β° 19.9 Testing Authentication
- β° 19.10 Testing FastAPI
- β° 19.11 Test Coverage
- β° 19.12 Automated Testing
-
- β° 20 Logging and Monitoring
- β° 20.1 Application Logging
- β° 20.2 Log Levels
- β° 20.3 Structured Logging
- β° 20.4 Request Logging
- β° 20.5 Error Logging
- β° 20.6 Metrics
- β° 20.7 Health Checks
- β° 20.8 Monitoring
- β° 20.9 Prometheus
- β° 20.10 Grafana
- β° 20.11 Alerting
- β° 20.12 Error Tracking
- β° 20.13 Observability Basics
-
- β° 21 Docker
- β° 21.1 Introduction to Containers
- β° 21.2 Docker Architecture
- β° 21.3 Images
- β° 21.4 Containers
- β° 21.5 Dockerfiles
- β° 21.6 Building Images
- β° 21.7 Running Containers
- β° 21.8 Volumes
- β° 21.9 Networks
- β° 21.10 Docker Compose
- β° 21.11 FastAPI with Docker
- β° 21.12 PostgreSQL with Docker
- β° 21.13 Redis with Docker
- β° 21.14 Multi-Container Applications
- β° 21.15 Production Docker Best Practices
-
- β° 22 Web Servers and Reverse Proxies
- β° 22.1 Application Servers
- β° 22.2 Uvicorn
- β° 22.3 Gunicorn
- β° 22.4 Reverse Proxies
- β° 22.5 Nginx
- β° 22.6 Traefik
- β° 22.7 HTTPS
- β° 22.8 TLS Certificates
- β° 22.9 Let's Encrypt
- β° 22.10 Load Balancing
-
- β° 23 Deployment
- β° 23.1 Development vs Production
- β° 23.2 Preparing an Application for Production
- β° 23.3 Linux Server Setup
- β° 23.4 Deploying with Docker
- β° 23.5 Environment Configuration
- β° 23.6 Managing Secrets
- β° 23.7 HTTPS Configuration
- β° 23.8 Production Logging
- β° 23.9 Backups
- β° 23.10 Zero-Downtime Deployment
- β° 23.11 Rollbacks
-
- β° 24 CI/CD
- β° 24.1 Introduction to CI/CD
- β° 24.2 Continuous Integration
- β° 24.3 Continuous Delivery
- β° 24.4 Continuous Deployment
- β° 24.5 CI/CD Pipelines
- β° 24.6 GitHub Actions
- β° 24.7 GitLab CI/CD
- β° 24.8 Building Docker Images
- β° 24.9 Container Registries
- β° 24.10 Deployment Pipelines
- β° 24.11 Staging Environments
- β° 24.12 Production Environments
- β° 24.13 Rollback Strategies
-
- β° 25 Backend Architecture
- β° 25.1 Monolithic Architecture
- β° 25.2 Modular Monoliths
- β° 25.3 Microservices
- β° 25.4 Layered Architecture
- β° 25.5 Service Layer
- β° 25.6 Separation of Concerns
- β° 25.7 Domain-Driven Design Basics
- β° 25.8 Event-Driven Architecture
- β° 25.9 Choosing an Architecture
-
- β° 26 Performance and Scalability
- β° 26.1 Understanding Backend Performance
- β° 26.2 CPU-Bound vs I/O-Bound Work
- β° 26.3 Asynchronous Programming
- β° 26.4 Database Optimization
- β° 26.5 Query Optimization
- β° 26.6 Indexing
- β° 26.7 Load Balancing
- β° 26.8 Horizontal Scaling
- β° 26.9 Vertical Scaling
- β° 26.10 Stateless Applications
- β° 26.11 Performance Testing
- β° 26.12 Load Testing
-
- β° 27 Advanced API Development
- β° 27.1 WebSockets
- β° 27.2 Server-Sent Events
- β° 27.3 GraphQL
- β° 27.4 Webhooks
- β° 27.5 Idempotency
- β° 27.6 API Rate Limiting
- β° 27.7 API Keys
- β° 27.8 API Gateways
- β° 27.9 Distributed APIs
- β° 27.10 Real-Time Applications
-
- β° 28 Production Backend Engineering
- β° 28.1 Configuration Management
- β° 28.2 Database Backups
- β° 28.3 Disaster Recovery
- β° 28.4 Graceful Shutdown
- β° 28.5 Fault Tolerance
- β° 28.6 Circuit Breakers
- β° 28.7 High Availability
- β° 28.8 Monitoring Production Systems
- β° 28.9 Incident Response
-
- β° 29 Project 1: Task Management API
- β° 29.1 Project Requirements
- β° 29.2 Project Structure
- β° 29.3 Database Design
- β° 29.4 CRUD Operations
- β° 29.5 Validation
-
- β° 30 Project 2: Authentication System
- β° 30.1 User Registration
- β° 30.2 JWT Authentication
- β° 30.3 Role-Based Authorization
- β° 30.4 Security Testing
-
- β° 31 Project 3: E-Commerce Backend
- β° 31.1 Architecture
- β° 31.2 User Management
- β° 31.3 Product Management
- β° 31.4 Categories
- β° 31.5 Shopping Cart
- β° 31.6 Orders
- β° 31.7 Inventory
- β° 31.8 Payments
- β° 31.9 Admin API
-
- β° 32 Final Project: Production Backend
- β° 32.1 Planning the Application
- β° 32.2 Designing the Architecture
- β° 32.3 Designing the Database
- β° 32.4 Building the REST API
- β° 32.5 Authentication and Authorization
- β° 32.6 PostgreSQL Integration
- β° 32.7 Redis Integration
- β° 32.8 Background Workers
- β° 32.9 File Storage
- β° 32.10 Dockerizing the Application
- β° 32.11 CI/CD Pipeline
- β° 32.12 Production Deployment
- β° 32.13 HTTPS and Domain Setup
- β° 32.14 Performance Optimization
- β° 32.15 Security Review
- β° 32.16 Documentation
-
- β° 33 Backend Developer Roadmap
- β° 33.1 What You Should Know Now
- β° 33.2 Building a Portfolio
- β° 33.3 Creating Backend Projects
- β° 33.4 Contributing to Open Source
- β° 33.5 Preparing for Backend Interviews
- β° 33.6 Backend Interview Questions
- β° 33.7 Database Interview Questions
- β° 33.8 API Interview Questions
- β° 33.9 Linux and Docker Interview Questions
- β° 33.10 Where to Go Next
-
KAHIBARO