← Back to the full chapter
Lesson

What to learn

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

5 min read8 hours practice planWeek 0Updated
Read source ↗

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.

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.