4 ms·
From scanning through the course outline, the big omission is learning about distributed systems, and industry leading implementations of common tools. At big
by nelsondev 6y ago
From scanning through the course outline, the big omission is learning about distributed systems, and industry leading implementations of common tools.
At big tech companies, you typically have to work at a much larger scale. A solution that works, won’t necessarily work at 10x, 100x, 1000x the scale. You often need to use technologies architected differently than a monolithic Web App.
I would recommend learning more about the commonly used “tools” that a distributed systems engineer would use, more specifically:
- Load balancer - Nginx
- Key/Value storage - Redis
- Pub/sub - Kafka
- Queueing - SQS
- Map/reduce - Hadoop, EMR
- Databases - SQL
- ccajas 6y agoThere's a different "knowledge" problem that must be tackled here. Someone can form a cognitive bias from only being exposed to a few ways to solve a problem. Maybe it's because they haven’t seen it to larger scale, or that they only worked with monoliths, and thus are limited to only that problem scope. Throwing more MySQL databases at a problem won’t fix all problems, but for a lot of people, this is all they know. How do discover those unknown unknowns, to learn the applications of tools you haven't yet been made aware of?
- nelsondev 6y agoAs a software engineer, you have a professional responsibility to stay abreast of current technology. That doesn’t mean hopping on every latest JS fad, but it does mean continually looking for more information, and learning how others in the field are solving problems. Physicians have to keep up their board certifications/licenses by undergoing yearly(?) retraining, in order to continue practicing medicine. It’s not that hard to find what other software engineers are doing, to start, Read hacker news! Talk to more experienced engineers, read blogs, as an intellectual exercise, surf through AWS services and think about how you could use each.
- stevofolife 6y agoNo it's not. A formal computer science education at least mention and cover the problems these tools are solving. And for those who want to solve these challenges, they take graduate courses.
- 908B64B197 6y agoThese I expect a real software engineer to be able to learn pretty quickly.
- avinassh 6y agoWhy not Kafka for Queueing?