Ask HN: Any good books on system design interviews?
I'm looking for books specifically, as I'm already familiar with plenty of good online resources.
I'm also looking for books specifically centered on interviews for companies such as Google or Amazon.
There are a few good books on the coding interviews, perhaps most notably Cracking the coding interview. But I have yet to come across a book that deals with system design and is also lauded.
10 comments
[ 2.7 ms ] story [ 26.9 ms ] threadThere are books which are tangentially useful, eg Designing Data Intensive Applications or Site Reliability Engineering. Even if you're not going for SRE, it's good to understand the problems that are involved with high availability.
Having a good overview of something like Code Complete is useful, if only because it has generic advice for designing large programs.
For case studies I don't think books are any good. Watch conference talks and read the company dev blogs.
https://www.amazon.com/Designing-Data-Intensive-Applications...
[0] http://aosabook.org/en/index.html
As for my second suggestion, I'll tell you one of the ways in which I go about researching certain kinds of programming topics. I pay for a Safari Books Online subscription [0], which lets me browse a massive amount of technical books without restrictions. Once I figure out the appropriate keywords, I'll perform a search and open all the relevant books in separate tabs. Then I filter the list down by looking through the index, or reading through a couple pages, to see if it actually covers what I'm looking for. By the time I've prepared this reduced list I usually have an idea of which books seem most interesting, and those are usually the ones I start with. Then it's just a matter of working my way through the list until satisfied. It has been my experience that most technical books are not worth reading cover-to-cover, so I just read through the few relevant chapters and move on. As with all things, there's definitely exceptions; I'd actually consider Designing Data-Intensive Applications one such example.
If you get a card from your local library you might also be able to get access to Safari Books Online for free, as well as tons of other resources. Although with my library card I only get access to a limited subset of their books, instead of the whole collection like with the paid subscription.
Another option, if you can't afford to spend that much money, is to just pirate a bunch of books or look em up on Google Books [1] in order to identify the ones which interest you the most, and then buy the ones that look useful, or try borrowing em from your local library (most likely through interlibrary loans). The market for technical books isn't very big and great authors are rare, so I think it's incredibly important that they be adequately compensated for their hard work, though. If you really can't afford to buy the books initially, be sure to at least keep track of the list so you can make the purchase after you've gotten your new job.
[0] https://www.safaribooksonline.com/
[1] https://books.google.com/
I haven't read 'Designing Data-Intensive Applications' yet, so not sure how much overlap there is or which one is better. But, according to Amazon.com, they're 'frequently bought together'.
https://www.educative.io/collection/5668639101419520/5649050...
Even after interviewing, I found it useful when thinking about designing for large scale growth.