The most irritating thing with these competitive/algo stuff is that no matter how many times you master it - eventually you always forget it, because you don't need it on a daily (or more like yearly) basis in the real world.
I see in the comments that some people conflate competitive programming and technical interviews. Technical interviews (at least in companies such as facebook and google) are usually much easier than competitive programming problems. The problem you find on leetcode for interview preparation would be considered beginner problems in competitions such as google code jam.
This is a good resource that I'm currently going through to prepare for interviews. Another one would be Competitive Programming (3rd edition) [1] but for general interview skills the Codility lessons are also OK [2].<p>1 - <a href="https://www.amazon.com/Competitive-Programming-3rd-Steven-Halim/dp/B00FG8MNN8" rel="nofollow">https://www.amazon.com/Competitive-Programming-3rd-Steven-Ha...</a><p>2 - <a href="https://drive.google.com/open?id=1WjXxbdle0_Syip_LygBpnZkfHvqST34s" rel="nofollow">https://drive.google.com/open?id=1WjXxbdle0_Syip_LygBpnZkfHv...</a>
I like this book, but I have some reservations for using it for interview practice. There is no discussion on implementation of some of the algorithms, which may be relevant in an interview (e.g. if you're not allowed to use std::sort).<p>There are also a lot of topics where there's a brief overview of the algorithm, but no code - e.g. the geometry section is interesting and has some useful ideas, but no implementation. This gets worse as the algorithms get more complicated, and some quite difficult topics get a cursory glance.<p>For the general categories of problems that you find on e.g. LeetCode or Intervewbit, this book is really useful. It's a good, practical, companion to a proper algorithms textbook.<p>Perhaps most irritating - if using this for prep - is that there are virtually no case studies, and the case studies that are in there assume a lot of code which isn't in the book (either boilerplate or assistance functions). This book would be incredibly valuable if each chapter had a list of example problems (solved or unsolved) to see how things are applied.
Has anybody gotten into this kind of programming post-college? Are there communities outside of high school and college competitions for this sort of thing?
This book gets to the point fast.
But for the fundamentals this book serves more as a refresher than a course.<p>Skiena and Sedgewick both have excellent books and online courses if you need more depth.<p>A nice thing about this book is that the full TeX source is on github.
Is there a printed hard copy version available as a book? I’d love to buy it. I’m a big fan of highlighting and annotating books with a pencil.<p>This is a great summary to a ton of CS algorithms and datastructures. Thanks for compiling this.
I wonder if there is something similar to this but for pragmatic, design-oriented challenges. Writing obfuscated code in the shortest amount of time is akin to the people who change tires during a race car competition. I would love to see challenges where you build the race car parts instead.<p>Boring but immensely more useful.
If you wonder why you need to learn competitive programming when you can just look it up?
I would like to refer you to B.F.Skinner's quote on education:
"Education is what survives when what has been learned has been forgotten."