Prerequisites

This chapter lists the tools you’ll need throughout the book. Rather than installing everything at once, you’ll set up each tool as it becomes relevant. This approach lets you start quickly and spreads the installation work across the book.

Here’s the full toolchain in the order you’ll install each one:

Each tool listing below includes what it does, when you’ll need it, and a reference to installation instructions. If you encounter problems during installation, check the corresponding appendix for troubleshooting steps specific to your operating system.

Before You Begin

You’ll need a computer running Windows 11, macOS, or Linux. Most tools work across all platforms, though installation steps differ. The book provides instructions for both Windows and macOS; Linux users can generally follow the macOS instructions with minor adjustments.

You should have administrator access to install software. If you’re using a managed computer (such as a university lab machine), verify that you can install programs or contact your IT department for assistance.

A stable internet connection is required for downloading tools and, later, for pushing code to GitHub and accessing online data sources.

Unit 1: The Professional Toolkit

These tools should be installed before or during the first week of work.

GitHub Account

What it is: A free account on github.com, the platform for hosting Git repositories and collaborating on projects.

When you need it: 6  Collaboration with GitHub (Collaboration with GitHub), though creating the account early is recommended.

How to get it: Visit github.com and sign up with your email address. Choose a professional username since this account may become part of your portfolio. Enable two-factor authentication for security.

Notes: Use your personal email rather than an institutional email, so you retain access if you change organizations. GitHub’s free tier is sufficient for everything in this book; you don’t need a paid plan.

Package Manager (Homebrew or WinGet)

What it is: A tool that automates installing, updating, and managing software from the command line.

When you need it: Immediately, before installing other tools.

How to get it:

  • Windows: WinGet comes pre-installed on Windows 11 and recent Windows 10 versions. Open Windows Terminal and type winget --version to verify it’s available.
  • macOS: Install Homebrew by following instructions at brew.sh. This requires running a command in Terminal.

Notes: While technically optional (you can install everything manually), a package manager makes installation and updates dramatically easier. The small upfront investment pays off immediately.

Git

What it is: A version control system that tracks changes to files and enables collaboration.

When you need it: 5  Version Control with Git (Version Control with Git).

How to get it:

  • Windows: winget install Git.Git
  • macOS: brew install git

After installation, configure your identity:

terminal
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Notes: Use the same email address you used for your GitHub account. This links your commits to your GitHub profile.

Zed

What it is: A modern text editor designed for programming, with features like syntax highlighting, auto-completion, and an integrated terminal.

When you need it: 1  Computer Fundamentals (Computer Fundamentals) and throughout the book.

How to get it:

  • Windows: winget install Zed.Zed
  • macOS: brew install --cask zed

Alternatively, download from zed.dev.

Notes: Other text editors (VS Code, Sublime Text, etc.) work fine if you have a strong preference. The book uses Zed for examples because of its clean interface and excellent Git integration, but the concepts transfer to any editor.

Windows Terminal (Windows Only)

What it is: Microsoft’s modern terminal application, providing a clean interface for command-line work.

When you need it: 4  The Command Line (The Command Line).

How to get it: Install from the Microsoft Store or via winget install Microsoft.WindowsTerminal.

Notes: Windows Terminal should be your default terminal application while working through this book. Avoid using the legacy Command Prompt or standalone PowerShell applications.

Quarto

What it is: A publishing system that renders Markdown documents into HTML, PDF, presentations, and other formats.

When you need it: 3  Professional Documents with Quarto (Writing with Quarto), and again in 24  Computational Documents for executable code cells.

How to get it:

  • Windows: winget install Posit.Quarto
  • macOS: brew install --cask quarto

Notes: Quarto is what renders this book. You’ll start using it as a Markdown writing tool in Unit 1, then return to it for computational documents in the capstone unit.

Unit 2: Data with SQL

These tools support the SQL and database chapters.

DuckDB

What it is: An embedded analytical database that runs SQL queries on local files without server setup.

