CHAPTER 01 · Begin

Getting oriented

Choose your direction. Set up a reproducible workspace. Make your first small commitment.

9 min read8 hours practice planWeek 0Updated
DATASTRUCTUREMODELDECISIONGROUND TRUTH / 01↗
Find your coordinatesPLATE 01
Read source ↗
Read this chapter in 4 shorter lessons ↘

Week 0  ·  about 8 hours.

Book index  ·  Chapter resources

The short version. Choose a target role, a weekly time budget and a working Python environment. Start on your own CPU or a free notebook service. You finish with a repository another person can run, and no hardware to buy.

In this chapter: Plan  ·  Learn  ·  Build  ·  Completion  ·  Resources


Your week 0 plan

About eight hours. Do the days in order, and finish every step that ends in a commit or log line.

DayHoursDo thisDone when
12Read "Pick one target role" below. Write your choice, one non-salary reason and a weekly study budget in README.Role, weekly hours and study sessions are written down
22Run the uv commands below. Commit the project and push to a repo.Fresh clone passes the locked install and import check below
31Create LOG.md. Add today's line (see What to build).First log entry exists
41Open Google Colab. Run import pandas as pd; print(pd.__version__). Try switching to a GPU runtime.Notebook runs; CPU is fine today
52Read Eugene Yan's interview article (linked in Resources) and note the two skills in bold. Check five current job descriptions in your target market and skim the compute table.Role choice matches real requirements. You have a CPU plan and an optional GPU plan

What you will be able to do

Name the specific role you are working towards, and open a project without fighting your tools.

A quick entry check

Try these with documentation but without a tutorial. They show what to prepare, and are not a timed admission test.

  1. Read a small CSV, check that an amount is numeric, and return a useful error for a bad row.
  2. Write a function and a test, run them from a terminal, and explain the stack trace of a deliberate failure.
  3. In a throwaway repo, make a Git commit, look at its diff, and undo one accidental change.
  4. Explain why 12 events among 80 eligible cases is 15%, then say what would make that denominator wrong.

If the first three feel unfamiliar, use the programming resources in Chapter 2's resource list before counting the chapter budgets. Take one Python course, such as CS50P or Python for Everybody, then Learn Git Branching and The Missing Semester for Git and the shell. If fractions or function notation feel rusty, list the maths topics to revisit and work through the examples alongside Chapters 2 and 3. You can start without a full mathematics course. The reference lab is a small project with no API calls for checking your local workflow.

What to learn

Pick one target role. The five common titles look similar from outside and lead to quite different curricula. Trying to prepare for all of them at once is one of the more common reasons people stall. Treat the table as a guide to the work. Employers use these titles inconsistently.

RoleWhat the day looks likeQualifications to check in actual vacanciesFit for a developer
AI EngineerProducts using foundation models: context, tools, retrieval, evaluation, cost and latencySoftware experience and product judgement. Degree filters varyApplication skills transfer directly
ML EngineerData pipelines, training, serving and scaling. Model performance under deployment limitsProven software and statistics skills. Degree filters varyGood, with more statistics and systems work
Data ScientistExperiment design, causal questions, metrics and communicating decisionsStatistics, domain knowledge and sometimes a quantitative degreeGood, with the most statistics
Applied ScientistResearch alongside production codeSome employers require a graduate degree or equivalent research experienceNeeds a stronger record of experiments and research
Research EngineerFrameworks, distributed training and implementing new methodsSystems ability and research experience. Publications and graduate degrees depend on the roleA demanding route for developers with relevant systems experience

Data Engineer is worth considering as well: ingestion, data quality, modelling, orchestration and reliable analytical systems. Your SQL, backend and infrastructure experience can transfer.

If you cannot decide, AI Engineer is a reasonable first choice for someone who already ships applications. Revisit it after checking local vacancies and after your first project. A title alone does not show hiring demand or an employer's degree requirements.

Know what interviews can assess. Eugene Yan has published his own hiring rubric. He assesses software engineering fundamentals, data literacy, comfort with uncertainty, evaluation frameworks, and breadth of knowledge. It is one practitioner's rubric, so expect other interviews to differ. The projects in this book are built to show the two skills in bold.

