Skip to content

00 - Big Picture: How Everything Connects

Start here. This guide is the map of the whole pocket guide: how the tools fit together, how a request travels through a real AI application, how code goes from your laptop to production, and which guide to open for any question.

Contents

  1. How to Use This Pocket Guide
  2. The Map: Layers of the Stack
  3. Journey of One Request Through an AI App
  4. From Idea to Production (Development Lifecycle)
  5. The Data and ML Lifecycle
  6. The AI Application Ladder
  7. Where Code Runs
  8. Which Tool for Which Job
  9. How the Pieces Talk to Each Other
  10. Learning Paths
  11. "I Want To..." Quick Finder
  12. Core Mental Models in One Page
  13. Windows, macOS and Linux Differences
  14. Practice and Extras

1. How to Use This Pocket Guide

How the guides are organised. Numbered from basic to advanced; every guide has the same structure.

Use it on your first visit, or when you are not sure where to look.

Every guide follows the same layout:

# NN - Topic
Introduction      what it is, WHY it exists, a mental model diagram, key terms, where it fits
  Official docs   links to the official home pages for the latest, authoritative information
Contents          numbered sections
0. Flags and Parameters   how commands / calls are built, every flag explained (where relevant)
1..N. Sections    each opens with a short summary (what, how, when to use it), then commands with comments
Troubleshooting   common errors and fixes

Reading strategy:

  • Learning a topic: read the Introduction and mental model first, then skim section titles, then try the examples.
  • Looking something up: use the Contents list or section 11 of this page.
  • Debugging: jump to the Troubleshooting table at the end of the relevant guide.
  • Need the very latest details (new versions, changed APIs, current model names): open the Official docs table at the end of each guide's Introduction.

2. The Map: Layers of the Stack

Every guide placed in the layer of the stack it belongs to. Lower layers are foundations used by everything above them.

Use it for seeing how a topic relates to the rest.

Read from the bottom up: each layer builds on the ones below it.

Layer (top = closest to users) Guides
Cloud and operations 48 Azure, 49 Azure VM + Ollama, 47 Terraform, 46 Kubernetes, 45 Nginx / HTTPS, 44 GitHub Actions (CI/CD)
Packaging and serving 43 Docker, 42 Redis / Queues, 41 Uvicorn, 40 FastAPI, 39 AI UIs, 50 Project Structure, 51 Project Templates
AI engineering 26 LLM Fundamentals, 27 LLM APIs, 28 Prompting, 29 Tool Use, 30 Embeddings / Vector DBs, 31 RAG, 32 Agents, 33 Frameworks, 34 MCP, 35 Evals / Observability, 36 Local LLMs, 37 Fine-tuning, 38 Security
Data and ML 17 NumPy, 18 Pandas, 19 Polars / DuckDB, 20 SQL, 21 Matplotlib, 22 Seaborn, 23 Scikit-learn, 24 PyTorch, 25 Hugging Face
Python 10 Basics, 11 venv, 12 uv, 13 Pydantic, 14 Async, 15 pytest, 16 Jupyter
Foundations 01 Core Concepts, 02 Markdown, 03 Terminal / PowerShell, 04 Linux, 05 Git, 06 VS Code, 07 Regex, 08 YAML / JSON, 09 HTTP / APIs

3. Journey of One Request Through an AI App

What happens, step by step, when a user asks a question in a production AI assistant. Each step names the technology and the guide that explains it.

Use it for understanding how all the pieces work together in one system.

Diagram

GitHub and the website draw this automatically (the number in each box is the guide that explains it):

