Hacker News new | ask | show | jobs
by basdevries 4204 days ago
How should one go about 'training' that? Is it experience, or are there books etc? I'd love to dive into that.
2 comments

Tons of online resources. Books are all a bit dense. The ones I'll suggest are bit hard to get into, I'm a huge fan of The Art of Computer Programming Vol 1-3 all a master piece, but very very dense, very very mathy and challenging even if you've taken college level discrete mathematics courses. But a HUGE amount of the field is contained within them, and the information density is staggering. Donald Knuth's writing is just absolutely brilliant and pointed in places.

Simply searching on Amazon, "Your language of choice" + Algorithms/Data Structures I.E.: "Javascript Algorithsm", "Ruby Data Structures", "Java Algorithms", etc.. Will likely pull up a few options, check reviews, find something in your price range and read it.

A lot of it is self study. Just be willing to explore docs, watch videos, a lot of reading, try things out on your own.

If I were to recommend three of the four volumes of TAoCP, I would drop Volume 2: Semi-Numerical Algorithms in favor of Volume 4a: Combinatorial Algorithms, Part 1. Developers, junior or otherwise are simply less likely to find themselves in situations where there is a good reason to implement a psuedo-random number generator or a complete numeric system than to wind up dealing with problems of non-polynomial order or boolean functions.

Of course, I don't know why anyone would recommend three but not all four if that were an option, so I guess I really could just say, there's no reason not to get volume 4a too, for a person heading down that road.

There are tons of books on Data Structures, a lot of them are super interesting too. You can Google data structures and algorithm books, and you will get a crazy amount. I have a good amount because I just finished the class in school. One of the books I like is Introduction to Algorithms, 3rd Edition. There's also a lot of college's that have the course and all of their assignments are online if you wanted to do them. They are super interesting, like binary search trees are cool, hash tables and the hash functions, linked list, graphs and the algorithms that go along with them. Are so interesting and once you know them they can lead to so much stuff, its exciting.