4 ms·
Any better recommendations?
by 3abiton 3y ago
Any better recommendations?
- harshreality 3y agoAlgorithms? - 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.
- tmtvl 3y agoI would also add James Aspnes' Notes on Data Structures and Programming Techniques (<https://cs.yale.edu/homes/aspnes/classes/223/notes.html https://cs.yale.edu/homes/aspnes/classes/223/notes.html>, CC BY-SA 4.0).
- emmanueloga_ 3y agoFrom 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 https://github.com/patmorin/ods 2: https://greenteapress.com/wp/ https://greenteapress.com/wp/
- wyclif 3y agoWhat 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.
- emmanueloga_ 3y agoI 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".
- elric 3y agoFor beginners, I can recommend Grokking Algorithms by Bhargava. Small book with lots of illustrations, which is good for building up an intuition of what's going on.
- AlchemistCamp 3y agoI have never been disappointed with a single book in Manning’s “Grokking” category. It’s a great way to build up an understanding of how something works from the ground up without worrying about the specific code implementation (or using the book as a guide to write one).