Programming
Programming tutorials for people who want code that actually runs, not code that only looks right. Pick a language, start at the beginning, and don't skip the basics. They are where most problems come from.
Add // @ts-check to the top of a file and JSDoc types to your functions, and the TypeScript checker flags wrong arguments in your editor and in CI. No build step, no .ts files.
Start with the recommended rules, fix what's automatic, turn noisy rules into warnings, and make CI fail only on new problems. The linter becomes useful on day one instead of ignored.
Set up name, version, exports and files in package.json, check exactly what ships with npm pack --dry-run, then publish with npm publish. Mistakes in a published version can't be undone.
Trace a detached preview from its DOM node to an application Map, repair cleanup, and verify repeated open-and-close cycles with heap snapshots.
Record one slow click in Chrome's Performance panel, read the Bottom-up tab by self time, fix the function it points at, and record again to prove the fix worked.
Your HTML file opens blank, shows as text, or downloads instead of rendering. Check the extension, the file:// open path, the doctype and a missing closing tag before you rewrite the page.
Measure two boxes with the same declared width, calculate padding and border, and reproduce the 100% width overflow mistake before fixing it.
Compare text alignment, a centred block and two-axis child placement, then test why centering needs available space.
Diagnose an ID rule that defeats a reusable note modifier, then keep the ID for navigation while moving presentation to classes.
Set a shared typography base, trace inherited colours and remove a local override without restyling every paragraph.
Trace a reproducible colour and spacing conflict from the rendered result to the winning rule, then verify the repair in the source file.
Build a local form with working labels and a grouped topic choice, then inspect submitted field names without sending a message.