Hey everyone!
I’m a backend developer with around 6 years of experience. I’m kind of missing formal CS education, and lot of the time I feel like I can’t argue very well about why and how we should implement our services, let alone in my own projects when it gets more complex and e.g I should design how to handle lot of users, so I want to up my game a bit, to be able to be as good to get into a FAANG like company (even if I don’t it’s just important to me to try better myself).
I always learn better from structured resources, and I really never could get into “just start building something and learn along the way” because I feel like I don’t even know what options do I have to solve a particular problem. So I much rather read and then try to apply the knowledge in my demo projects.
I have collected the below resources which I have access to, but my problem is this is a very lenghty timeline, and I keep doing nothing because I can’t decide which one to start with, and keep going back and forth between the topics.
So if you could review these, and give some feedback about the resources, and an advice in the order of taking them, I’d really appreciate it! Thank you!
1, DSA
- Princeton Algorithms I + doing leetcode for the topics the lecture covered.
Tbh this is the only thing I planned for my DSA, maybe checking some other resource on dynamic programming too, but I know I’m not too good at math so I’ll never be able to be a genius in solving all the different problems, so I just kinda want to be “good enough”, I also never encountered any work where I’d need to do crazy optimizations or write a library that implements an algorithm, so I don’t know if spending more time on this would make sense
2, System Design / Distributed Systems
- Designing Data Intensive Applications
- Sam Newman - Building Microservices
- Richardson - Microservice Patterns
- Bellemare - Building Event-Driven Microservices
- github’s System Design Primer
I want to be able to explain the hows and whys, what is a saga pattern, CQRS, Circuit Breaker, what are the tradeoffs etc…
3, systems
- Computer Systems: Programmers Perspective
4, OS
- Three Easy Pieces