Skip to content
A Software-Engineering Learning Path

A Software-Engineering Learning Path

The hardest thing about learning software engineering isn’t any single topic — it’s knowing what to learn next and who to trust. This is how I’d approach it: keep a great teacher in rotation, follow a few people who think clearly in public, and work through a staged reading list instead of grabbing books at random.

Start with a great teacher: Julia Evans

Julia Evans is an inspiring tech leader who excels at teaching topics in a bite-size way using zines. She’s also written a ton of blog posts and given talks worth your time.

Her Wizardzines site is an extensive, genuinely fun library of zines on technical topics — HTTP, DNS, debugging, containers, the command line, and more. If a foundational concept hasn’t clicked from the official docs, there’s a good chance a Wizardzine will get you there in twenty minutes.

💡
When I onboard an engineer who’s strong but has gaps in the fundamentals, I don’t hand them a 600-page reference. I point them at the relevant Wizardzine first. Getting the shape of an idea fast — then going deep where it matters — beats slogging through a spec you don’t yet have the hooks to understand.

Follow people who think in public

Beyond the foundational thinkers — Martin Fowler, Kent Beck, Robert C. Martin, Fred Brooks — a few developer-centric voices are worth keeping in your feed for how they reason, not just what they know:

NameKnown forWhy follow
Scott Hanselman.NET, developer advocacyEducator and host of Hanselminutes; generous, accessible explanations.
Jeff AtwoodStack Overflow, Coding HorrorCo-founder of Stack Overflow and Discourse; a strong voice for human-friendly software.
Jon SkeetStack Overflow, C#Legendary contributor; clear technical writing and deep dives.
Dan NorthBDD, delivery thinkingCreator of Behavior-Driven Development; focused on communication and delivery.
Charity MajorsObservability, DevOps cultureCo-founder of Honeycomb.io; outspoken on operability and on management.

A staged book list

This is a structured reading list rather than a pile of recommendations — each stage assumes the one before it, and each book comes with the reason it earns a spot.

1. Start here — engineering mindset & Agile principles

BookWhy
The Pragmatic ProgrammerTimeless guidance on becoming a better, more adaptive engineer — habits that scale with you.
Clean CodeA reference point for writing maintainable, readable, testable code (take its rules as prompts, not law).
Extreme Programming ExplainedHow Agile really works in practice, and the developer’s role in feedback-driven teams.
AccelerateThe evidence behind what makes software teams elite — and the home of the DORA metrics.

2. Next steps — architecture, DDD & microservices

BookWhy
Domain-Driven Design — Eric EvansThe philosophy of building systems around the business domain. Foundational.
Implementing Domain-Driven Design — Vaughn VernonA more practical, code-heavy take on DDD, great for developers.
Building Microservices — Sam NewmanHow to break down monoliths and handle real distributed-system challenges.
Software Architecture: The Hard PartsA deep dive into architectural trade-offs — essential for scaling decisions.

3. Deepen & scale — DevOps, observability & production

BookWhy
Designing Data-Intensive Applications — Martin KleppmannThe clearest book on how real systems store and move data at scale. The standout pick on this list.
The Phoenix ProjectA novel that brings DevOps concepts to life in a business-friendly way.
The Unicorn ProjectA follow-up from the developer’s point of view — flow, feedback, and simplicity.
Site Reliability EngineeringHow high-performing companies operate production systems at scale.
Team TopologiesDesigning teams to scale software delivery — ideal for leadership and architecture roles.

4. Specialized & platform topics

BookWhy
Pro ASP.NET CoreOne of the best practical guides for ASP.NET Core, from fundamentals to advanced.
Hands-On RESTful APIs with ASP.NET CoreDesigning clean, maintainable APIs with modern .NET and async patterns.
Cloud Native .NETBuilding cloud-native apps in .NET with DAPR, containers, and MassTransit.
Azure for ArchitectsWhen to use App Services vs. AKS, hybrid deployments, and the security trade-offs.

A few more starting points

💡
Don’t read this list front to back like a syllabus. Read stage one properly, then let the work pull you into the rest — pick the book that matches the problem the team is hitting right now. A book you read because you needed it sticks; a book you read out of obligation evaporates.

📚 Go Deeper

Books

Courses

  • Teach Yourself Computer ScienceA no-nonsense map of the nine CS subjects that matter and the best book or course for each — the structure under a self-taught path.

Tools

  • Wizardzines — Julia EvansBite-size, illustrated zines that make hard systems topics (HTTP, DNS, debugging, containers) finally click.
Last updated on