4 ms·
Short answer: Yes, but it depends. Yes: I believe everyone would benefit from leaving their comfort zone and venture into more DS to expose themselves to some
by postit 8y ago
Short answer: Yes, but it depends.
Yes: I believe everyone would benefit from leaving their comfort zone and venture into more DS to expose themselves to some non-trivial work. Don't get me wrong, there are plenty of challenges on writing a working CRUD system from the bottom up but facing scalability, consistency and fault tolerance issues is a different word, and most software developers don't give a damn about performance. That's usually what happens at startups or small companies(I've been there several times). A small and focused team builds a working product, and suddenly they need to bring more experienced engineers to help then scale it once the cooking recipes from the internet aren't serving them well or because the leadership won't let the team engage these challenges. So my first advice goes here if your company has such problems try to expose yourself to them.
Practice and theory should walk side-by-side, you can read the entire library on distributed systems but still be mediocre when facing real problems because you've never encountered those problems in practice. Use the books and papers to give you a direction to where you should point and do your homework. Consistently paced challenges and exercises gives you volume(consistency) and helps you build experience. Build your glossary of concepts, nail your difficulties and once you understand the basics, go read and implement CRDTs in Rust by yourself :) - I'd also suggest you to try following a book on your own pace first before committing to any formal education. Try to find a mentor within your friends who can give you more advice's and peer review your work.
Now the sad part: Unfortunately when shifting expertise even within the same career, you give up on several years of your experience. You will look less appealing to recruiters and companies because you just turned yourself into a JR. Distributed systems engineer w/o previous experience, and those are pretty hard to find out there. If you can live with that(both checking our ego and financially) and be humble enough to accept your new position - I'd recommend you to embrace it.