Set up your tools. Use one documented workflow, and check version-sensitive examples against current documentation.

  • Environments: use uv. It manages dependencies, virtual environments and Python installations. First follow its installation instructions for your operating system, reopen your terminal if needed, and check uv --version. Then create the project:

    uv python install 3.14
    uv init --python 3.14 my-learning-repo
    cd my-learning-repo
    uv add pandas numpy jupyterlab

    Check that the installed packages import:

    uv run --locked python -c "import numpy as np; import pandas as pd; print(np.__version__, pd.__version__)"

    Both version numbers should print without an error. Open notebooks with uv run jupyter lab. Commit pyproject.toml, uv.lock, .python-version and the generated src/ package. Note the Python patch version, uv version and operating system. Use uv sync --locked and uv run --locked ... for a reproduction check. The flag fails if the lock disagrees with project metadata, rather than quietly changing it. See locking and syncing. A lock does not pin your data, GPU driver or every hardware-dependent result.

    Two details trip people up. Since uv 0.12, uv init creates a small package under src/, which suits the tested cleaning functions you write in Chapter 2. Add --no-package if you want the older single-file layout. For the Python version, pick the newest one that PyTorch, the deep-learning library you meet in Chapter 4, has ready-built packages for. In September 2026 that is 3.14, as the official PyTorch installation guide shows. If a needed library lacks a compatible wheel, choose a supported Python version and regenerate the lock on purpose.

  • pandas 3.0 changed some defaults. Copy-on-Write is now the only mode, so chained assignment cannot update the original dataframe. Use a single .loc[...] = ... assignment. Text columns also default to a string dtype. Some operations still support inplace=True, so seeing it does not date a tutorial. Check the pandas migration guide. NumPy's old aliases such as np.int, np.float and np.object expired in 1.24. NumPy 2.0 reintroduced np.bool with boolean dtype semantics. Use explicit dtypes when precision matters.

  • Editor. VS Code with the Python and Jupyter extensions is a practical default. Select the project's .venv interpreter and notebook kernel. Its data science tutorial also covers conda and TensorFlow. Those are valid, but use one documented environment here.

A note on package sources. At work, follow your organisation's package and licensing policy. Anaconda's commercial terms depend on the service and organisation, so read its current terms if you use it. Miniforge with conda-forge is another option if you need conda.

Where your compute comes from.

Nothing on the main path of this book needs a GPU you have to buy. "I cannot learn deep learning without a GPU" is a common worry and, happily, not true.

OptionCostGood forWorth knowing
Your computerNo additional service costChapters 1–3 and small CPU experimentsKeep the dataset small and note memory use and runtime
Google ColabFree tierQuick interactive notebooksGPU type, availability and limits change. Save work and checkpoints outside the runtime
Kaggle NotebooksFree tierPublic datasets and notebook experimentsCheck account eligibility, the current accelerator allowance and session limits
Lightning AIFree tier or credits where offeredPersistent development projectsCheck which machines use credits and how saved work is billed
ModalStarter credits, then usage chargesScripted CPU/GPU jobs and servicesCredits and endpoint billing follow different rules. Set a spending limit and check current pricing

Start locally or in a free notebook. Choose a GPU service later, to fit the exercise's memory, runtime and storage needs. A provider's allowance can change, so keep a CPU fallback and checkpoint training so it can resume. Official compute links are in this chapter's resources.

Resources

All 13 resources for this chapter, with notes on each, are in resources/.

The ones to begin with:

What to build

Create your learning repository, add a LOG.md, make your first commit, and push it. Public is better, even this early. One line per session is enough:

2026-10-09 · 2h · Created repo with uv; CPU notebook runs · Broke: selected wrong kernel

From a fresh clone, run uv sync --locked, then repeat the import check above. Write those exact commands in the project README, with your role and weekly study sessions. Keep credentials and private datasets out of the repository. A public project helps when its data and code can be shared.

Before you move on

  • You can state the role you are training for, and one reason for it that is not salary.
  • Your weekly hours and study sessions are written down. If ten hours a week is unrealistic, stretch the schedule.
  • A fresh clone installs from the committed lock and passes the documented import check.
  • You can correct a pandas chained-assignment example using the migration guide.
  • You have a working CPU environment and know how to check an optional GPU service's current limits.

A few things worth knowing

  • Course collecting. CS50P, Python for Everybody and Automate the Boring Stuff overlap heavily. Doing all three is a lot of hours to learn one thing once. Pick whichever suits you and finish it.
  • Certificates. A certificate shows you finished a course, not that you can build or evaluate things on your own. Historical MOOC completion rates count everyone who registered, including people who never meant to finish, so they are a poor guide to your own success. Alongside any certificate, build something a reviewer can inspect.
  • Perfecting the plan. It is possible to spend a happy weekend on a study schedule. The schedule is not the work.

Back to the index  ·  Next: Data foundations

KEEP A RECORD

Save your work, explain one decision, and record what you would test next.

Something unclear or out of date? Suggest a correction ↗

Find your next idea

Loading local search…

Search is built from this edition. No account needed.