Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Algorithms?

- Algorithm Design Manual (3rd ed.) (by Skiena)

- Art of Computer Programming vols 1, 2, 3, 4A, 4B (editions 3,3,2,1,1) (collectively, "TAOCP") (by Knuth)

- Algorithms (by Erickson) [CC-BY-4.0]

- Algorithms (by Sedgewick & Wayne)

- Introduction to Algorithms (4th ed.) ("CLRS") (by Cormen et al.)

- How to Design Programs (by Felleisen et al.) - crossover between basic programming advice, functional programming, and some limited/basic algorithms coverage [CC-BY-NC-ND-4.0]

- Pearls of Functional Algorithm Design (by Bird)

- Purely Functional Data Structures (by Okasaki)

Publishers? Pragmatic Bookshelf, or O'Reilly (not oreilly.com-selling-Packt). Find what everyone is using as a learning/reference resource for a specific topic and use that, regardless of publisher; it's rarely if ever Packt.



I would also add James Aspnes' Notes on Data Structures and Programming Techniques (<https://cs.yale.edu/homes/aspnes/classes/223/notes.html>, CC BY-SA 4.0).


What do you think are the most worthwhile Pragmatic Bookshelf titles? I just looked at their publications list and there's a lot more of them than I had thought before I checked.


I have fond memories of the "Picaxe" book ... I have no idea if it is still the best way of learning ruby (I used the 2nd edition, for ruby 1.8 I think...).

Two other books that I like from them are "Language Implementation Patterns" and "Distributed Services with Go".


From all these I feel like the best intro is Sedgewick & Wayne. CLRS is less solo-learner friendly, in my opinion. I skimmed Erickson and I liked it too.

In the "friendly+actually-useful" category, you missed "Open Data Structures" [1] ... I think it has one of the best descriptions of trees, including B-Trees which seem to be only superficially described in other books. The "Think" series is also pretty good and covers more than just algorithms [2].

TAOCP, Okasaki, Bird: these feel really academic and/or less useful for industry work. Reading HTDP wasn't as useful to me, at least: I feel like Felleisen's books describe what he "imagines" would be a good way to write software on a "real" job :-p (non-academic setting).

Skiena: I have mixed feelings about it... It seems to have gained popularity since Steve Yegge's blog post about Google interviews, but imho many concepts in that book are better explained elsewhere. I suppose the intended purpose of the book was to serve as a reference and an index to other resources. However, it often refers to sources that are 10 years old or older, academic implementations that could be challenging to apply in a real job setting, or things that are no longer available online afaict (e.g., LEDA), or hard to read papers, most of which lack a working implementation of the described concepts, etc. I wonder if anybody can really vouch for it or have a personal anecdote of the book being useful or enjoyable.

--

1: https://github.com/patmorin/ods

2: https://greenteapress.com/wp/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: