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 Algorithms in Java

    Algorithms in Java

    Robert Sedgewick · 2003

    Computer ScienceProgramming
    Open LibraryAmazon
    Stats for nerds
    4recommend
    7mentions
    6people
    2012–2021years
    71% recommend29% neutral

    Mentions per year

    2012201320142015201620172018201920202021

    What Hacker News says

    1. mindcrimeDec 2021
      I'm a big fan of Sedgewick's books myself. I like how he has parallel series of his books, for different programming languages. So you get "Algorithms in Java" or "Algorithms in C++" or whatever, depending on your preference. I think he has at least C, C++, and Java versions.

      https://www.cs.princeton.edu/~rs/

      thread
    2. MalcolmDiggsOct 2016
      In no particular order, I'd recommend reading:

      * Introduction to Algorithms, by Cormen et al (aka "CLRS")

      * Any of Robert Sedgewick's books on Algorithms ("Algorithms is C++", "Algorithms in Java", etc)

      * The Art of Computer Programming by Knuth.

      * If you want a more math-focused approach, Knuth has another book called "Concrete Mathematics" which might be worth your time.

      * If you want something fun and accessible check out "9 Algorithms that Changed the Future" by MacCormick

      thread
    3. stillworksOct 2016
      > Also, why is it suddenly in vogue to bash TAOCP and CLRS?

      I guess for the same reasons people want to bash the current interviewing institution in place.

      Personally, I go with "it is what it is, deal with it if you want THAT job"

      Back to the context, I think I find CLRS much more approachable than TAOCP. It relies on pseudo-code and fairly simple mathematical symbology to formalise the algorithms it is treating.

      With TAOCP I have tried by can't get past the language of the imaginary CPU which it uses.

      Also, there are other simply excellent texts on Algorithms which I personally found much more useful than TAOCP (in decreasing order of "easiness")

      - Python Algorithms

      - The Algorithm Design Manual

      - CLRS

      - Algorithms in Java (somehow I found CLRS easier to follow than this)

      - And then I found this recently, "Algorithms on Strings,Trees and Sequences: Computer Science and Computational Biology" (one should have at least gone through the first two recommendations before starting with this one to make it easier to read this one)

      Disclaimer : I have a growing interest in learning Algorithms due to the requirements of interviews, however I have come to believe that the knowledge will go a long way.

      thread
    4. jasimNov 2012
      I'd tried studying from both CLRS and this text (S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani) some years back.

      I had a visceral reaction against CLRS when I saw the standard pseudo-code the book uses. But as I tried implementing some algorithms in C, I found that the algorithms were so precise and detailed that there was no better way to represent it (apart from giving the C code directly).

      I've heard claims that CLRS' pseudo-code could be presented in a higher level manner - but it defeats the purpose of an Algorithms text. Algorithms should be correct, fast and consume the least memory possible - this requires you to think about low level memory management, cost of comparisons etc.

      However, the density and detail of CLRS forced me to look for other books which presents the topic in a better manner. Vazirani is an excellent choice in this regard. The language is clear and easy to understand, and it gives a better high-level picture than CLRS. I remember reading Chain Matrix Multiplication (page 184, 6.5) in Vazirani and being overwhelmed by the simplicity of the presentation compared to the dry formalisms used in CLRS.

      From my experience, I recommend using CLRS as an aid for rigorous study and Vazirani for less rigorous, but very effective learning. Also take a look at Sedgewick's Algorithms in Java series - http://www.cs.princeton.edu/~rs/ (he has C and C++ series, but Java is what I've used). It is more detailed than Vazirani but at the same time more approachable than CLRS.

      thread
    5. mindcrimeAug 2012
      I'd say that being a hacker is more about an attitude, or state of mind, than it is about having read certain books, or knowing certain languages, etc.

      Now, if by "hacker" you just mean "developer" or "software engineer," then one could be a little bit more detailed, but there's still a lot of different areas to explore.

      That said, if you want suggestions for books, articles, links, etc:

      I'd suggest you start out by reading some books / articles that give a bit of the history of "hackerdom" and some insight into the hacker mindset. Some possibilities that come to mind:

      Hackers & Painters by our very own Paul "pg" Graham

      Hackers: Heroes of the Computer Revolution by Steven Levy

      The Soul of a New Machine by Tracy Kidder

      Cyberpunk: Outlaws and Hackers on the Computer Frontier by Katie Hafner & John Markoff

      Artificial Life: A Report from the Frontier Where Computers Meet Biology by Steven Levy

      Godel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter

      Most or all of Paul Graham's essays. http://paulgraham.com/articles.html

      Read some of Edgar W Dijkstra's works: http://www.cs.utexas.edu/~EWD/

      Couple that with a good book on the C language, some basic "theory of computing" stuff and a good algorithms book. I actually like Java as a good language to explore a lot of different things, since it has great library and tool support, plenty of community support, plenty of docs and books, etc. Learning some Java so you can play with cool libraries like Mahout, OpenNLP, etc. isn't the worst idea in the world. And, of course, learning a Lisp of some sort. This is still on my personal TODO list as well, and I've been dabbling in Clojure... but I don't think you'd go wrong with Common Lisp or Scheme either.

      Other book recommendations:

      Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

      The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine by Charles Petzold

      Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Sussman

      Hacker's Delight by Henry S. Warren

      Operating System Concepts by Abraham Silberschatz

      Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein

      One (or more) of the Algorithms in FOO series by Robert Sedgewick. There are Algorithms in C, Algorithms in C++ and Algorithms in Java to pick from. Each is a multi-part series. The Java one goes up to at least 5 parts, I can't recall offhand if the series numbering is identical across languages.

      I also find that most hackers have an affinity for F/OSS software. If you don't already, I'd suggest running Linux or BSD as your operating system. Learn the standard command line tools, learn at least one of (Emacs|Vim).

      Read The Cathedral & The Bazaar if you haven't yet.

      Also consider some of esr's various rants, some of Stallman's stuff, etc., for context if nothing else.

      Edit: Also, expect somebody in this discussion to recommend reading The Art of Computer Programming by Don Knuth. I'll just say that TAoCP is more reference material than tutorial, and isn't something you'd normally just "read" as in "read cover to cover." It's a great reference to have around for when you need to dig into the deep details of implementing an algorithms, and need the mathematical stuff, etc. But it's not something you necessarily want to start with.

      There's SO many more places you can go though, than all this. The stuff mentioned above is good foundation stuff for a lot of paths you might want to explore, but don't limit yourself. Buy and Arduino and start doing some hardware hacking, read chemistry books and biology books, whatever floats your boat. Like ChuckMcM says below, curiosity is huge. If you're curious and don't limit yourself, you'll be a hacker.

      thread
    6. warner25Dec 2021
      Yes, I'm not sure that CLRS "Introduction to Algorithms" is approachable for everyone without prior exposure to formal CS concepts, notation, etc. My undergrad CS curriculum used "Algorithms in Java" by Sedgewick during our freshman year while we learned to write our first programs. We didn't use CLRS until a more in-depth algorithms class during our junior year. I read much more of CLRS in a graduate-level algorithms class.
      thread

    Related

    Cover of Algorithms on strings, trees, and sequences
    2012–2025

    Algorithms on strings, trees, and sequences

    Dan Gusfield
    3 recommend · 7
    Cover of Python Algorithms
    2011–2016

    Python Algorithms

    Magnus Lie Hetland
    4 recommend · 8
    Cover of Algorithms
    2007–2026

    Algorithms

    Robert Sedgewick
    50 recommend · 100
    Cover of The algorithm design manual
    2007–2026

    The algorithm design manual

    Steven S. Skiena
    195 recommend · 321
    Cover of Introduction to Algorithms
    2007–2026

    Introduction to Algorithms

    Thomas H. Cormen
    274 recommend · 880
    Cover of Algorithms in C++
    2009–2025

    Algorithms in C++

    Robert Sedgewick
    27 recommend · 45
    Cover of An introduction to the analysis of algorithms
    2013–2025

    An introduction to the analysis of algorithms

    Robert Sedgewick
    3 recommend · 6
    Cover of The art of computer programming
    2007–2026

    The art of computer programming

    Donald Knuth
    336 recommend · 1,799