When you need it: 7  Databases (Databases) through 11  Data Modeling (Data Modeling).

How to get it:

  • Windows: winget install DuckDB.cli
  • macOS: brew install duckdb

Notes: DuckDB can query CSV, Parquet, and JSON files directly, making it ideal for learning SQL without database administration overhead. You’ll later add duckdb as a Python library (uv add duckdb) when connecting SQL to Python in 18  Python Meets SQL. See Appendix G — DuckDB for the distinction between the CLI tool and the Python library.

Unit 3: Python

These tools support the Python chapters.

Python (via uv)

What it is: The Python programming language, installed and managed through the uv tool for reliable dependency management.

When you need it: 12  Python Fundamentals (Python Fundamentals) through 17  Objects & Type Hints (The Python Object Model).

How to get it:

  • Windows: winget install astral-sh.uv
  • macOS: brew install uv

Then install Python: uv python install 3.13

Notes: We use uv rather than installing Python directly because uv handles virtual environments and dependencies more reliably. This avoids the “it works on my machine” problems that plague Python development.

Unit 4: Building Data Products

These tools support the capstone chapters on combining SQL, Python, notebooks, and professional tooling.

Marimo

What it is: A reactive notebook tool for interactive data exploration, with native SQL cells that connect directly to DuckDB.

When you need it: 24  Computational Documents (Computational Documents).

How to get it: uv tool install marimo initially, then uv add marimo as a project dependency later.

Notes: Marimo notebooks are stored as .py files, so they produce clean diffs in Git and can be run as scripts. See Appendix I — Marimo for details.

Ruff

What it is: A Python linter and formatter that automatically enforces code style and catches common bugs.

When you need it: Zed runs Ruff in the background from 12  Python Fundamentals onward, no installation required. You’ll add it as a project dependency in 23  Code Quality: Ruff, basedpyright, & Language Servers.

How to get it: Nothing to install initially. Zed handles it. Later: uv add --dev ruff

Notes: Adding Ruff as a project dependency gives you command-line access (uv run ruff check), which is essential for AI-assisted workflows and CI pipelines. See Appendix J — Ruff for the full explanation of the three installation modes.

basedpyright

What it is: A static type checker that verifies your type hints and catches type errors before you run your code.

When you need it: Zed runs a type checker in the background from 12  Python Fundamentals onward, no installation required. You’ll add basedpyright as a project dependency in 23  Code Quality: Ruff, basedpyright, & Language Servers.

How to get it: Nothing to install initially. Zed handles it. Later: uv add --dev basedpyright

Notes: Zed already bundles basedpyright, so you get type checking for free. Adding it as a project dependency gives you command-line access (uv run basedpyright) and pins the version for your team. See Appendix K — basedpyright for the full explanation.

Verification Checklist

After installing tools for each unit, verify they’re working:

Unit 1: The Professional Toolkit

terminal
git --version        # Should print version number
zed --version        # Should print version number (or open Zed)
quarto --version     # Should print version number

Unit 2: Data with SQL

terminal
duckdb --version     # Should print version number

Unit 3: Python

terminal
uv --version         # Should print version number
python --version     # Should print Python 3.13.x (after uv python install)

Unit 4: Building Data Products

terminal
uv run marimo --version       # Should print version number
uv run ruff --version         # Should print version number (after uv add --dev ruff)
uv run basedpyright --version # Should print version number (after uv add --dev basedpyright)

If any command fails with “command not found” or similar, revisit the installation instructions or check the troubleshooting appendix.

Getting Help

Installation problems are common and usually solvable. If you encounter issues:

  1. Read the error message carefully. It often contains clues about what went wrong.
  2. Search the error message online. Someone has likely encountered the same problem.
  3. Check the tool’s official documentation for platform-specific instructions.
  4. If you’re working through this book with others, ask for help and bring the exact error message.

Don’t let installation friction discourage you. Setting up a development environment is genuinely tricky, even for experienced developers. Once configured, these tools will serve you throughout this book and beyond.