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 Head First design patterns

    Head First design patterns

    Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates · 2004

    You're not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini.

    ProgrammingSoftware Engineering
    Open LibraryAmazon
    Stats for nerds
    65recommend
    109mentions
    100people
    2008–2025years
    64% recommend25% neutral11% critical

    Mentions per year

    2008201020122014201620182020202220242025

    What Hacker News says

    1. hyfgfhDec 2025
      Agreed! The problem is that some 'seniors' never cared to learn patterns in the first place. That’s a huge problem for frontend, where we have increasingly complex architectures and people with very little experience with design.

      Even some principles aren't known. I always recommend the book Head First: Design Patterns. It's in Java, but the lessons can be applied in every language.

      Unfortunately, we are in a 'post-knowledge' era... I don't know how we can keep things up at this pace.

      thread
    2. hoerzuDec 2024
      Here is a list so far: - Designing data intensive applications

      - Just Enough Software Architecture

      - Domain Driven Design - Tackling Complexity in the Heart of Software (Eric Evans) I recommend this one more than Vaughn Vernon's DDD.

      - Clean Architecture (Robert Martin)

      - Fundamentals of Software Architecture: an Engineering Approach

      - Design Patterns (Gamma et al)

      - Site Reliability Engineering: How Google Runs Production Systems

      - Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))

      - Refactoring to Patterns

      - Patterns of Enterprise Application Architecture

      -Head First Design Patterns Building Extensible and Maintainable Object Oriented Software and I

      - https://www.youtube.com/watch?v=odxOPxYJdjg

      - "Architecture Modernization: Socio-technical alignment of software, strategy, and structure"

      - Software Architecture in Practice

      - Documenting Software Architectures: Views and Beyond

      - Head first: Software Architecture

      thread
    3. matt_sNov 2024
      I have another book recommendation: Patterns of Enterprise Application Architecture, M. Fowler. If you don't want to purchase or just want a sampling read thru the catalog of patterns. https://martinfowler.com/eaaCatalog/

      Another book recommendation is Head First Design Patterns - the one I read used Java in the examples but I learned better with the style of that book than a textbook style. There are probably a lot of design patterns books out there including the original by the "Gang of Four".

      The most important thing after reading about these patterns is learning when to use one and to do that you just need to go use them. Some caution though, I found myself putting patterns into use more frequently than was probably necessary simply because it was a new thing.

      thread
    4. factotvmAug 2024
      I read Head First Design Patterns years and years ago. I'm a fan of the series. It's less for dummies and more using ideas from psychology to help you learn the material. I'll forever recall the power and conciseness of the Decorator pattern for computing the price of coffee drinks when there are as many variations as there are people. Starbuzz...

      From my memory banks after close to 20 years:

          SoyDecorator: CoffeeDecorator {
              price: Cents { price + 90¢ } // Soy adds 90 cents to the price
          }
      
      Edit: My regret is lending it to someone and never getting it back. I believe I might get this bundle.
      thread
    5. xeromalAug 2024
      I used head first in college and honestly I'm not a fan of the style. It doesn't take itself seriously and I don't think the writing is necessarily high caliber. Head First is like the mcdonalds of tech books. You can be sure that each one will be ok at teaching you something about the topic but in each field, you can find the best book to teach you but it'll be by a variety of different authers.

      So if you like reading and want a crash course on a bunch of frameworks, languages, etc, I'd buy the series. If you want to deep dive into something, look for the specialist author in that framework, language, etc.

      That said, head first design patterns saved my bacon when I was studying for my first job out of college

      thread
    6. mcnicholFeb 2024
      Head First Design Patterns. It's a recent and very friendly introduction to the popular Gang of 4 - Object Oriented Programming book.

      I love this part of the journey for folks because it opens the door to a world of possibilities that has dramatically more structure and form. Thoughts and ideas become less "what if.." and more puzzling together the best interactions between certain design implementations.

      At risk of rattling on endlessly in my excitement for you, TDD became a very interesting and enjoyable way (for me at least) to implement these patterns and gain a better understanding. I think you'll find Martin Fowler, TDD, and IoC/DI are peas in a pod.

      (I realize you said Python and this was Java. I'll see if I can find something Python friendly. If you'd like to try your hand with Java....I highly highly recommend Spring Framework and more specifically Spring Boot. Spring is an IoC Container Framework where the Dependency Injection is done for you on the fly. So much to throw at someone but if you'd like to connect on it, I'd be more than happy to give you a running start.)

      thread

    Related

    Cover of Design Patterns
    2007–2026

    Design Patterns

    Erich Gamma
    95 recommend · 491
    Cover of Domain-Driven Design
    2007–2026

    Domain-Driven Design

    Eric Evans
    104 recommend · 252
    Cover of Head First Programming
    2010–2020

    Head First Programming

    Paul Barry
    4 recommend · 4
    Cover of Head first object-oriented analysis and design
    2012–2023

    Head first object-oriented analysis and design

    Brett McLaughlin
    4 recommend · 4
    Cover of Head first Java
    2008–2024

    Head first Java

    Kathy Sierra
    27 recommend · 41
    Cover of The Pragmatic Programmer
    2007–2026

    The Pragmatic Programmer

    Andy Hunt
    353 recommend · 700
    Head First Software ArchitectureRaju Gandhi
    2024–2026

    Head First Software Architecture

    Raju Gandhi
    2 recommend · 2
    Cover of A pattern language
    2007–2026

    A pattern language

    Christopher Alexander
    110 recommend · 368