Websites
- Big tech spreadsheet - Big tech companies listed by their domains they have teams in
- diataxis - How to write technical documentation. This breaks it into tutorials, how-to guides, explanations, and reference material.
- techinterviewhandbook - This is a classic page for how to prepare for technical interviews
- systemdesign.one - Handful of useful system design blogs. Maybe hellointerview is better though
- hellointerview - Platform gaining popularity for interviewing at mid+ level
- cp-algos - Covers most of the important competitive programming algorithms. I’m not a big fan of their code snippets, but their explanations are quite good
- usaco - Good set for getting really far into competitive programming
- napkin-math
- latency numbers every programmer should know
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