From 3.5 billion Reddit comments

ProductGPT

Try the custom AI to help you find products that Reddit loves.

1 point

·
13th Jul 2021

For learning about efficiency I recommend reading Algorithm Design by Kleinberg and Tardos (you can easily find it in PDF if you can't afford it or it's not available where you live)

1 point

·
15th Dec 2015

Ignore the book at the following link unless you want to be bored to death. It may be useful if you want to learn a little bit about Greedy Algorithms, Dynamic Programming, etc... and a few problems/solutions for each, but the book is terribly written.

1 point

·
5th Dec 2022

For the most part, these puzzles a "well known" Data Structure / Algorithm to be applied to get a solution. When I have taught Algorithms to high school students in their 2nd and 3rd year of computer science, I typically use Princeton's free online Algorithm's course: https://www.coursera.org/learn/algorithms-part1. This course happens to be in Java.

Although it is getting a bit old now, I really like Jon Kleinberg's "Algorithm Design" book. I feel it is approachable and provides good challenges: https://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321295358

As an undergraduate, we used Cormen's "Introduction to Algorithms". I absolutely love this book and spent an entire summer doing every problem in the book. That said, most people I have spoken with HATE this book and find it to be quite challenging. I do believe this book changed the way I think about problem solving: https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X/

Lastly, practice! practice! practice! Find problems that you *can't* figure out. Look at solutions to those problems and study them to better understand them. Then, go back and try to re-implement them yourself. This is truly the only real way to get better at these problems.

Hope this helps!

1 point

·
13th Dec 2021

Algorithms Design

https://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321295358/

1 point

·
22nd Jan 2021

1 point

·
17th Sep 2017

"Algorithm Design" by Kleinberg and Tardos (https://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321295358) is a good textbook. It's actually readable. Most algorithms textbooks are more like reference books ... helpful when you already know algorithms and want to look something up, but not helpful to teach it to you.

There are some slides based on the book here (http://www.cs.princeton.edu/~wayne/kleinberg-tardos/) which could be useful too.

1 point

·
24th Feb 2017

www.geeksforgeeks.org is nice, in lieu of specific books. Lots of practice problems, lots of explanations, which I think are key to learning the stuff. A bit of linear text can certainly help, in case you want justifications for certain concepts, but you're usually better off keeping that light and as-needed, and jumping into problems as soon as possible. Break your brain and rebuild stronger.

And... https://www.reddit.com/r/learnprogramming/wiki/books

Oh and one text I don't see mentioned is Algorithm Design by Kleinberg and Tardos.

1 point

·
13th Oct 2016

/u/RLCCircuit's advice looks pretty solid. Regarding books, I like Algorithm Design. It's not quite as heavy as CLRS. You can find a pdf online pretty easily via Google.

After you understand these algorithms you should practice. CTCI & Leetcode are great resources for practicing the types of the questions you would get on technical interviews.

1 point

·
25th Aug 2015

You mostly need to learn algorithm design techniques so that you know what patterns to look for. I'm a fan of Kleinberg's <em>Algorithm Design</em>.

Also, experience with many popular algorithms will be very helpful since many efficient algorithms that a typical programmer would create are modifications or combinations of existing algorithms. Pretty much any decent algorithms resource will work here. The bible is CLRS.

Neither of the books I linked are easy reads. They're very mathematical. You should make sure you have a solid understanding of discrete mathematics and proof techniques (typically covered in a discrete math class).

$50 - $100

< $50

$50 - $100