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 The algorithm design manual

    The algorithm design manual

    Steven S. Skiena · 1998

    CD-ROM contains: Hypertext version of text -- Source code and URLs for all cited implementations -- Audio lectures on design and analysis of algorithms.

    Computer ScienceProgramming
    Open LibraryAmazon
    Stats for nerds
    195recommend
    321mentions
    265people
    2007–2026years
    69% recommend26% neutral4% critical

    Mentions per year

    20072009201120132015201720192021202320252026

    What Hacker News says

    1. JsonDemWitOsterJul 2026
      Who clicked on this thread looking for career advice??? This discussion is not what I was expecting when I clicked on this thread. What's with the sudden obsession about the field having to be lucrative first? Where's the "hacker spirit" of just wanting to know how stuff works?

      Academia was never a lucrative field. For the sacrifices it requires, it will never be financially viable for me to work there. Am I wasting my time going through the Feynman Lectures nonetheless? Keeping my calculus decent? I clicked on this for the same reasons; not looking for career/financial advice, I just have a morbid curiosity about how the sausage is made.

      Not to mention, of course, that skills are transferable. Philosophy students don't study Plato because his ideas are relevant to everyday life. His way of thinking/reasoning about problems given his limited means is a timeless skill. I will probably never have to use any direct fact in the Feynman Lectures in my dayjob but learning to think like Feynman is useful when reasoning about large obscure systems which I do encounter daily. FL is not so much an exercise in physics but in the application of the scientific method in general. For software engineering, it nicely compliments Skiena's "The Algorithm Design Manual" IMO.

      What I expect to learn from graphics programming:

      - it's a good practice for applied maths/vectors/linalg - it's a good practice to learn lowlevel APIs/programming tricks - maybe I'll make a cool game

      All of which can also find application elsewhere in computing.

      thread
    2. boisterousnessMay 2026
      These are good ...

      "Python for Data Analysis" by McKinney (2018)

      "The Go Programming Language" by Donovan and Kernighan (2016)

      "Hacker's Delight" by Warren (2013)

      "Algorithm Design Manual" by Skiena (2008)

      "Purely Functional Data Structures" by Okasaki (1998)

      "Structure and Interpretation of Computer Programs" by Abelson and Sussman (1985)

      thread
    3. spopejoyDec 2025
      This is the thrust of much of the excellent "Algorithm Design Manual" by Skiena -- choosing the right data structure to model your problem can take you 95% of the way toward the best solution.
      thread
    4. hintymadNov 2024
      If one does want to get into FANNG-like companies or whatever those acronyms are, I'd suggest a few practical tips.

      - Use probability as your advantage. Or put it another way, perseverance works. Do recognize that interviewing is a hit-and-miss game. Say with your preparation your chance of getting into any of your top 10 companies is 30% -- a pretty low number just for us to steelman argument. Let's say you can try each companies three times a year (most companies have cool-down period per department instead of per company). Then in 5 years, you can try 30 times. The probability of failing all of them is 0.3^30 ~ 10^-16. That is, practically, zero. Of course, this assumes that each attempt is independent of each other, and we can maximize such assumption by keeping learning the lessons of failures. By the way, this is also a reason why one can see so many so-so engineers in a big companies.

      - Do not cram all of the leetcode questions. That's insane. Remember the quote from Invincibles: "when everyone is a superhero, nobody will be"? It applies to cramming too. Instead, use the time to study fundamentals. Pick up Kleinberg's Algorithm Design, Levitin's Introduction to the Design and Analysis of Algorithms, or Skiena's The Algorithm Design Manual. Note these books are not that academic. They all focus on the process of designing an algorithm from constraints and basic principles.

      - Do not worry about Leetcode Hard. Yes they will be asked from time to time by an interviewer, but see my suggestion #1. If you really want to try Leetcode Hard, at least ignore the ones that require deep ad-hoc analysis or the ones that require an aha-moment. They are talent filters or memory filters or obedience filters, but they won't improve your engineering expertise. Then, why bother? And trust me, it is actually rare for you to get a Leetcode Hard question.

      thread
    5. bkcooperSep 2024
      The recommendations in this thread so far do suggest a lot of nice books - CS:APP and SICP - but given your description of previous struggles with more academic stuff, along with the request for "practical examples or projects", I'm not sure they are right for you. By all means take a look, but don't be discouraged if they don't fit what you're after. An algorithm book with a somewhat different tone that you might check out is Skiena's Algorithm Design Manual. I've been reading Ousterhout's A Philosophy of Software Design recently and that might also be something that would interest you.

      However, I might suggest that books and theoretical knowledge are not the main things you need right away. I moved into software engineering after a long time in science. I had done plenty of coding, and had a pretty decent amount of theoretical knowledge, but there was still quite a bit of practical adjustment. I really like Rzor's suggestion of https://missing.csail.mit.edu to start with.

      Beyond that, I think maybe I would find some specific codebases that you'd like to understand better, and start with reading more of those. I feel like that's often better than books for picking up idiomatic usage and patterns in given domains. As you hit specific barriers, I think it will be much easier to pick up the intrinsic motivation to dip back into theoretical knowledge at that point.

      thread
    6. muffinman26May 2024
      There are so many books on learning a programming language, that I'll ignore that topic.

      Someone else mentioned data structures and algorithms. Algorithmic complexity is particularly important. The Algorithm Design Manual is a great book in this space.

      As a low level developer, I've also found the following topics way more useful than I expected:

      - Finite State Machines (These are the basis for everything from inter-device communication protocols to simple video game AIs.)

      - Binary arithmetic and boolean logic (Rarely relevant, but absolutely essential for diagnosing certain types of parsing errors, buffer overflows, etc.)

      - The Halting Problem and P = NP (Useful when a manager tries to get you to do something that is actually impossible.)

      I learned these from intro to Computer Science classes in university, but honestly Wikipedia is probably a good place to start. I think the (middle grade) book Lorem Ipsum also covers most of these concepts.

      thread

    Related

    Cover of Introduction to Algorithms
    2007–2026

    Introduction to Algorithms

    Thomas H. Cormen
    274 recommend · 880
    Cover of The art of computer programming
    2007–2026

    The art of computer programming

    Donald Knuth
    336 recommend · 1,799
    Cover of Programming challenges
    2007–2021

    Programming challenges

    Steven S. Skiena
    7 recommend · 11
    Cover of Algorithms in Java
    2012–2021

    Algorithms in Java

    Robert Sedgewick
    4 recommend · 7
    Cover of Algorithm design
    2007–2026

    Algorithm design

    Jon Kleinberg
    30 recommend · 56
    Cover of Algorithms
    2007–2026

    Algorithms

    Robert Sedgewick
    50 recommend · 100
    Cover of Introduction to the theory of computation
    2008–2026

    Introduction to the theory of computation

    Michael Sipser
    66 recommend · 96
    Cover of Algorithms + data structures=programs
    2007–2026

    Algorithms + data structures=programs

    Niklaus Wirth
    35 recommend · 81