Websites
- https://diataxis.fr/ - How to write technical documentation. This breaks it into tutorials, how-to guides, explanations, and reference material.
- https://www.techinterviewhandbook.org/ - This is a classic page for how to prepare for technical interviews
- https://systemdesign.one/categories/ - Handful of useful system design blogs. Maybe hellointerview is better though
- https://www.hellointerview.com/ - Platform gaining popularity for interviewing at mid+ level
- https://cp-algorithms.com/index.html - Covers most of the important competitive programming algorithms. I’m not a big fan of their code snippets, but their explanations are quite good
- https://usaco.guide/dashboard/ - Good set for getting really far into competitive programming
- https://github.com/sirupsen/napkin-math
- https://colin-scott.github.io/personal_website/research/interactive_latency.html
Books
I’m not going to share links for these, but you can find them quite quickly. I haven’t fully read ALL of these, but they’re useful as references to me. I would not be able to answer quizzes on them.
- DDIA: Designing Data-Intensive Applications - Covers some system design fundamentals, as well as internal issues around consistency, reliability, consensus and more.
- Java Performance: The Definitive Guide - Teaches you how to optimise programs that have a garbage collector
- Effective Java - Teaches you some boring principles
- Pragmatic Programmer - I read this maybe 6 years ago. It’s alright if you’ve only done assignments
- CLRS - Fundamental book, really
I’ve read a lot more than this, but these are the ones I actually remember.
zyros