Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Design Patterns

    Design Patterns

    Erich Gamma, John Vlissides, Richard Helm, Ralph Johnson · 1995

    Four software designers present a catalog of simple and succinct solutions to commonly occurring design problems, using Smalltalk and C++ in example code. These 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems.

    Software EngineeringProgramming
    Open LibraryAmazon
    Stats for nerds
    95recommend
    491mentions
    412people
    2007–2026years
    21% recommend64% neutral15% critical

    Mentions per year

    20072009201120132015201720192021202320252026

    What Hacker News says

    1. kooiOct 2026
      Design Patterns by Gamma et al.

      Recently helped me solve a non-obvious code-stink design issue.

      thread
    2. verify-aiJul 2026
      Design Patterns by Gang of Four is one of my favorite books. It was well structured and easy to read and reference. I remember when copied each pattern manually to learn them and reference into a pattern repo in Java.

      A couple weekends ago I felt inspired and I've build a research ingestion pipeline that uses AI to filter Arxiv for better quality research and filtered the best ideas that repeat into a sort of executive summary or ethos document. This document now guides all software projects I begin.

      I would like to share and I hope you find it useful too!

      thread
    3. noveltyaccountDec 2025
      In my senior year of college two decades ago, I needed one or two credit hours to finish up, and I signed up for a once per week software patents (as in, intellectual property, I thought) course. It turned out to be a patterns course taught by none other than Ralph Johnson and the text was his famous Gang of Four Design Patterns book. Happy accident, it turned out to be among the most professionally useful courses I ever took.

      https://en.wikipedia.org/wiki/Ralph_Johnson_(computer_scient...

      thread
    4. andyjohnson0Sep 2025
      Been doing this software thing for 35 years so I guess that makes me an old timer.

      Technical books, especially for practitioners, that stay relevant over a long period of time are rather rare. I wish I could say that I've had time to study TAoCP or SICP, but I haven't.

      Some of what I did find useful back in the day were: Advanced Programming in the Unix Environment by Stevens, Stan Lippman's C++ book, Code Complete by Steve McConnell, the GoF Design Patterns book, Working Effectively With Legacy Code by Michael Feathers, and Introduction to Artificial Intelligence by Charniak and McDermott.

      Whether, and to what extent, any of them are useful now is hard to say. Depends what you want to learn and what you're doing. The Charniak book, for example, is about classic "good old fashioned" AI, not the currently dominant connectionist approach. But it's LISP, and LISP is always relevant.

      I'd also add The Systems Bible by John Gall as a book that influenced me. Its not a technology book though.

      thread
    5. jjiceSep 2025
      Some of my favorites that have stayed at least pretty relevant. Disclosure: not an old timer.

      - UNIX and Linux System Administration Handbook. Get the most recently volume. It's a tomb (~1200 for the most recent).

      - If you do any SQL, SQY Performance Explained is an 80/20 read for DB indexes, query optimization, and troubleshooting

      - A Philosophy of Software Design (more recent). Just a great book on good design considerations to keep in mind.

      - Mastering Regular Expressions. The first half of the book will make you confident. The second half will show you how they're implemented. Regular expressions aren't something to be afraid of!

      - Designing Data Intensive Applications (more recent). Great book about data infra design decisions. Maybe not the scope you're looking for though.

      - Design Patterns (Gang of Four). Absolute classic. Hard to read all the way through though, more of a reference read. You'll recognize a lot of the patterns. You'll find some great to see a formal definition of, and you'll see some you never want to use.

      - Clean Architecture - Uncle Bob's best book IMO. I really don't like Clean Code, but this book talks a lot about interfaces and the right level of separation in your systems.

      - K&R, as you mentioned, is of course a classic

      - The AWK Programming Language is a nice quick read with similar quality and structure to K&R.

      - Beej's Guide to Network Programming. The best overview of network programming, including the C API. Plus this book is genuinely funny. Beej has a ton of great stuff, all on their website for free, or in print.

      - The Rust Programming Language is very well written too. Also online for free or in print.

      thread
    6. MrMcCallApr 2025
      > C lacks mechanisms to do this apart from using its incredibly brittle macro facility.

      We programmers are the ultimate abstraction mechanism, and refining our techniques in pattern design and implementation in a codebase is our highest form of art. The list of patterns in the Gang-of-Four's "Design Patterns" are not as interesting as its first 50 pages, which are seminal.

      From the organization of files in a project, to organization of projects, to class structure and use, to function design, to debug output, to variable naming as per scope, to commandline argument specification, to parsing, it's nothing but patterns upon patterns.

      You're either doing patterns or you're doing one-offs, and one-offs are more brittle than C macros, are hard to comprehend later, and when you fix a bug in one, you've only fixed one bug, not an entire class of bugs.

      Abstraction is the essense of programming, and abstraction is just pattern design and implementation in a codebase, the design of a functional block and how it's consumed over time.

      The layering of abstractions is the most fundamental perspective on a codebase. They not only handle scale, they make or break correctness, ease of malleability, bug triage, performance, and comprehendability -- I'm sure I could find more.

      The design of the layering of abstractions is the everything of a codebase.

      The success of C's ability to let programmers create layers of abstractions is why C is the foundational language of the OS I'm using, as well as the browser I'm typing this message in. I'm guessing you are, too, and, while I could be wrong, it's not likely. And not a segfault in sight. The scale of Unix is unmatched.

      thread

    Related

    Cover of A pattern language
    2007–2026

    A pattern language

    Christopher Alexander
    110 recommend · 368
    Cover of Design Patterns. Elements of Reusable Object-oriented Software
    2013–2024

    Design Patterns. Elements of Reusable Object-oriented Software

    Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
    4 recommend · 9
    Cover of Patterns of software
    2007–2026

    Patterns of software

    Richard P. Gabriel
    31 recommend · 70
    Cover of Refactoring
    2007–2026

    Refactoring

    Martin Fowler
    94 recommend · 179
    Cover of Pattern-oriented software architecture
    2014–2026

    Pattern-oriented software architecture

    Frank Buschmann
    6 recommend · 9
    Cover of Head First design patterns
    2008–2025

    Head First design patterns

    Eric Freeman
    65 recommend · 109
    Cover of Domain-Driven Design
    2007–2026

    Domain-Driven Design

    Eric Evans
    104 recommend · 252
    Cover of Refactoring to Patterns
    2009–2026

    Refactoring to Patterns

    Joshua Kerievsky
    15 recommend · 25