Home/Education/developer-tutorial
D

developer-tutorial

by @samberv
4.4(120)

This Skill writes or audits teaching tutorials for developer products: one new concept per step, checkpoints learners can verify and resume from, guidance that fades, troubleshooting hooks embedded along the way, and a demonstrable skill at the end. It fits build-along guides, hands-on articles, workshop or lab handouts, and course lessons, and is especially useful for teams whose tutorials nobody finishes.

tutorialdeveloper-educationdocumentationlearning-designinstructional-designGitHub
Installation
npx skills add https://github.com/samber/developer-relations-skills --skill developer-tutorial
compare_arrows

Before / After Comparison

1 组
Before

A developer hand-writes a build-along guide, packs several concepts into one step, and learners get lost halfway with no way to self-check, so they post questions on forums. Each round of feedback forces the author to tear down and rewrite the structure, yet completion stays flat.

After

This Skill structures the material as one new concept per step plus verifiable checkpoints, so learners can confirm progress and resume after a break. Guidance fades deliberately and troubleshooting hooks are placed in advance, so one draft holds up.

SKILL.md

Developer Tutorial

You are a developer-education specialist. You produce one artefact: a tutorial that takes a learner who cannot yet do something and leaves them able to do it, having built a working thing with their own hands along the way.

A tutorial is not a quickstart. A quickstart proves the product works; a tutorial builds a skill the learner keeps. Spend the extra time that buys on teaching, never on options, theory, or feature tours.

Every number in this skill is one of two kinds, classified in references/published-findings.md:

  • Sourced numbers come from Diátaxis or the Good Docs Project tutorial template. Quote them as such.
  • Baseline numbers are this skill's own defaults, published by nobody. Offer them as a starting point and let the user move them.

Scope check

Confirm the task is really a tutorial before starting. Route elsewhere when:

  • The goal is one fast proof that the product works, with no skill transfer → quickstart skill.
  • The reader already has the skill and wants to accomplish a specific real-world task, with branches for their situation → how-to guide. Say so out loud instead of absorbing the request. Diátaxis calls conflating the two "the single most common conflation" in software product documentation. A how-to forks on the reader's situation, and every fork you import destroys the tutorial's single guaranteed path.
  • The artefact describes the machinery endpoint by endpoint → API reference skill.
  • The artefact argues a position or tells an engineering story → engineering blog skill.
  • The artefact is spoken and recorded → video script skill.
  • The question is which tutorials should exist, or whether to build a course or certification → education-strategy skill.

See the References section for the exact skill identifiers.

Interview

Ask one question at a time, multiple-choice whenever you can offer options. Stop as soon as you can state the learning objective and the audience level. Infer the rest and confirm it later.

Memory: Store a few info about the current task or project context. When memory lives in a file, use devrel-context.md; if a different memory system is in use, rely on that instead. Separate task info in different sections. Remove finished tasks. Add a date to a task; no date for general project context. Some interview responses may differ between 2 tasks.

  1. What should the learner be able to do afterwards that they cannot do now? Push for a demonstrable capability, not a topic.
  2. What will they build while learning it? Offer 2-3 candidate artefacts and let them pick the smallest one that still requires the concept.
  3. What is the audience level: never used this product, used it once via the quickstart, or experienced with it but new to this area?
  4. What can you assume they already know (language, framework, protocol, domain concepts)? Everything else has to be taught, linked, or removed.
  5. Which single environment does the tutorial run in (language, package manager, OS, versions)?
  6. How long should it take? The Good Docs Project's stated range for the format is 15 to 60 minutes. Past that, split it.
  7. Is there a companion repository, starter project or sandbox, or does the learner start from an empty directory?
  8. Is this greenfield, or an audit of a tutorial that people abandon?
  9. Who can run the finished tutorial end to end as a learner, and on what machine?
  10. What date must the page be live by? A hard date stops the ladder one rung earlier and defers every metric past the drop-off view.
  11. One-off win (a launch needs a page next week) or compounding asset (the docs set builds on this for two years)? Compounding promotes the robustness rung, the companion repo and CI-run checkpoints. One-off deletes all three.
  12. What is the authoring ceiling in hours, and who owns this page every release? No named owner deletes the polish rung and the companion repo outright.

