Ask HN: What books should I read to improve as a software engineer?

Foundational software engineering & design books

  • Strong support for general-principles books that shape how you think about code and projects, not specific tools.
  • Frequently praised: works on software design philosophy, pragmatic day‑to‑day practices, classic essays on project management and team dynamics, and collections of programming “pearls.”
  • Some recommend splitting reading into:
    • “Why/how to design and deliver” (design philosophy, project planning, team dynamics).
    • “What and how it works” (algorithms, data structures, compilers, interpreters, language‑specific “Effective X” style books).

Architecture, systems, and performance

  • High enthusiasm for books on large-scale data systems and web application architecture; seen as essential for understanding databases, queues, and performance trade‑offs.
  • Architecture overviews and integration-patterns books are recommended for higher‑level design.
  • Systems and performance texts (CPU/memory behavior, OS, SRE, BPF tools) are valued for grounding engineers in how software really runs “on the metal.”

Controversial or polarizing titles

  • One popular design book on “clean code” draws heavy criticism:
    • Critics: leads to over‑abstracted, slower, harder‑to‑read code when followed dogmatically; ignores performance and hardware realities; spawns “Uncle says…” zealotry.
    • Defenders: credit it with major personal improvement, but stress it must not be treated as a bible.
  • Domain‑driven design is called both “fantastic” and “a waste of time”:
    • Fans: useful for tackling complexity in business domains.
    • Critics: confusing prose, unrealistic assumptions about stable terminology and available experts, too heavy for most real organizations.
  • Even well‑known classics like the main “pragmatic” book and data‑intensive systems book receive some pushback as overrated or partly dated.

Beyond coding: people, UX, and thinking

  • Strong endorsements for UX/interaction design books (e.g., about “everyday things”) as critical for anyone building tools humans use.
  • Repeated praise for books on teams, workplaces, project failure/success, and organizational change.
  • Recommendations for writing guides; good prose is seen as tightly linked to clear code and necessary for design docs and communication.
  • Many advocate reading fiction and philosophy to build empathy, creativity, and broader life understanding.

Books vs practice

  • One camp argues books alone won’t make you good; you must build things, read real code, and contribute to open source.
  • Others counter that books on meta‑skills (problem‑solving approaches, heuristics) and thorough documentation can greatly accelerate learning—provided you don’t get stuck in theory.
  • Widely shared view: combine all three—practice, reading, and reflection—while avoiding dogmatism and cargo‑culting any single book.