%%{init: {"flowchart": {"wrappingWidth": 360, "nodeSpacing": 40, "rankSpacing": 45}}}%%
flowchart TD
    Q("User asks: What is the refund policy for jackets,<br/>and has order A-1042 shipped?")
    UI["1. Chat UI sends HTTPS POST /chat<br/>39 AI UIs, 09 HTTP"]
    EDGE["2. Nginx / cloud ingress<br/>TLS, routing, rate limit<br/>45 Nginx, 48 Azure, 46 Kubernetes"]
    SRV["3. Uvicorn receives the request<br/>41 Uvicorn"]
    API["4. FastAPI endpoint: auth,<br/>Pydantic validation of the JSON body<br/>40 FastAPI, 13 Pydantic"]
    CACHE["5. Redis: per-user rate limit,<br/>cache check for identical questions<br/>42 Redis"]
    ORCH{"6. Orchestration decides<br/>what context is needed<br/>32 Agents, 33 Frameworks"}
    RAG["7a. RAG: embed question, search vector DB,<br/>rerank, keep top 5 allowed chunks<br/>30 Embeddings, 31 RAG"]
    TOOL["7b. Tool: get_order_status A-1042<br/>via SQL / internal API<br/>29 Tool Use, 20 SQL, 34 MCP"]
    PROMPT["8. Build prompt: system + chunks<br/>+ tool result + question<br/>28 Prompting"]
    LLM["9. Streamed LLM call: Claude API<br/>or self-hosted Ollama / vLLM<br/>27 LLM APIs, 36 Local LLMs"]
    CHECK["10. Output checks: validation,<br/>guardrails, citations<br/>38 Security, 13 Pydantic"]
    STREAM["11. Stream tokens back (SSE)<br/>09 HTTP, 40 FastAPI"]
    LOG["12. Log trace: prompt version, chunks,<br/>tools, tokens, cost, latency, feedback<br/>35 Evals / Observability"]
    A("User sees: Jackets can be returned within 30 days [1].<br/>Order A-1042 shipped, arriving Sept 30.")

    Q --> UI --> EDGE --> SRV --> API --> CACHE --> ORCH
    ORCH --> RAG --> PROMPT
    ORCH --> TOOL --> PROMPT
    PROMPT --> LLM --> CHECK --> STREAM --> A
    STREAM -.-> LOG

    subgraph BEHIND ["Behind the scenes"]
        direction TB
        IDX["A background worker indexed the documents<br/>used in step 7a earlier<br/>42 Queues, 31 RAG"]
        DOCK["Everything runs in Docker containers<br/>43 Docker"]
        CICD["Built and deployed on every merge<br/>44 GitHub Actions, 05 Git"]
        IAC["Cloud resources defined as code<br/>47 Terraform, 48 Azure"]
        EVAL["Nightly evals catch regressions<br/>35 Evals, 15 pytest"]
    end
    IDX ~~~ DOCK ~~~ CICD ~~~ IAC ~~~ EVAL
    A ~~~ BEHIND

