Awesome Systems
What resources are there to learn about systems programming?
It turns out that you can really learn most by just programming, but here are some resources I found useful:
Hash tables
Youtube talks by Google guys:
- https://www.youtube.com/watch?v=ncHmEUmJZf4
Blog post by facebook guys:
- https://engineering.fb.com/2019/04/25/developer-tools/f14/
There are also a bunch of podcasts.
Compression
Compression is a great topic when it comes to performance programming. Because
if you can come up with a more efficient compression algorithm, you can use it
everywhere. In the storage industry, this is particularly important. If you
have better compression, you can sell less capacity for the same price.
Article on compression
Games
Game programming is a common domain for performance. Because gamers
always want the best graphics.
Gaffer on Games
Interview Preparation
- Guide on interviewing.io
They’re a website offering mock interviews, but they have a really cool write up to help you prepare for free. (I’d pay for that write-up if it was a book to be honest)
Memory Allocators
- Some slides by Andrei Alexandrescu, there is a corresponding cppcon talk about it on Youtube
Other books that are super cool
- Game Programming Patterns
- “Game Engine Architecture” by Jason Gregory
- “The Garbage Collection Handbook” by Jones, Hosking, Moss
- “Software Engineering at Google” by Titus Winters et al.
- “Designing Data-Intensive Systems” by Martin Kleppmann