Diagnose before counting pages
You have read plenty, yet a fresh task still feels difficult to start. Try three questions to locate the gap. Skip what you can already demonstrate. Judge the output and reasoning rather than time spent reading.
Three questions to find your starting point
- Type boundary: can unknown JSON simply be asserted as user data? Explain how invalid input is handled.
- Acceptance: an agent says saving works. What evidence would you request?
- Slicing: build every database table first, or complete one save-and-read path for favourites?
Suggested approach
Validate the input at runtime and reject an invalid shape. Observe saving, refresh to check persistence, and inspect a failed save. Start with an independently verifiable end-to-end slice and identify its dependencies.
If question one was difficult, choose foundations. For questions two or three, choose practice. If delivery works but handoffs fail, try the advanced route. Choose explanation when you want to teach someone else.
Want to learn TypeScript for free?
— Matt Pocock
Foundations: protect the input boundary
TS foundations → practical type tools → implementation and feedback.
Deliverable: handle unknown JSON and show both valid and invalid outcomes. Done means valid data reaches the feature and invalid structure produces an explicit failure. A type assertion alone cannot establish this behaviour.
Practice: deliver a reviewable change
Core ideas → workflow → alignment → specs and tickets → review and PR.
Deliverable: one small ticket, behaviour evidence and a review description. Done means another reader can explain the problem addressed, reproduce the outcome and identify unverified items without reconstructing requirements from your chat.
Advanced: make the work transferable
Context and handoff → agent documents → standards and checks → states and boundaries → decisions and retrospectives.
Deliverable: another session continues from the handoff, and one meaningful check is implemented. Done means the receiver locates the artifacts and the check rejects an intentionally introduced target error, then passes after its repair.
Explanation: teach a completed change
Writing to teach → feedback and attribution. Deliverable: a small lesson covering the problem, method, verification and sources for a change you completed.
Done means another reader attempts a fresh example and you check the answer and record misunderstandings. Revise the explanation from those results. Likes and compliments cannot establish that the learner can apply it.
Let results show progress
The small-win, practice and review structure adapts Matt Pocock's skills repository, MIT; source file: skills/.
Deliver first
Check the artifact against the route's completion criteria.
Return later
Close the answer and try a variation.
Change the context
Mix inputs and failure conditions to practise selecting a method.
The complete licence follows at the end of this page; see also the copyright page. These route sequences are this site's design. They are not Matt's official learning path and promise no fixed completion time.
Quick reference
Input gap
Choose foundations and demonstrate valid and invalid data.
Delivery gap
Choose practice; use advanced for broken handoffs.
Teaching goal
Choose explanation and assess answers to a fresh problem.
Sources
- Matt's free-learning invitation, 2022-09-05
- Route links lead to this site's lessons; the MIT teaching source is identified above.
skills MIT notice
The structure adapted here comes from mattpocock/skills, MIT licence, Copyright (c) 2026 Matt Pocock. The complete licence follows, identical to the repository LICENSE.
Full licence: mattpocock/skills
MIT License
Copyright (c) 2026 Matt Pocock
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Unofficial, non-commercial study notes. No affiliation with or endorsement by Matt Pocock. Quoted works remain their authors’ copyright; MIT reuse retains its copyright and licence notices.