Step by step (text)

 USER: "What is our refund policy for jackets, and has my order A-1042 shipped?"
   |
   | 1. Browser / chat UI sends HTTPS POST /chat                      [39 AI UIs] [09 HTTP]
   v
 2. Nginx / cloud ingress: TLS, routing, rate limit                   [45 Nginx] [48 Azure] [46 K8s]
   v
 3. Uvicorn (ASGI server) receives the HTTP request, hands it to the app [41 Uvicorn]
   v
 4. FastAPI endpoint: auth, Pydantic validation of the JSON body      [40 FastAPI] [13 Pydantic]
   v
 5. Redis: rate limit per user, check cache for identical question    [42 Redis]
   v
 6. Agent / orchestration code decides what context is needed          [32 Agents] [33 Frameworks]
   |
   +--> 7a. RAG: embed the question, search the vector DB for policy chunks,
   |        rerank, keep top 5 (filtered by the user's permissions)   [30 Embeddings] [31 RAG]
   |
   +--> 7b. Tool: get_order_status("A-1042") -> SQL / internal API    [29 Tool Use] [20 SQL] [34 MCP]
   v
 8. Prompt built: system prompt + policy chunks + tool result + question
                                                                      [28 Prompting]
   v
 9. LLM API call (streamed), e.g. Claude via the anthropic SDK        [27 LLM APIs] [26 Fundamentals]
    (or a self-hosted model on a GPU VM via Ollama / vLLM)            [36 Local LLMs] [49 Azure VM]
   v
10. Output checks: structured output validation, guardrails, citations [38 Security] [13 Pydantic]
   v
11. Stream tokens back to the browser (SSE)                           [09 HTTP] [40 FastAPI] [39 UIs]
   v
12. Log trace: prompt version, chunks, tool calls, tokens, cost, latency; user feedback
                                                                      [35 Evals/Observability]
   v
 USER sees: "Jackets can be returned within 30 days [1]. Your order A-1042 shipped and
             should arrive on Sept 30."

 Behind the scenes:
  - Documents were indexed earlier by a background worker            [42 Queues] [31 RAG]
  - Everything runs in Docker containers                              [43 Docker]
  - Built and deployed automatically on every merge                   [44 GitHub Actions] [05 Git]
  - Cloud resources defined as code                                   [47 Terraform] [48 Azure]
  - Nightly evals check quality didn't regress                        [35 Evals] [15 pytest]

4. From Idea to Production (Development Lifecycle)

The path a project takes from a quick experiment to a running service. Each stage adds structure, safety and automation.

Use it for planning a project; knowing what to learn next.

Diagram

%%{init: {"flowchart": {"wrappingWidth": 360, "nodeSpacing": 40, "rankSpacing": 40}}}%%
flowchart TD
    E["1. EXPLORE<br/>Jupyter notebook, pandas, quick LLM calls<br/>16 Jupyter, 18 Pandas, 27 LLM APIs"]
    S["2. SCRIPT<br/>working code moved to .py files, functions, logging<br/>10 Python, 06 VS Code"]
    P["3. PROJECT<br/>uv, pyproject.toml, Git repo, .gitignore<br/>12 uv, 11 venv, 05 Git, 08 Config files"]
    Q["4. QUALITY<br/>type hints + Pydantic, pytest, Ruff, evals<br/>13 Pydantic, 15 pytest, 35 Evals"]
    V["5. SERVICE<br/>FastAPI on Uvicorn, async, settings from env, jobs<br/>40 FastAPI, 41 Uvicorn, 14 Async, 42 Redis"]
    C["6. CONTAINER<br/>Dockerfile, Compose: app + DB + Redis<br/>43 Docker"]
    A["7. AUTOMATE<br/>GitHub Actions: test, eval, build image on every push<br/>44 GitHub Actions"]
    D["8. DEPLOY<br/>Azure Container Apps / App Service / VM + Nginx / AKS,<br/>infrastructure as code<br/>48 Azure, 45 Nginx, 46 Kubernetes, 49 Azure VM, 47 Terraform"]
    O["9. OPERATE<br/>tracing, cost dashboards, alerts, user feedback<br/>35 Observability, 38 Security"]

    E --> S --> P --> Q --> V --> C --> A --> D --> O
    O -. "production issues become new tests and eval cases" .-> Q

Stage by stage (text)

 1. EXPLORE        Jupyter notebook, pandas, quick LLM calls             [16] [18] [27]
      |
 2. SCRIPT         Move working code to .py files, functions, logging     [10] [06 VS Code]
      |
 3. PROJECT        uv / venv, pyproject.toml, Git repo, .gitignore       [12] [11] [05] [08]
      |
 4. QUALITY        Type hints + Pydantic, pytest, Ruff, evals            [13] [15] [35]
      |
 5. SERVICE        FastAPI API on Uvicorn, async, settings from env, jobs  [40] [41] [14] [42]
      |
 6. CONTAINER      Dockerfile, Compose (app + DB + Redis)                [43]
      |
 7. AUTOMATE       GitHub Actions: test, eval, build image on every push  [44]
      |
 8. DEPLOY         Azure Container Apps / App Service / VM + Nginx / AKS  [48] [45] [46] [49]
      |            Infrastructure as code                                 [47]
      |
 9. OPERATE        Tracing, cost dashboards, alerts, feedback -> new evals [35] [38]
      |
      +---------- feedback loop: production issues become tests / eval cases ----------+

5. The Data and ML Lifecycle

The typical flow of a data science / ML project. Each step maps to tools in this guide.

Use it for data analysis and classic ML work.

Diagram

%%{init: {"flowchart": {"wrappingWidth": 360, "nodeSpacing": 40, "rankSpacing": 40}}}%%
flowchart TD
    CO["COLLECT<br/>SQL, APIs, files: CSV, Parquet, JSON<br/>20 SQL, 09 HTTP, 08 Formats, 19 Polars / DuckDB"]
    CL["CLEAN<br/>missing values, types, duplicates<br/>18 Pandas, 19 Polars, 07 Regex"]
    EX["EXPLORE<br/>statistics, groupby, charts<br/>17 NumPy, 18 Pandas, 21 Matplotlib, 22 Seaborn, 16 Jupyter"]
    FE["FEATURES<br/>encoding, scaling, text embeddings<br/>23 Scikit-learn, 30 Embeddings"]
    MO["MODEL<br/>scikit-learn for tables,<br/>PyTorch / Hugging Face for text and images<br/>23 Scikit-learn, 24 PyTorch, 25 Hugging Face"]
    EV["EVALUATE<br/>cross-validation, metrics, error analysis<br/>23 Scikit-learn, 35 Evals"]
    SE["SERVE<br/>save model, FastAPI endpoint, Docker, cloud<br/>40 FastAPI, 43 Docker, 48 Azure"]
    MN["MONITOR<br/>data drift, performance, retraining schedule<br/>35 Observability, 44 GitHub Actions, 42 Queues"]

    CO --> CL --> EX --> FE --> MO --> EV
    EV -- "good enough" --> SE --> MN
    EV -. "not good enough: new features or model" .-> FE
    MN -. "drift detected: collect fresh data and retrain" .-> CO

Step by step (text)

 COLLECT    SQL, APIs, files (CSV, Parquet, JSON)             [20] [09] [08] [19]
    v
 CLEAN      pandas / Polars: missing values, types, dedupe     [18] [19] [07 Regex]
    v
 EXPLORE    stats, groupby, charts                             [17] [18] [21] [22] [16]
    v
 FEATURES   encoding, scaling, embeddings of text              [23] [30]
    v
 MODEL      scikit-learn (tabular), PyTorch / HF (text, images) [23] [24] [25]
    v
 EVALUATE   cross-validation, metrics, error analysis          [23] [35]
    v
 SERVE      save model -> FastAPI endpoint -> Docker -> cloud   [23] [40] [43] [48]
    v
 MONITOR    data drift, performance, retraining schedule        [35] [44] [42]

6. The AI Application Ladder

The levels of sophistication in LLM applications. Climb only as high as your problem requires; each level adds cost and complexity.

Use it for designing an AI feature.

 Level 6  MULTI-AGENT SYSTEMS    orchestrator + specialised agents          [32] [33]
 Level 5  AGENTS                 model decides steps in a loop with tools   [32] [29] [34]
 Level 4  RAG                    retrieve your documents, answer from them  [31] [30]
 Level 3  TOOLS / WORKFLOWS      fixed chains, routing, function calling    [29] [28]
 Level 2  STRUCTURED OUTPUT      extraction / classification into schemas   [27] [13]
 Level 1  SINGLE PROMPT          one well-written prompt, one call          [28] [27]
 Level 0  UNDERSTAND THE MODEL   tokens, context, cost, limits              [26]

 Cross-cutting at every level: evals [35], security [38], cost / latency [26] [27]
 Model choice at every level: hosted API [27] vs local [36] vs fine-tuned [37]

7. Where Code Runs

The places your code can execute, from laptop to managed cloud. Moving right means less to manage but less control.

Use it for choosing a deployment target.

 YOUR LAPTOP        VIRTUAL MACHINE       CONTAINER PLATFORM        KUBERNETES           SERVERLESS / PaaS
 python app.py      Azure VM + SSH        Docker on a VM            AKS cluster          Container Apps,
 Jupyter            systemd + Nginx       Compose stacks            pods, services,      App Service,
 Ollama locally     GPU for LLMs          Container Apps            autoscaling          Functions
 [10][16][36]       [04][45][49]          [43][48]                  [46]                 [48]
 ------------------------------------------------------------------------------------------------>
 full control, you manage everything                               less to manage, less control

8. Which Tool for Which Job

A one-table tech stack cheat sheet. Find the job, use the tool, open the guide.

Use it for choosing tools for a new project.

Job Default choice Alternatives Guide
Write code VS Code PyCharm, Jupyter 06
Version control Git + GitHub GitLab, Azure DevOps 05
Python environments / deps uv venv + pip, conda 12, 11
Data validation / config Pydantic, pydantic-settings dataclasses 13
Tests pytest unittest 15
Tabular data pandas Polars, DuckDB 18, 19
Relational database PostgreSQL SQLite (local), Azure SQL 20
Charts Matplotlib + Seaborn Plotly 21, 22
Classic ML scikit-learn XGBoost, LightGBM 23
Deep learning PyTorch JAX 24
Pretrained open models Hugging Face 25
Hosted LLM Claude API OpenAI, Azure OpenAI, Gemini 27
Local LLM Ollama llama.cpp, LM Studio, vLLM 36
Embeddings sentence-transformers / bge-m3 OpenAI, Voyage 30
Vector store Chroma (prototype), pgvector / Qdrant (prod) Azure AI Search, Pinecone 30
Agent framework Raw SDK / Claude Agent SDK LangGraph, OpenAI Agents SDK, PydanticAI 32, 33
Tool integration standard MCP 34
Evals / tracing pytest + scripts, Langfuse promptfoo, LangSmith, Phoenix 35
Demo UI Streamlit Gradio, Chainlit 39
API FastAPI Flask, Django 40
ASGI server (runs the API) Uvicorn Gunicorn + Uvicorn workers, Hypercorn, Granian 41
Cache / queue Redis + RQ / Celery / arq RabbitMQ 42
Containers Docker + Compose Podman 43
CI/CD GitHub Actions Azure DevOps, GitLab CI 44
HTTPS / reverse proxy Nginx + certbot Caddy, Traefik 45
Orchestration Azure Container Apps Kubernetes (AKS) 48, 46
Infrastructure as code Terraform Bicep, Pulumi 47
Cloud Azure AWS, GCP 48

9. How the Pieces Talk to Each Other

The few "languages" that connect every component. Almost all communication is HTTP + JSON, configured through environment variables and YAML / TOML files.

Use it for understanding integration and debugging connections.

 WHAT FLOWS BETWEEN COMPONENTS          HOW                          GUIDE
 ----------------------------------     --------------------------   ----------------
 Requests / responses                   HTTP(S) + JSON               [09] [08]
 Streaming tokens                       SSE / WebSockets             [09] [39] [45]
 Data shapes and validation             JSON Schema / Pydantic       [08] [13]
 Configuration                          env vars, .env, YAML, TOML   [08] [12]
 Secrets                                env vars -> Key Vault        [08] [48] [38]
 Tools for AI                           tool schemas / MCP           [29] [34]
 Background work                        Redis queues                 [42]
 Code and infra changes                 Git commits -> CI pipelines  [05] [44]
 Packaged apps                          Docker images in a registry  [43] [48]
 Infrastructure                         Terraform / Bicep files      [47] [48]

10. Learning Paths

Suggested orders for reading the guides, depending on your goal. Each path builds on the previous steps; practise with a small project at each stage.

Use it for planning your learning.

Path A: Foundations (everyone, first)

01 Core Concepts -> 03 Terminal -> 05 Git -> 06 VS Code -> 10 Python -> 12 uv (or 11 venv) -> 02 Markdown
       -> 08 YAML/JSON -> 09 HTTP
Project: a small Python CLI tool in a GitHub repo with a README

Path B: Data Analyst

Path A -> 16 Jupyter -> 17 NumPy -> 18 Pandas -> 20 SQL -> 21 Matplotlib -> 22 Seaborn -> 19 Polars/DuckDB
Project: analyse a public dataset, publish a notebook + charts

Path C: Machine Learning

Path B -> 23 Scikit-learn -> 13 Pydantic -> 15 pytest -> 40 FastAPI -> 41 Uvicorn -> 43 Docker -> 24 PyTorch -> 25 Hugging Face
Project: train a model, serve it with FastAPI in Docker

Path D: AI Engineer (LLM apps and agents)

Path A -> 09 HTTP -> 13 Pydantic -> 14 Async -> 26 LLM Fundamentals -> 27 LLM APIs -> 28 Prompting
       -> 29 Tool Use -> 30 Embeddings -> 31 RAG -> 39 AI UIs -> 35 Evals -> 38 Security
       -> 32 Agents -> 33 Frameworks -> 34 MCP -> 36 Local LLMs -> 37 Fine-tuning (optional)
Project: RAG chatbot over your own documents with citations, evals and a Streamlit UI

Path E: Deployment and MLOps / LLMOps

Path A -> 04 Linux -> 40 FastAPI -> 41 Uvicorn -> 42 Redis/Queues -> 43 Docker -> 44 GitHub Actions
       -> 48 Azure -> 45 Nginx/HTTPS -> 49 Azure VM + Ollama -> 47 Terraform -> 46 Kubernetes
Project: deploy your RAG app with CI/CD to Azure Container Apps, infra in Terraform

11. "I Want To..." Quick Finder

Common tasks mapped to the right guide and section. Find your task, open the guide.

Use it for looking something up fast.

I want to ... Go to
Undo my last commit / fix a mistake in Git 05 - Git, section 11
Find what uses port 8000 03 - Terminal, section 13
Set up a new Python project 12 - uv, section 4
Keep API keys out of my code 08 - .env, section 11; 38 - Security, section 11
Validate JSON input / LLM output 13 - Pydantic
Call 100 LLM requests in parallel 14 - Async, section 10
Test code that calls an LLM 15 - pytest, section 11
Clean and group a dataset 18 - Pandas
Query big CSV / Parquet files with SQL 19 - Polars and DuckDB, section 12
Train and evaluate a classifier 23 - Scikit-learn
Understand words like package, dependency, API, SDK, environment variable 01 - Core Concepts
Understand tokens, context windows, costs 26 - LLM Fundamentals
Call Claude / stream / get JSON back 27 - LLM APIs
Write a better prompt 28 - Prompt Engineering
Let the model call my functions 29 - Tool Use
Build "chat with my documents" 31 - RAG
Build an agent 32 - AI Agents
Connect my tools to Claude Code / Desktop 34 - MCP
Measure if my prompt change helped 35 - Evals
Run an LLM on my own machine 36 - Local LLMs
Protect my app from prompt injection 38 - AI Security, sections 2-3
Make a chat UI quickly 39 - AI UIs, section 3
Build an API for my model 40 - FastAPI
Run my API in production (workers, proxy headers, timeouts) 41 - Uvicorn
Run slow jobs in the background 42 - Redis and Queues
Package my app in a container 43 - Docker
Run tests automatically on every push 44 - GitHub Actions
Put my app on a domain with HTTPS 45 - Nginx and HTTPS
Deploy a container to Azure 48 - Azure, section 23
Run an LLM on a cloud GPU VM 49 - Azure VM + Ollama
Organise several Python services and a frontend in one repo 50 - Project Structure
Start new projects or services from a reusable template 51 - Project Templates

12. Core Mental Models in One Page

The handful of ideas that explain most of this guide. One line each; the linked guide has the full picture.

Use it for quick revision.

Concept Mental model Guide
Shell You type commands; programs read files and print text; pipes connect them 03, 04
Git A timeline of snapshots; branches are parallel timelines you can merge 05
Virtual environment A private box of packages per project 11, 12
HTTP Method + URL + headers + body -> status + headers + body 09
JSON / YAML Nested dicts and lists written as text 08
Pydantic Customs checkpoint: validate once at the border, trust inside 13
Async One chef switching dishes while each one waits 14
DataFrame A table where you operate on whole columns, not loops 18
ML model Learns a function from examples; judged on data it never saw 23
Neural network training Guess -> measure error -> nudge weights -> repeat 24
LLM Autocomplete that predicts the next token from everything in its context 26
Prompt A brief for a brilliant new colleague who knows nothing about your project 28
Tool use The model is the brain, your code is the hands 29
Embeddings A map of meaning: similar texts are close together 30
RAG An open-book exam: retrieve the right pages, answer from them 31
Agent An LLM in a loop: think -> act with tools -> observe -> repeat until done 32
MCP USB-C for AI: one standard plug between AI apps and tools 34
Evals Unit tests for AI behaviour, scored instead of exact 35
Prompt injection Untrusted text is read like instructions; limit what damage it can do 38
ASGI server The engine that speaks HTTP and hands each request to your async app 41
Container App + everything it needs, runs the same everywhere 43
CI/CD Every push triggers automatic checks, builds and deployments 44
Reverse proxy A doorman in front of your apps handling HTTPS and routing 45
Kubernetes Declare the desired state; controllers keep reality matching it 46
Infrastructure as code Cloud resources described in files, planned then applied 47
Cloud Rent computers and services by the hour; pay for what runs 48

13. Windows, macOS and Linux Differences

The places where commands in these guides differ between operating systems. Most guides show Windows (PowerShell) and Linux / macOS (Bash) side by side; this table collects the differences you meet most.

Use it for a command from a guide or tutorial fails on your machine.

Topic Windows (PowerShell) macOS Linux (Ubuntu)
Shell PowerShell (also CMD, Git Bash, WSL) zsh (Bash-like) Bash
Path separator D:\Projects\app (Python also accepts /) /Users/me/app /home/me/app
Home folder $HOME = C:\Users\me ~ = /Users/me ~ = /home/me
Activate venv .venv\Scripts\Activate.ps1 source .venv/bin/activate source .venv/bin/activate
Python command python / py python3 python3
Set env var (session) $env:KEY = "v" export KEY=v export KEY=v
Install software winget install ... brew install ... sudo apt install ...
Line endings CRLF (\r\n) LF LF
Script permission error Set-ExecutionPolicy -Scope CurrentUser RemoteSigned chmod +x script.sh chmod +x script.sh
Find what uses a port Get-NetTCPConnection -LocalPort 8000 lsof -i :8000 ss -tulpn / lsof -i :8000
curl Use curl.exe (in PS 5.1 curl is an alias) curl curl
Docker Docker Desktop (WSL 2 backend) Docker Desktop Docker Engine
NVIDIA GPU / CUDA Supported (drivers + CUDA build of PyTorch) No CUDA; Apple GPU via mps Supported (best for servers)
uvloop / Gunicorn Not available (Uvicorn falls back to asyncio) Available Available
Celery workers Development only with --pool=solo Available Available
Redis server Docker or WSL Docker / brew install redis apt install redis-server / Docker

Tips:

  • WSL (Windows Subsystem for Linux) gives you a real Ubuntu on Windows; Linux-only tools (Gunicorn, uvloop, vLLM) work there (04 - Linux).
  • Git on Windows: git config --global core.autocrlf true handles line endings; shell scripts for Linux must keep LF endings.
  • Quoting JSON in commands differs: in PowerShell prefer Invoke-RestMethod with ConvertTo-Json (09 - HTTP and APIs section 9).

14. Practice and Extras

Pages that help you practise and look things up. Exercises at the end of every guide, runnable examples, a capstone project, a glossary and a one-page command summary.

Use it after reading a guide (practise), when building your portfolio (capstone), when you only need a command (quick reference).

Resource What it gives you
"Try It" section at the end of every guide 3 to 5 exercises with hidden solutions
examples/ Runnable mini-projects: LLM basics, tool-using agent, RAG API, MCP server
templates/fullstack-microservices/ Runnable starter: two FastAPI services, React frontend, Nginx proxy, Compose (50 - Project Structure)
templates/service-template/ Copier template that adds a new service to the starter (51 - Project Templates)
97 - Capstone Project Build, test, containerise, automate and deploy a document chatbot, step by step
98 - Glossary Every key term A to Z, linked to its guide
99 - Quick Reference The most-used commands of every guide on one page