HN Books @HNBooksMonth

The best books of Hacker News.

Hacker News Comments on
Introduction to Algorithms, Second Edition

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein · 6 HN comments
HN Books has aggregated all Hacker News stories and comments that mention "Introduction to Algorithms, Second Edition" by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein.
View on Amazon [↗]
HN Books may receive an affiliate commission when you make purchases on sites after clicking through links on this page.
Amazon Summary
The first edition won the award for Best 1990 Professional and Scholarly Book in Computer Science and Data Processing by the Association of American Publishers. There are books on algorithms that are rigorous but incomplete and others that cover masses of material but lack rigor. Introduction to Algorithms combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor. The first edition became the standard reference for professionals and a widely used text in universities worldwide. The second edition features new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming, as well as extensive revisions to virtually every section of the book. In a subtle but important change, loop invariants are introduced early and used throughout the text to prove algorithm correctness. Without changing the mathematical and analytic focus, the authors have moved much of the mathematical foundations material from Part I to an appendix and have included additional motivational material at the beginning.
HN Books Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this book.
As far as I know a good company who would like to hire a Hacker (a good or very good programmer) will consider you (Take look at http://en.wikipedia.org/wiki/Hacker_ethic). However, you may have to prove to them that you know the stuff that you have written in your resume.

Best way forward would be to work on your skills. Although its a long shot but follow some of the advice for novice programmer. You can look for Steve Yegge's post on interviews and Joel on Software. These will guide you through this landscape.

If you want to learn programming from ground up. Here is my list:

1. http://mitpress.mit.edu/sicp/

2. http://www.amazon.com/Introduction-Algorithms-Second-Thomas-...

3. A Data structure book

4. Some basic book on the programming language of your choice.

The list may go on but you need to go through them in full steam.

Best of luck.

"Introduction to Algorithms" (http://www.amazon.com/Introduction-Algorithms-Second-Thomas-...)

"The Art of Computer Programming" (http://www.amazon.com/s/ref=nb_sb_ss_i_6_31?url=search-alias...)

....to begin with.

Then there are theoretical computer science books.

I like the Computability, Complexity, and Languages, Second Edition: Fundamentals of Theoretical Computer Science (Computer Science and Scientific Computing)

http://www.amazon.com/Computability-Complexity-Languages-Sec...

snikolov
Both solid choices. Having used CLRS (the Intro the Algorithms book), I would say it's a fantastic reference, but I found some of the presentation rather terse. It is nothing that a motivated reader can't power through, but some people have also suggested Kleinberg and Tardos's algorithms book for better pedagogical development http://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321...
That's a great collection of books, but when I see a list of link-shortened URLs to what context dictates are book web pages, I automatically assume they are affiliate links. Please just use the real URLs so people know what they're getting into.

For the record the shortened URLs are not affiliate links, and I'm not trying to make any statement about affiliate links. Here are the original URLs:

[1] http://mitpress.mit.edu/sicp/full-text/book/book.html

[2] http://ocw.mit.edu/courses/electrical-engineering-and-comput...

[3] http://dragonbook.stanford.edu/

[4] http://ocw.mit.edu/courses/electrical-engineering-and-comput...

[5] http://greenteapress.com/thinkpython/

[6] http://ocw.mit.edu/courses/electrical-engineering-and-comput...

[7] http://www.faqs.org/docs/artu/

[8] http://www.amazon.com/dp/0262032937/

nikcub
Ahh sorry - I am usually totally against shortened links but:

1. Didn't know that HN would trim the long links

2. Remember the shortcodes/aliases used at xrl.us (such as the MIT course names), although browser smart address bars and Google is just as easy.

Thanks for putting the links up, I don't need to update my comment.

As for me, I learned a lot of the concepts quicker and got more things done in Python than in Java. Why can't schools change the curriculum?

They will, with time. Colleges are slowly moving to Python instead of Java. With time, so will employers and the AP's. Then, slowly, schools will.

This is one thing you learn painfully as you get older - there are a million changes that should happen now, in a perfect world. In the world we live in, change happens slowly - money needs to be allocated to hire new teachers, which takes time, new teachers need to be interviewed and hired, which takes time. Old teachers need to be trained, which takes time, etc. A new teacher has to prove herself as being competent before a high school introduces a new curriculum only she knows, because they don't want to invest developing tests/homework problems/syllabi that will be useless if that teacher quits/gets pregnant/gets hit by a bus.

Java isn't so bad, it definitely has it's place, once you "get it" - it's great for creating concrete specs and controlling large numbers of developers (some of whom may be of intermediate quality). Try working with a crappy code base in Python, JavaScript, or Ruby, and you'll be ready to pull your hair out in a week.

If you're serious about programming and programming languages, though, forget about learning a thing in high school, work for the grades (if that's your style), and learn things on your own. Don't do it to show off to your friends - they're an inexplicably minute fraction of the world at large - impressing them is like a minnow trying to impress his puddle. There will be a lot of people much smarter than you if you get into a good college.

Save up your lunch money for these books, and get through as much of them as you can before grad school (or work):

http://www.amazon.com/Compilers-Principles-Techniques-Tools-... http://mitpress.mit.edu/sicp/ http://www.amazon.com/Introduction-Algorithms-Thomas-H-Corme... http://aima.cs.berkeley.edu/

That gives you 5 or 6 years, not nearly enough to really get these things, so make time. And... GO!

PS. consider it a big step in the right direction when you "get" Lisp.

"Algorithm Design" is a great book. A similar quality book that focuses more on introductory material is "Introduction to Algorithms" http://www.amazon.com/Introduction-Algorithms-Thomas-H-Corme...
Good introductory text: Cormen/Leiserson/Rivest/Stein: Introduction to Algorithms (2nd edition)

http://www.amazon.com/Introduction-Algorithms-Thomas-H-Corme...

Good advanced text: Jon Kleinberg/Eva Tardos: Algorithm Design

http://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321...

HN Books is an independent project and is not operated by Y Combinator or Amazon.com.
~ [email protected]
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.