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.
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:
| Name | Known for | Why follow |
|---|---|---|
| Scott Hanselman | .NET, developer advocacy | Educator and host of Hanselminutes; generous, accessible explanations. |
| Jeff Atwood | Stack Overflow, Coding Horror | Co-founder of Stack Overflow and Discourse; a strong voice for human-friendly software. |
| Jon Skeet | Stack Overflow, C# | Legendary contributor; clear technical writing and deep dives. |
| Dan North | BDD, delivery thinking | Creator of Behavior-Driven Development; focused on communication and delivery. |
| Charity Majors | Observability, DevOps culture | Co-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
| Book | Why |
|---|---|
| The Pragmatic Programmer | Timeless guidance on becoming a better, more adaptive engineer — habits that scale with you. |
| Clean Code | A reference point for writing maintainable, readable, testable code (take its rules as prompts, not law). |
| Extreme Programming Explained | How Agile really works in practice, and the developer’s role in feedback-driven teams. |
| Accelerate | The evidence behind what makes software teams elite — and the home of the DORA metrics. |
2. Next steps — architecture, DDD & microservices
| Book | Why |
|---|---|
| Domain-Driven Design — Eric Evans | The philosophy of building systems around the business domain. Foundational. |
| Implementing Domain-Driven Design — Vaughn Vernon | A more practical, code-heavy take on DDD, great for developers. |
| Building Microservices — Sam Newman | How to break down monoliths and handle real distributed-system challenges. |
| Software Architecture: The Hard Parts | A deep dive into architectural trade-offs — essential for scaling decisions. |
3. Deepen & scale — DevOps, observability & production
| Book | Why |
|---|---|
| Designing Data-Intensive Applications — Martin Kleppmann | The clearest book on how real systems store and move data at scale. The standout pick on this list. |
| The Phoenix Project | A novel that brings DevOps concepts to life in a business-friendly way. |
| The Unicorn Project | A follow-up from the developer’s point of view — flow, feedback, and simplicity. |
| Site Reliability Engineering | How high-performing companies operate production systems at scale. |
| Team Topologies | Designing teams to scale software delivery — ideal for leadership and architecture roles. |
4. Specialized & platform topics
| Book | Why |
|---|---|
| Pro ASP.NET Core | One of the best practical guides for ASP.NET Core, from fundamentals to advanced. |
| Hands-On RESTful APIs with ASP.NET Core | Designing clean, maintainable APIs with modern .NET and async patterns. |
| Cloud Native .NET | Building cloud-native apps in .NET with DAPR, containers, and MassTransit. |
| Azure for Architects | When to use App Services vs. AKS, hybrid deployments, and the security trade-offs. |
A few more starting points
- Read Coding Horror, especially Falling into the pit of success — make the right thing the easy thing.
- Go deep with How to learn APIs.
- The Odin Project is a strong, free full-stack curriculum if you (or someone you mentor) want hands-on practice.
📚 Go Deeper
Books
- Designing Data-Intensive Applications — Martin KleppmannThe single best book on how real systems store and move data at scale. If you read one technical book this year, this is it.
- The Pragmatic Programmer — Hunt & ThomasTimeless habits for becoming a more adaptive engineer — the best starting point on this whole list.
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.