Symptom: a broad course makes it hard to tell what to study next.
Fastest fix: choose a project first, then use the course phases to fill the gaps between foundations, implementation, and verification.
This guide is for self-learners moving into AI engineering, developers deciding what they can skip, and job seekers who need a demonstrable project rather than a completed course list.
Last updated September 26, 2026; the course structure and lesson count were checked against the official course repository and its release history. The repository can change, so recheck its current directory before following a saved plan.
How should you choose an AI Engineering from Scratch learning order?
Don’t work through all 523 lessons as a fixed, uninterrupted sequence just because they appear in a course. The official repository is the source to check for its current lesson count, stages, exercises, and entry points; it does not make the project-led route below an official required sequence.
Start with a deliverable you can describe in a sentence. For example: “A user submits a support question, the application searches a small knowledge base, and it returns an answer with a source.” That definition gives you a way to decide whether a lesson is relevant: will it help you prepare the input, make or evaluate a model call, connect a tool, handle a failure, or demonstrate the result?
Before choosing a starting point, write down:
- The user action: what someone does to start the project.
- The expected input and output: what goes in, and what a useful result looks like.
- Your existing skills: programming language, command-line use, APIs, data handling, and testing.
- The project’s constraints: where it must run, what data it can access, and which failures you need to handle.
Where should you begin if you’re new to AI engineering? Begin with the setup and foundation material if you can’t yet run the repository’s exercises or explain the basic ideas your project depends on. If you already build software and can work with APIs, start by getting a minimal version of the project running, then study foundation topics when a concrete problem exposes a gap.
The difference matters. A beginner may need a supported route into the concepts; an experienced developer may get more from trying a small implementation and using the course to answer specific questions. Neither approach requires claiming that the course has an undocumented hard prerequisite.
Prepare your environment before committing to a route
Check the official course directory rather than relying on someone else’s old outline. The repository has a setup and tooling phase. Review its actual instructions, exercise files, and stated outputs before deciding that a particular operating system, language, or tool is mandatory.
Then make a short skills inventory. Mark each item as “ready,” “needs review,” or “unknown”:
- Can you install dependencies and run a project from its instructions?
- Can you read and modify the language used in the exercises?
- Can you send a request to an API and inspect the response?
- Can you work with structured data, files, and environment variables?
- Can you reproduce an error and record the change that fixed it?
Treat an unknown as something to investigate, not as a reason to postpone the whole project. If setup instructions depend on a tool you haven’t used, learn enough to run the exercise. If you have not used a particular method of model evaluation, you can often begin with a small project and add that knowledge when you need to judge its outputs.
There are real costs to ignoring setup. A course environment that differs from your project environment can create confusing installation errors. A project that relies on an undocumented local setting may work only on your computer. And if you use a hosted development machine, access, file transfer, and session persistence become part of the workflow—not incidental details. Write down how you start the environment and where project files live before building on top of it.
For guidance on choosing a remote setup, use Kvmzen’s Mac development and rental use cases as a reference for deciding whether a Mac environment fits the tools and operating-system requirements you have actually verified. Don’t rent or buy hardware just because a course topic mentions AI; match the environment to the project and its dependencies.
Build foundations around a working exercise
The foundations are valuable, but they don’t all need to be mastered before you write project code. Use the course’s documented phases to connect concepts to tasks: the repository includes a math foundations phase and an ML fundamentals phase. Check their current exercises and outputs; don’t infer a mandatory completion threshold that the repository doesn’t state.
For the support-question project, foundations become easier to prioritize when you connect them to decisions you have to make:
- Data handling: Can you clean and represent the knowledge you want the application to search?
- Model behavior: Can you explain what the model receives and what kind of response you expect?
- Evaluation: Can you tell a useful answer from a plausible-sounding but unsupported one?
- Failure analysis: Can you identify whether an error came from your input, your application, or the model response?
A course exercise is more useful when you preserve its output and connect it to the project. Keep a small note beside the code: what the exercise demonstrates, which project decision it informs, and what you still don’t understand. This turns abstract study into a reference you can use while implementing.
Can developers with programming experience skip material? You can defer material that duplicates skills you already use, but don’t skip it solely because the topic sounds familiar. Run or inspect the relevant exercise, compare it with your existing knowledge, and record what you can already explain. If the exercise reveals a gap—such as evaluating outputs rather than merely calling a model—put that topic back into your plan.
A lesson is not “covered” just because you watched or read it. Keep the code, result, or written explanation that shows what you can now do.
Turn the course into project checkpoints
Use the table as a planning aid, not a claim about the course’s official sequence. Each linked phase points to a repository directory you can inspect; the order below is a recommended workflow organized around what your project needs.
| Project checkpoint | Course material to inspect | Evidence to keep |
|---|---|---|
| Prepare a runnable workspace | Setup and tooling | A clean start procedure and the command or instructions needed to run an exercise |
| Understand the concepts your project uses | Math foundations and ML fundamentals | A working exercise plus a short note linking its idea to a project decision |
| Connect an LLM to your application | LLM engineering | A repeatable model call with a defined input and a captured response |
| Add tools where the project needs them | Tools and protocols | A tool interaction that can be inspected and tested |
| Add agent behavior only if it helps | Agent engineering | A traceable task run, including the result and any failure you can reproduce |
What can you build independently after studying the course? That depends on what you implement and verify, not on the number of lessons you mark complete. A reasonable project might be a document-question answering tool, an LLM-backed feature in an existing application, or a tool-using agent for a bounded task. Choose a scope where you can define expected behavior and test the result; don’t present an unverified demo as a reliable autonomous system.
This second table helps you choose a scope. It pairs project goals with the types of course material to investigate, without suggesting that every project needs every topic.
| Project goal | Topics to prioritize | Keep the scope bounded by |
|---|---|---|
| Add a model-backed feature to an existing application | LLM integration, input/output handling, evaluation | A clear user action and an output you can inspect |
| Answer questions from a small knowledge collection | Data preparation, LLM engineering, evaluation | A defined collection and examples that reveal unsupported answers |
| Let an agent use a tool to complete a task | Tool integration, protocols, agent engineering | A limited set of tools and a task whose outcome can be checked |
For each checkpoint, leave behind a runnable artifact rather than only notes. A useful progression is: an exercise that runs; a minimal project call; an integrated feature; then a version with basic tests and instructions. If a stage does not support your chosen project, don’t force it into the implementation merely to claim course coverage.
How do you turn exercises into a portfolio? Keep selected exercises only when they demonstrate a skill used by the final project. Then present the project with a clear README, a reproducible setup path, sample input and output, the important design choices, and known limitations. Link or include the relevant exercise as supporting evidence, but distinguish course work from the project you built yourself.
Use a decision branch when your route is unclear
Apply these conditions before you add another topic to your study plan:
- If you cannot install or run the exercises you need, inspect setup and tooling first. Record the environment issue and resolve it before layering project code on top.
- If you can build ordinary applications but have not integrated a model, create the smallest working model call, then study the relevant LLM engineering material against that implementation.
- If the model call works but the result is hard to assess, pause feature work and study the evaluation concepts relevant to your output. Add test examples and write down what counts as an acceptable result.
- If the project needs a tool action that a direct model response cannot perform, inspect the tools and protocols material. Add agent engineering only when the project actually needs the agent behavior.
- If you already understand a foundation topic and can apply it, defer repeated study and continue. Return if implementation or testing exposes a specific gap.
- If you cannot explain why a lesson is in your plan, remove it temporarily. Re-add it when a project requirement gives you a reason to study it.
This is a route-selection tool, not an official grading rubric. The point is to move forward while making gaps visible. It also avoids two common traps: treating every foundational idea as a gate before coding, and treating the first successful demo as proof that the application is dependable.
Verify the project before calling it complete
Course completion and project readiness are different outcomes. A course can help you learn a topic; a project is ready to show when another person can understand what it does, run it, and see how you checked its behavior.
Before sharing your work, verify these areas:
- Reproducibility: Follow your own setup instructions in a clean environment, rather than relying on remembered shell state or files outside the project.
- Input and output: State what the application accepts and show what it returns. Include an example that makes the project’s purpose clear.
- Error handling: Check what happens when an input is missing, malformed, or not supported. Explain any remaining limitations.
- Basic tests: Keep tests or repeatable examples that check the main path and a relevant failure path. A screenshot alone does not establish that behavior is repeatable.
- Project evidence: Record the commands, outputs, test results, and known issues that support your claims.
- Learning gaps: List topics you deferred and the condition that would make you return to them.
These checks give you useful evidence for a portfolio without implying that a particular course stage guarantees job readiness. If a reviewer can’t reproduce the project, or you can’t explain what its tests establish, improve those parts before expanding the feature list.
Continue by tracing failures back to the course
After the initial build, use project feedback to choose what to learn next. If responses are inconsistent, revisit the material that helps you define and evaluate output quality. If tool calls fail, inspect the tool integration and the application boundary around it. If the project is hard to run, return to setup and tooling. Keep the study loop narrow: identify a problem, select the relevant official material, make a change, and repeat the check that exposed the problem.
Don’t assume that phase names or lesson entry points you saved will remain current. Before resuming after a break, compare your notes with the official repository and its release history. If the directory has changed, update your route from the repository’s current structure rather than treating an older outline as authoritative.
There’s also a practical choice about where to run the work. Your existing computer is usually the simplest option if it supports the required tools and you can reproduce the environment. A remote environment can separate experiments from your daily machine, but it adds access and persistence considerations. A Mac rental can make sense for temporary work that specifically needs macOS or Apple hardware; it is not a substitute for a GPU-focused environment when your project depends on that kind of compute. If you’re weighing those options, check that any remote environment offers the operating system, access method, and persistence your project requires.
For a short course project, buying a machine before you know the workload can lock you into an unnecessary cost. Using only your current setup can also mean tool or operating-system constraints, resource contention, or a setup that is difficult to reproduce. Renting a Mac through Kvmzen can offer a more suitable temporary environment when the project genuinely requires macOS, without making that rental the default choice for every AI workload. If your local setup already runs the required exercises, keep using it; if you have a verified Mac-specific need, compare it with the available Mac rental use cases before choosing.
