Hacker News new | ask | show | jobs
by rg111 1039 days ago
The author would do himself a great service if he chooses some other resource for learning algorithms.

CLRS isn't bad. It is meant for a reference, and it also assumes that you are taking the course in college with an instructor teaching you.

There are other great resources out there.

Two I recommend are:

- Algorithms, Coursera (Sedgewick, Wayne)

- The Algorithm Design Manual (Skiena)

I have recommended self-taught programmers in the past, which all of them liked:

- A Common Sense Guide to Data Structures and Algorithms, PragProg (Jay Wengrow)

- Algorithms Illumited, book or Coursera MOOC (Tim Rougharden)

4 comments

Skiena is great.

My usual learn-a-new-language routine is speed-running the first 25ish Project Euler problems. They cover a lot of three usual language basics.

https://projecteuler.net/

Skiena posts recent semesters of lectures on Youtube as playlists, as well.

Going through them at 1.25-1.5x speed, a lecture per night or every few days, is extremely helpful.

One issue I have with CLRS is that array indices usually start at 1, but sometimes they use 0, because it works better in that particular case. Some functions I used in Erlang (lists:sublist/3, lists:nth/2) use 1-based indices, too. I thought that 0-based array indices (and exclusive upper bounds) were quite a done deal in computer science (https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/E...).
I always recommend 'A Common Sense Guide to Data Structures and Algorithms' as well but I'd like to call out the 2nd edition has expanded the recursion chapters and in general the end of chapter assignments are better. The 2nd edition was born from several years of teaching material from the first edition.
CLRS and Tardos && Kleinberg are great if you spend a whole year on the book and have mathematical background.

The latter is great for algorithms because it groups everything by concepts, ie greedy, DP and then network flows.