{"course":{"slug":"building-apps-with-ai","title":"Building Apps with AI","url":"https://addaly.com/learn/building-apps-with-ai","level":"beginner","track":"build"},"lesson":{"slug":"the-learning-path-from-here","title":"The learning path from here, with the model as tutor","url":"https://addaly.com/learn/building-apps-with-ai/the-learning-path-from-here","position":86,"of":87,"minutes":9,"answer":"Sixty hours in the right order (errors, one request end to end, your own data, fifty lines unaided, ten tests) with the model told to explain and question rather than write.","keyIdea":"Sixty hours in the right order (errors, one request end to end, your own data, fifty lines unaided, ten tests) with the model told to explain and question rather than write, turns a builder who guesses into one who reads."},"body":{"format":"markdown","text":"## The five things, with names\n\nThe previous lesson gave the order: errors, the path of one request, your data model, fifty lines unaided, tests. This one gives each a free resource and a way to use the model as a tutor rather than a builder, and a rough week count, on the assumption of an hour a day.\n\n## Weeks one and two: the language, in fifty lines\n\nPick the language the app is already in. For JavaScript and TypeScript, MDN's JavaScript guide is the reference written by the people who maintain the browser documentation, and freeCodeCamp's JavaScript certification is a free, structured path with exercises. For Python, Addaly's own `python-for-ai` course, and the official tutorial. Exercism gives small problems in either, with human mentors, free.\n\nThe target is not fluency. It is that you can write fifty lines that do something (read a list, filter it, print a result) without help, and that a diff reads as reading rather than decoding.\n\nThe tutor prompt for this fortnight:\n\n```text\nI am learning JavaScript. Do not write code for me. When I paste code, explain what\neach line does in plain words. When I ask how to do something, describe the approach\nand let me write it, then review what I wrote.\n```\n\n## Week three: one request, end to end\n\nOpen your own app and trace one action (creating a booking) from the click to the database and back, out loud. The browser sends what, to which route, which reads what, which queries what, which returns what, which renders how. MDN's HTTP overview covers the protocol; the first module of Addaly's `cloud-and-shipping` course covers what happens between the browser and the process. The tutor prompt: \"Walk me through what happens when this button is clicked, one hop at a time, and stop after each hop so I can say what I think happens next.\"\n\n## Week four: your data, by hand\n\nSQLBolt teaches SQL in a browser in an afternoon. Addaly's `data-and-sql` course goes further. The target is to write, unaided, the query behind your own busiest page, and to read `EXPLAIN` for it. Open the database directly and look at your tables; every abstraction the app uses is a view of those rows.\n\n## Weeks five and six: the framework's own tutorial, without the agent\n\nEvery framework has an official tutorial that builds a small app by hand (Next.js's \"Learn\" course, Django's polls tutorial, SvelteKit's), and doing it with the agent turned off is how the pieces the agent has been placing for you become pieces you can place. It will feel slow. That is the feeling of the model of the system forming in your head, which is the thing the closing lesson says somebody has to hold.\n\n## Weeks seven and eight: ten tests\n\nWrite ten tests for your own app: five for the functions that matter most, five that click through the main path in a browser. Vitest for the first kind, Playwright for the second, both free, both with tutorials that take an hour. The target is that a change can be accepted by running the tests rather than by clicking through the app by hand, which the closing lesson calls the point where you stop being the bottleneck.\n\n## The tutor, not the builder\n\nThe habit that decides whether the sixty hours work: when the agent makes a change, before accepting it, ask it to explain the diff line by line, then to ask you three questions about it, then to wait while you answer. Most people find that the first few times, they cannot answer. That is the gap being measured, and it closes quickly with this routine and never with the other one. A model that only writes teaches nothing; a model that explains, questions and waits is the most patient tutor available and costs the same tokens.\n\n## Measuring\n\nThree tests at the end, all from the closing lesson. Can you say, in one paragraph, what tables you have and how they relate? Can you write fifty lines unaided? Can you accept a change by running tests? Yes to all three is the end of this course's path and the start of the ordinary developer's, which is longer and better documented and no longer needs this course.\n\n## What sixty hours does not make you\n\nA professional. It makes you a reader who can write a little, which is exactly the person this course has been describing throughout: somebody who can decide whether the generated code is right. Building past that (a system with a team, real load, real money) is the work of years, and the three later courses on this site, `building-with-ai`, `cloud-and-shipping` and `evaluating-ai`, are where it continues."},"check":{"question":"You want to learn enough to read the code the agent writes. Which use of the model actually builds that ability?","options":[{"text":"Ask it to write the code as usual and then read what it produced afterwards, since reading real code written for your own app is the best way to learn and the model's code is idiomatic.","correct":false,"tempting":"Reading finished code teaches recognition, not production; the reader nods along and cannot write the fifty lines the closing lesson asks for."},{"text":"Ask it to produce a complete course on JavaScript and work through it from the beginning.","correct":false,"tempting":"A generated course is a generic syllabus with no connection to your app; the material that sticks is the change you needed today, explained."},{"text":"Ask it to explain each change line by line, then to ask you questions until you can explain the change back, and to refuse to write the next piece until you have tried it yourself.","correct":true},{"text":"Stop using the model entirely for a month so that you are forced to write everything by hand.","correct":false,"tempting":"Removes the tutor along with the crutch; the model explaining your own code is the fastest teacher available, if it is told to teach."}]},"prev":{"slug":"where-you-have-to-learn-to-code","title":"Where you have to learn to code","url":"https://addaly.com/learn/building-apps-with-ai/where-you-have-to-learn-to-code"},"next":{"slug":"building-one-real-thing","title":"Building one real thing","url":"https://addaly.com/learn/building-apps-with-ai/building-one-real-thing"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'The learning path from here, with the model as tutor', in Building Apps with AI. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/building-apps-with-ai/the-learning-path-from-here (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"The learning path from here, with the model as tutor","courseTitle":"Building Apps with AI","module":{"index":9,"slug":"what-it-costs-and-where-this-stops","title":"What it costs, running it, and where this stops"},"answer":null,"keyIdea":"Sixty hours in the right order (errors, one request end to end, your own data, fifty lines unaided, ten tests) with the model told to explain and question rather than write, turns a builder who guesses into one who reads.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"the-five-things-with-names","runs":[{"text":"The five things, with names"}]},{"t":"p","runs":[{"text":"The previous lesson gave the order: errors, the path of one request, your data model, fifty lines unaided, tests. This one gives each a free resource and a way to use the model as a tutor rather than a builder, and a rough week count, on the assumption of an hour a day."}]},{"t":"h2","id":"weeks-one-and-two-the-language-in-fifty-lines","runs":[{"text":"Weeks one and two: the language, in fifty lines"}]},{"t":"p","runs":[{"text":"Pick the language the app is already in. For JavaScript and TypeScript, MDN’s JavaScript guide is the reference written by the people who maintain the browser documentation, and freeCodeCamp’s JavaScript certification is a free, structured path with exercises. For Python, Addaly’s own "},{"text":"python-for-ai","code":true},{"text":" course, and the official tutorial. Exercism gives small problems in either, with human mentors, free."}]},{"t":"p","runs":[{"text":"The target is not fluency. It is that you can write fifty lines that do something (read a list, filter it, print a result) without help, and that a diff reads as reading rather than decoding."}]},{"t":"p","runs":[{"text":"The tutor prompt for this fortnight:"}]},{"t":"code","lang":"text","label":"Text","text":"I am learning JavaScript. Do not write code for me. When I paste code, explain what\neach line does in plain words. When I ask how to do something, describe the approach\nand let me write it, then review what I wrote."},{"t":"h2","id":"week-three-one-request-end-to-end","runs":[{"text":"Week three: one request, end to end"}]},{"t":"p","runs":[{"text":"Open your own app and trace one action (creating a booking) from the click to the database and back, out loud. The browser sends what, to which route, which reads what, which queries what, which returns what, which renders how. MDN’s HTTP overview covers the protocol; the first module of Addaly’s "},{"text":"cloud-and-shipping","code":true},{"text":" course covers what happens between the browser and the process. The tutor prompt: “Walk me through what happens when this button is clicked, one hop at a time, and stop after each hop so I can say what I think happens next.”"}]},{"t":"h2","id":"week-four-your-data-by-hand","runs":[{"text":"Week four: your data, by hand"}]},{"t":"p","runs":[{"text":"SQLBolt teaches SQL in a browser in an afternoon. Addaly’s "},{"text":"data-and-sql","code":true},{"text":" course goes further. The target is to write, unaided, the query behind your own busiest page, and to read "},{"text":"EXPLAIN","code":true},{"text":" for it. Open the database directly and look at your tables; every abstraction the app uses is a view of those rows."}]},{"t":"h2","id":"weeks-five-and-six-the-framework-s-own-tutorial-without-the-","runs":[{"text":"Weeks five and six: the framework’s own tutorial, without the agent"}]},{"t":"p","runs":[{"text":"Every framework has an official tutorial that builds a small app by hand (Next.js’s “Learn” course, Django’s polls tutorial, SvelteKit’s), and doing it with the agent turned off is how the pieces the agent has been placing for you become pieces you can place. It will feel slow. That is the feeling of the model of the system forming in your head, which is the thing the closing lesson says somebody has to hold."}]},{"t":"h2","id":"weeks-seven-and-eight-ten-tests","runs":[{"text":"Weeks seven and eight: ten tests"}]},{"t":"p","runs":[{"text":"Write ten tests for your own app: five for the functions that matter most, five that click through the main path in a browser. Vitest for the first kind, Playwright for the second, both free, both with tutorials that take an hour. The target is that a change can be accepted by running the tests rather than by clicking through the app by hand, which the closing lesson calls the point where you stop being the bottleneck."}]},{"t":"h2","id":"the-tutor-not-the-builder","runs":[{"text":"The tutor, not the builder"}]},{"t":"p","runs":[{"text":"The habit that decides whether the sixty hours work: when the agent makes a change, before accepting it, ask it to explain the diff line by line, then to ask you three questions about it, then to wait while you answer. Most people find that the first few times, they cannot answer. That is the gap being measured, and it closes quickly with this routine and never with the other one. A model that only writes teaches nothing; a model that explains, questions and waits is the most patient tutor available and costs the same tokens."}]},{"t":"h2","id":"measuring","runs":[{"text":"Measuring"}]},{"t":"p","runs":[{"text":"Three tests at the end, all from the closing lesson. Can you say, in one paragraph, what tables you have and how they relate? Can you write fifty lines unaided? Can you accept a change by running tests? Yes to all three is the end of this course’s path and the start of the ordinary developer’s, which is longer and better documented and no longer needs this course."}]},{"t":"h2","id":"what-sixty-hours-does-not-make-you","runs":[{"text":"What sixty hours does not make you"}]},{"t":"p","runs":[{"text":"A professional. It makes you a reader who can write a little, which is exactly the person this course has been describing throughout: somebody who can decide whether the generated code is right. Building past that (a system with a team, real load, real money) is the work of years, and the three later courses on this site, "},{"text":"building-with-ai","code":true},{"text":", "},{"text":"cloud-and-shipping","code":true},{"text":" and "},{"text":"evaluating-ai","code":true},{"text":", are where it continues."}]}],"check":{"question":[{"text":"You want to learn enough to read the code the agent writes. Which use of the model actually builds that ability?"}],"options":[{"text":[{"text":"Ask it to write the code as usual and then read what it produced afterwards, since reading real code written for your own app is the best way to learn and the model’s code is idiomatic."}],"correct":false,"tempting":[{"text":"Reading finished code teaches recognition, not production; the reader nods along and cannot write the fifty lines the closing lesson asks for."}]},{"text":[{"text":"Ask it to produce a complete course on JavaScript and work through it from the beginning."}],"correct":false,"tempting":[{"text":"A generated course is a generic syllabus with no connection to your app; the material that sticks is the change you needed today, explained."}]},{"text":[{"text":"Ask it to explain each change line by line, then to ask you questions until you can explain the change back, and to refuse to write the next piece until you have tried it yourself."}],"correct":true,"tempting":null},{"text":[{"text":"Stop using the model entirely for a month so that you are forced to write everything by hand."}],"correct":false,"tempting":[{"text":"Removes the tutor along with the crutch; the model explaining your own code is the fastest teacher available, if it is told to teach."}]}],"order":[1,3,2,0],"why":null},"prev":{"slug":"where-you-have-to-learn-to-code","title":"Where you have to learn to code","minutes":9},"next":{"slug":"building-one-real-thing","title":"Building one real thing","minutes":10}}}