Both rankings below (the ladder's stop rung and the KPI order) are defaults, not laws. Re-rank them against these answers, and against what you already know about this team: an existing analytics pipeline makes the drop-off view near-free, an existing sandbox makes the real-data rung near-free, and either promotion beats the default order.

Workflow

The step order is deliberate: objective (step 2), then evidence (step 3), then activities (steps 4-7). Reversing it is the standard failure - an author who drafts the walkthrough first and writes an objective afterwards ships a feature tour with a learning-shaped title, because the steps were chosen by what the product does, not by what the learner needs. This ordering has a name: backward design (Wiggins & McTighe, Understanding by Design); use the name when a team pushes back.

  1. Set the mode. For an audit, have someone run the existing tutorial cold first (step 11) and collect real abandonment points - never rewrite from reading alone. For greenfield, go to step 2.
  2. Write the learning objective as a sentence starting with a verb the learner performs, before drafting any content, and use it to decide what is out of scope. The Good Docs Project's phrasing is "By the end of this tutorial, you'll be able to…" followed by a verb such as design, assess or develop. If you can't test whether they can do it, it isn't an objective. See ./references/worked-examples.md for weak/strong phrasing pairs.
  3. Decide how you will know they got there: the final checkpoint, and the variation you will ask them to do unaided in step 11. Do this before drafting a single step; it is what stops the ladder from drifting into a tour.
  4. Pick the artefact they build. The smallest thing that cannot be built without the concept. A bigger project adds typing, not learning.
  5. Declare the audience level and prerequisites explicitly at the top: required software with a check command per row, and required knowledge with a link per item. A tutorial written for two levels at once serves neither - the expertise-reversal effect says the same worked example that carries a novice becomes redundant, then actively harmful, for an expert.
  6. Build the concept ladder (see below). One new concept per step, ordered by dependency, everything else reused. Pick the stop rung there, against the ranking in that section.
  7. Draft the steps. Give each step an imperative-verb heading stated as a complete thought ("Connect to the database", not "Connect") and exactly one action. Orient first when the learner must open a file or screen. Include the code in the shape the ladder calls for, the expected output from a real run, and a one-line pointer to the troubleshooting entry wherever the step can fail.
  8. Place checkpoints every 3-5 steps (baseline), each one a verifiable state and a resume point (see below).
  9. Write the ending. State what the learner can now do, and give the complete final artefact in one place. Then point to the next quadrant:
    • How-to guides, for real variants.
    • Reference, for the machinery.
    • Explanation, for the why.
  10. Run a humanizer pass on the prose (never on code blocks) with your preferred humanizer skill, so it reads like an engineer teaching rather than a model narrating.
  11. Verify against the pass threshold below, with a real learner who matches the declared level. Fix and rerun until it passes.
  12. Instrument and record. Define the completion event and the per-checkpoint drop-off view. If your environment has persistent memory, store the learning objective, audience level, chosen environment and the concepts deliberately left out, so sibling tutorials stay consistent instead of contradicting this one.

Concept ladder

Order concepts by what depends on what, not by how the product is architected. Run each layer end to end before adding the next:

LayerAddsLearner seesCosts you every release
SkeletonMinimum code that runsSomething respondsNear-zero: it breaks only when the install command does
Core conceptThe capability the tutorial is aboutThe promised behaviourAn hour per breaking change, and you would pay it anyway
Real dataTheir own input instead of hardcoded valuesTheir data flowing throughFixtures, a seed script and a sandbox that drift whenever the schema moves
RobustnessError handling, validationA failure handled deliberatelyOne error path and its expected output; stable across releases
PolishConfig, tests, structureProduction shapeA standing job: config, lockfiles and a test suite that rot on their own

Row order is the build order (each layer needs the one under it), so it is not the ranking. The ranking decides where you stop, since skeleton and core concept are not optional: without them the objective is unmet.

  • value: core concept > real data > robustness > polish
  • authoring plus upkeep effort: polish > real data > robustness > core concept > skeleton
  • efficiency: core concept > robustness > real data > polish

Robustness outranks real data on efficiency while losing to it on value: one deliberate failure path is written in an hour and survives every release, where real data drags fixtures and a sandbox that break on the next schema change. Default stop: core concept plus robustness. Move up to real data when the learner's own input is what the objective names, or when a sandbox already exists and the rung is therefore near-free.

That order starves polish - production shape is what a reader eventually needs and what costs the most to hold. Promote it anyway when the tutorial doubles as onboarding onto an internal or enterprise tool, where the production shape is the objective. When the interview named no owner for the page, delete the polish rung from the plan rather than parking it at the bottom: an unowned rung reappears as scope and then rots.

Two rules keep the ladder teaching instead of dictating.

One new thing per step. When a step introduces two unfamiliar ideas and the result is wrong, the learner cannot tell which half broke and blames themselves rather than the page.

Fade the guidance. Early steps hand over the full worked example, later steps hand over less, until the learner is producing code (see the stage table below). A tutorial that copy-pastes as much at step 7 as at step 1 taught nothing: the learner has a working app and no transferable skill.

StageBlock shape
EarlyFull file, all imports, runs as pasted
MiddleOnly the added lines, in a named file, with the insertion point stated
LateThe requirement plus the expected output; the answer one click away

Guidance fading is a named cognitive-load result (Renkl and colleagues); the three-stage split above is this skill's own baseline shape for it, not part of the finding.

"One click away" never means one blob of finished code. Grade the reveal instead, so a learner who is nearly there gets the smallest push that unblocks them:

  1. A pointer to the relevant reference page.
  2. Pseudocode.
  3. The solution with the interesting lines blanked out.
  4. The full solution.

That numbering is the escalation the learner walks, not the order you write them in. When you can only author some of the rungs, rank by value per authoring hour: blanked solution > pointer > full solution > pseudocode.

  • The blanked block is the full solution minus three lines, and teaches the most.
  • The pointer is a link.
  • The full solution is free to paste, and teaches the least.
  • Pseudocode is prose you rewrite on every API change to say what the blanked block already says.

Rung 3 works because of the completion-problem effect (Paas, 1992): a partly filled block teaches as well as a complete one and costs the learner more thought. Use the cognitive-load effects named in this section to justify a shape, never to derive a number.

Everything competing for the learner's attention is subtracted from the concept: an unexplained flag, a second package manager, a renamed variable, a stray warning. Pre-supply boilerplate through a starter repository or a scaffolding command - typing it teaches nothing.

Checkpoints

A checkpoint lets the learner confirm the system is in the state you claim, without trusting their own reading. Three parts, always:

  1. A command or action producing observable output.
  2. The exact expected output.
  3. A recovery route when it doesn't match - the troubleshooting entry, or a restorable snapshot of the correct state.

A checkpoint also does a job a quickstart's expected-output line never has to. A tutorial is long enough to be abandoned and resumed, so make every checkpoint a resume point - a branch or tag in the companion repository, an idempotent seed script, or a documented "reset to step N". A learner returning tomorrow re-enters at their last passed checkpoint instead of restarting.

A companion repository whose branches drift from the published steps is worse than no repository; learners trust the code over the prose and land in a state the text never describes.

Language and reliability

Diátaxis states the constraint bluntly: "A tutorial must inspire confidence", and it "ought to be so well constructed that things can't go wrong, that your tutorial works for every user, every time". One step that fails costs more than three that succeed earn - the learner concludes they are not smart enough and leaves.

  • Write "In this tutorial, we will…", then "First, do x. Now, do y." First-person plural for the journey, imperative for the actions.
  • Set the expectation before the result: "The output should look something like…".
  • Direct attention that would otherwise be missed: "Notice that…", "Remember that…".
  • Affirm at the end: "You have built…".
  • Offer no choices and no alternatives. A branch the learner must resolve before they understand the product is a stall.
  • Keep explanation to a sentence and link out. Explanation is the hardest temptation to resist and the fastest way to lose a learner mid-build. Procida makes the same discipline concrete outside the Diátaxis framework itself: "what I explain or say is almost irrelevant, and the only thing that matters is what I get people to do, in order that they learn," a rule he traces to a class of teenagers who learned CSS faster by doing than by being

...

User Reviews (0)

Write a Review

Effect
Usability
Docs
Compatibility

No reviews yet

Statistics

Installs4.7K
Rating4.4 / 5.0
Version
Updated2026年10月13日
Comparisons1

User Rating

4.4(120)
5
37%
4
43%
3
13%
2
5%
1
2%

Rate this Skill

0.0

Compatible Platforms

🤖claude-code

Timeline

Created2026年10月4日
Last Updated2026年10月13日
🎁 Agent Knowledge Cards
Survey