top | item 29064561

Ask HN: Project based data structures and algorithms book?

22 points| tsthename | 4 years ago

Most books I've read on the topic follow a similar structure. Introduce Big O notation, introduces concepts in the abstract and show isolated implementations in code.

At work I find myself wishing I had some more insight/guidance on the following problems:

1. Decision making when requirements aren't clear or may be subject to change. How do I avoid giving myself problems in the future?

2. I don't know all the data structures and algorithms off the top of my head. After reasoning about the requirements how do professional developers do research for the implementation?

3. How do I make trustworthy measurements? What tools do I use?

4. How do I combine multiple structures/algorithms to solve the specific domain problem I'm facing?

In short, I'd appreciate recommendations for resources that focus on using DS/Algo knowledge in real work scenarios.

6 comments

order

brian_spiering|4 years ago

The issues you describe are important but typically out of scope for data structures and algorithms book. They are often considered more architectural issues.

In many real-world scenarios, it is not necessary to pick the best data structures and algorithms. It is often good enough to just avoid poor choices.

Trustworthy measurements are important since constants and implementations matter. That is done through benchmarking and profiling. This is also often not considered part of many data structures and algorithms books.

hedgehog0|4 years ago

"Programming Algorithms in Lisp" [0] seems interesting and provides examples along with DS and/or Algo, but it is written in Common Lisp.

[0]: https://link.springer.com/book/10.1007/978-1-4842-6428-7

medo-bear|4 years ago

i second this book. it motivates step by step implementation of a+ds and ends each chapter with a practical (industry) example. personally i think that it is a (huge) plus its written in common lisp

brian_spiering|4 years ago

One option might be The Algorithm Design Manual by Steven Skiena and the associated website https://www.algorist.com/.

It is more problem-solution based with applied examples.

markus_zhang|4 years ago

I second this. I'm going through a class of DS and frankly it doesn't excite me. It may be that I'm not interested in CS overall but I do believe a real work approach could be much more interesting.

For example how about a DS class dedicated for game programming? Is it possible? Is it too biased?

rg111|4 years ago

I would suggest solving competitive programming problems. Many might not be interested in joining coding competitions (I am not), but solving problems where you directly apply the stuff that you learned in textbooks is exciting.