← All notes

Why I Prefer Building Software Instead of Tutorials

Building gives every new concept a purpose, a constraint, and a reason to stay in memory.

By Jansen Cadorna2 min read
  • building
  • software
  • reflection
Cover image for Why I Prefer Building Software Instead of Tutorials

Tutorials are useful when I need an introduction, but I rarely remember a concept because someone demonstrated it once. I remember it when a project needs it and I have to make it work inside a larger system.

Building creates context

Learning a database query in isolation is one thing. Designing a schema for data that will change over time is another. The second situation gives the query a purpose and exposes the consequences of getting it wrong.

The same pattern appears everywhere:

  • Components make more sense when an interface must remain consistent.
  • Caching makes more sense when repeated work becomes slow.
  • Types make more sense when a changing data shape breaks several consumers.
  • Accessibility makes more sense when keyboard navigation is part of the actual product.

Context turns information into something I can reason about.

Finished does not mean perfect

One lesson I keep relearning is that software can be useful before it is complete. A small working version provides better feedback than a large private plan.

My first version usually has rough edges. I keep a short list of known limitations rather than hiding them:

- [x] Core workflow works
- [x] Empty states are understandable
- [ ] Performance tested with larger data
- [ ] Edge cases documented

This makes progress visible and prevents perfectionism from replacing shipping.

Tutorials become references

I have not stopped using tutorials. Their role has changed. Instead of following one from beginning to end and reproducing the same result, I use focused resources to answer questions raised by the project.

That might mean reading the official documentation for one API, studying a small implementation, or building a disposable experiment before applying the idea to the real codebase.

The project decides what I need to learn next.

Why I keep doing it

Building combines technical problem-solving with design, writing, and empathy. A feature has to work, but it also has to make sense to someone who did not build it.

That combination keeps software interesting. Every project leaves behind more than code: it changes how I approach the next problem.