Learn From a Project
Tutorial hell is real: you watch endlessly, feel like you're learning, and can't build anything yourself. Skills stick when you use them on a real project — one that forces you to figure things out, hit problems, and solve them. This designs that project: scoped to your level, structured to teach the exact skills you want, with milestones and just enough support that you build (and learn) instead of copy.
What This Skill Produces
- A project scoped to your level — ambitious enough to force learning, small enough to finish (finishing matters)
- The skills it forces — how this specific project makes you learn the things you're trying to learn
- Milestone breakdown — the project split into buildable chunks, each a small win
- What each milestone teaches — so the learning is intentional, not incidental
- Help without copying — how to get unstuck (docs, examples, asking) without just copying a solution (which teaches nothing)
- A stretch goal — an extension to grow into once the core works
Required Inputs
Ask for these if not provided:
- The skill — what you want to learn by building
- Your level — so the project is challenging but finishable
- Your interests — a project you'll care about (motivation matters for finishing)
- Time — how much you can put in
- What you've tried — tutorials done, to avoid repeating
Framework: Build Something Real, Learn By Doing
- Pick a project that forces the skills. Choose something whose completion requires the target skills — so learning them isn't optional.
- Scope for finishing. Ambitious enough to stretch, small enough to actually complete — an unfinished project teaches less and demotivates.
- Make it something you care about. Interest drives the persistence to push through the hard parts.
- Break into milestones. Buildable chunks, each a win and each teaching specific skills — so there's momentum and intentional learning.
- Get help the right way. Struggle a bit first (that's the learning), then use docs/examples/questions — but understand and rebuild, don't copy-paste a solution.
- Leave a stretch. An extension to attempt once it works, to grow further.
Output Format
Learn [skill] by building: [the project] · your level [x]
Why this project: [how it forces the target skills]. Milestones
- [chunk] → teaches [skill]. 2. [chunk] → teaches [skill]. 3. […] When stuck: [struggle first → docs/examples/ask → understand & rebuild, don't copy]. Stretch goal: [an extension once the core works]. Finishable in: ~[time for your hours].
Quality Checks
- The project genuinely forces the target skills
- Scoped to be challenging but finishable at the person's level
- Chosen to be something the person cares about
- Broken into milestones that each teach specific skills
- Guides getting unstuck without copy-pasting solutions
- Includes a stretch goal
Anti-Patterns
- Recommending more tutorials for someone in tutorial hell.
- A project too big to finish or too trivial to teach.
- A boring project the person won't push through.
- "Just copy this example" — which teaches nothing.
- No milestones — one overwhelming blob.
Example Trigger Phrases
- "I'm stuck in tutorial hell for coding — what should I build?"
- "Give me a project to actually learn web development."
- "I want to learn by doing, not watching. Design a project."
- "What should I build to practice my design skills?"
- "A real project to learn Python, scoped to a beginner."