# Setting Up a Development Environment for AI Projects: Complete Guide to the ai-engineering-from-scratch Curriculum

> Build a reproducible Python development environment for AI projects. Learn containerized tooling and automated scripts with the ai-engineering-from-scratch curriculum. Get started now.

- Repository: [Rohit Ghumare/ai-engineering-from-scratch](https://github.com/rohitg00/ai-engineering-from-scratch)
- Tags: getting-started
- Published: 2026-07-19

---

**Setting up a development environment for AI projects requires a reproducible Python environment with validated dependencies, containerized tooling for isolation, and automated scripts that enforce lesson compliance across the four-layer architecture of the ai-engineering-from-scratch repository.**

The ai-engineering-from-scratch repository provides a self-contained curriculum that teaches AI fundamentals through hands-on implementation. Setting up a development environment for AI projects within this ecosystem involves configuring lightweight, reproducible tooling that supports 20 logical phases of learning, from Setup & Tooling to Math Foundations and LLM Engineering.

## Understanding the Four-Layer Architecture

The repository is engineered as a curriculum platform with distinct architectural layers that govern how content is structured, built, and validated.

### Phases and Lessons Structure

Content is organized into 20 logical phases stored under `phases/<NN>-<phase-slug>/<NN>-<lesson-slug>/`. Each lesson directory contains a narrative ([`docs/en.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/docs/en.md)), runnable implementations (`code/`), reusable outputs (`outputs/`), and assessment metadata ([`quiz.json`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/quiz.json)). The **lesson contract** defined in [`AGENTS.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/AGENTS.md) mandates this exact structure, ensuring every artifact is discoverable and executable by the build system.

### Build System and Site Generation

The static website generator resides in [`site/build.js`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/site/build.js). This Node.js script parses [`README.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/README.md), [`ROADMAP.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/ROADMAP.md), and the glossary to produce [`site/data.js`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/site/data.js), which drives the public lesson index and the "Find your level" navigation feature. The build process is idempotent and is triggered automatically by the `site-rebuild` job in the CI workflow.

### Automation and Validation Scripts

The `scripts/` directory contains Python utilities that automate environment management. The [`install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/install_skills.py) script deploys generated skill files (`outputs/skill-*.md`) into agent runtimes like Claude or Cursor. The [`audit_lessons.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/audit_lessons.py) validator enforces compliance with the rules specified in [`AGENTS.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/AGENTS.md) before any content is merged.

### Continuous Integration Pipeline

The repository enforces quality through [`.github/workflows/curriculum.yml`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/.github/workflows/curriculum.yml). This GitHub Actions workflow runs lesson-level linting via the `audit` job, synchronizes README counts, and regenerates site data. Because the curriculum is designed for local execution, the CI validates that all lessons remain runnable across macOS, Linux, and Windows environments.

## Step-by-Step Local Environment Setup

### Clone the Repository and Verify Structure

Begin by cloning the repository and navigating to the first phase directory, which contains the environment bootstrap scripts.

```bash
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
ls phases/00-setup-and-tooling/

```

### Bootstrap Python with Allowed Dependencies

The foundation of setting up a development environment for AI projects in this curriculum is the [`env_setup.sh`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/env_setup.sh) script located at [`phases/00-setup-and-tooling/06-python-environments/code/env_setup.sh`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/phases/00-setup-and-tooling/06-python-environments/code/env_setup.sh). This executable creates a clean conda or venv environment pre-configured with approved dependencies including NumPy and PyTorch.

```bash
bash phases/00-setup-and-tooling/06-python-environments/code/env_setup.sh

```

### Validate Installation with a Sample Lesson

Test your environment by executing the first lesson in the Math Foundations phase. The script at [`phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py) validates that your Python installation correctly imports NumPy and executes linear algebra operations.

```bash
python phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py

```

### Configure Docker for Isolated Development

For a completely isolated environment, use the Dockerfile provided at `phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile`. This creates a reproducible AI-engineer container that eliminates host-system dependency conflicts.

```bash
docker build -t ai-dev -f phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile .
docker run -it ai-dev bash

```

## Working with Skills and Automation

### Install Skills into Your Agent

After installing base requirements (`pip install -r requirements.txt`), deploy the curriculum's knowledge artifacts to your agent environment. The [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py) utility makes skill files available to Claude, Cursor, or any OpenAI-compatible agent runtime.

```bash
python3 scripts/install_skills.py

```

### Audit Lessons for Compliance

Before submitting modifications or new lessons, run the linter to verify adherence to the repository contracts. The [`scripts/audit_lessons.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/audit_lessons.py) script checks folder structure, file presence, and metadata validity against the specifications in [`AGENTS.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/AGENTS.md).

```bash
python3 scripts/audit_lessons.py

```

## Summary

- The ai-engineering-from-scratch repository uses a **four-layer architecture**: structured lessons under `phases/`, site generation via [`site/build.js`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/site/build.js), automation scripts in `scripts/`, and CI validation through [`.github/workflows/curriculum.yml`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/.github/workflows/curriculum.yml).
- **Environment setup** relies on [`phases/00-setup-and-tooling/06-python-environments/code/env_setup.sh`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/phases/00-setup-and-tooling/06-python-environments/code/env_setup.sh) to create reproducible Python environments with approved dependencies like NumPy and PyTorch.
- **Docker support** via `phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile` provides isolated containers for consistent cross-platform development without host contamination.
- **Validation tools** like [`scripts/audit_lessons.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/audit_lessons.py) enforce the lesson contract defined in [`AGENTS.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/AGENTS.md), ensuring all code remains executable and curriculum metadata stays synchronized.

## Frequently Asked Questions

### What Python version and dependencies are required for the ai-engineering-from-scratch curriculum?

The curriculum requires Python 3.8+ along with core scientific computing packages including NumPy and PyTorch. The [`env_setup.sh`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/env_setup.sh) script in `phases/00-setup-and-tooling/06-python-environments/code/` automatically creates a conda or venv environment with these locked dependencies, ensuring reproducibility across macOS, Linux, and Windows environments.

### How do I validate that my local environment is correctly configured?

Execute the vector arithmetic lesson at [`phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py). If this script runs without import errors and produces numerical output, your environment is properly configured. Additionally, running `python3 scripts/audit_lessons.py` will verify that all lesson files are present and correctly formatted according to the [`AGENTS.md`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/AGENTS.md) contract.

### Can I use Docker instead of a local Python installation?

Yes. The repository includes a Dockerfile at `phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile` that builds an isolated AI-engineer image. Build the container with `docker build -t ai-dev -f phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile .` and run it interactively with `docker run -it ai-dev bash`. This approach eliminates dependency conflicts and ensures the environment matches the CI pipeline exactly.

### What is the purpose of the install_skills.py script?

The [`scripts/install_skills.py`](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/scripts/install_skills.py) utility deploys generated skill markdown files from the `outputs/` directories into your agent runtime (such as Claude or Cursor). This allows AI agents to access the curriculum's structured knowledge artifacts during development tasks, effectively extending your IDE with domain-specific AI engineering capabilities defined within the repository.