3 ms·
Thank you, this is a great answer that confirmed some of my suspicions. I'd be interested if anyone could recommend other good resources such as Project Euler.
by mcantor 15y ago
Thank you, this is a great answer that confirmed some of my suspicions. I'd be interested if anyone could recommend other good resources such as Project Euler. Perhaps the book Data Structures and Algorithms ought to be higher up on my reading list? I would feel a lot more enthusiastic about getting a copy and diving into it if someone with the context of my OP question could confirm that it's a relevant resource.
- tikhonj 15y agoI haven't read Data Structures and Algorithms, but I can point you to a draft of the book for my current Algorithms class, creatively called Algorithms[1]. I think content-wise the draft is almost identical to the published versions; the main differences are in the exercises. [1]: http://www.cs.berkeley.edu/~vazirani/algorithms.html http://www.cs.berkeley.edu/~vazirani/algorithms.html It's fairly in-depth but narrative in style and readable; I rather like it. One particularly nice touch is that it goes over the practical applications of the various algorithms at a high level, giving you a good idea of where they are used and why. If you do not do much math and do not remember Linear Algebra/Discrete Mathematics, it might be best to skip the first couple of chapters and look at graphs first instead. That said, the first two chapters cover some math which is probably good to know. The book is primarily about algorithms. It touches on data structures where needed to implement or describe an algorithm, but not much more besides (at least in the parts I've gotten through so far). I have not read any good data structures book, but have found Wikipedia to be a very good resource. I suggest avoiding overly language-specific books on the matter--I think that Java books in particular are insidious, but I am little biased in that regard. The best approach would probably be to read through a section about some algorithm, look at what sorts of problems it can solve and then write a simple program to solve those problems. For example, when reading about path-finding algorithms, you could write a simple navigation program. I find this helps keep the material interesting and also aids retention. Additionally, I have heard good things about Introduction to Algorithms[2] (another creative name)--it was suggested as a reference for the course, although I did not get it (Wikipedia is good enough for me). [2]: http://en.wikipedia.org/wiki/Introduction_to_Algorithms http://en.wikipedia.org/wiki/Introduction_to_Algorithms
- helpmep53 15y agoI took the algorithms class at UCSD a few years ago from Sanjay Dasgupta, one of the authors of that book. At the time the book wasn't finished but we used a draft as the lecture notes. One of the best classes I took. I use that book to this day as a reference for some algorithms.
- jamii 15y agoThe facebook puzzles are pretty good, especially for graph algortihms.