|
> In my opinion (others will disagree), the vast majority of CS concepts are not very useful for most software developers. I don't think you should feel bad about that. I consider my time & money getting a CS degree to be almost entirely wasted. I would agree for a web dev. But if you start getting more into backend, infrastructure, building distributed systems and APIs (which was the path I took), data structures and algorithms definitely start to come into play. I started out self-taught on the web. Got a degree in design. Then learned web dev, then moved to backend, then to infrastructure, then devops, and now platform and cloud engineering. For me, I wanted to understand "the whole widget". And there are things I learned about UX that when applied to DevOps/SRE work, have elevated me as someone to listen to. (As a fan of Avatar: The Last Airbender, I want to point to when Iroh was explaining how the 4 nations achieve balance. Same concept here. UX, engineering, infrastructure, and product need to work collaboratively together with mutual respect for the other disciplines to achieve the balance that leads to something great happening.) I've picked up some data structures and algorithms along the way over the years, but I don't have college definitions of them. This hurt me when interviewing at Google, but I also have the ability to search the web and learn new things. So I do. Just last week, I was working on tokenizing and building an AST for NRQL (New Relic's Query Language). As I was working through the tokenizer, I realized that this is what a linked list is. I'm thinking about taking a single college course this upcoming semester about data structures and algorithms, just to fill in the blanks. But I've been building things for the web since 1997. For the most part, using anything beyond lists, maps, sets, queues, etc., is (relatively) rare, but again, it depends where you want to go next. Sorting large datasets efficiently, parsing things into trees, binary search, and making sure I iterate over things as few times as humanly possible will give you FAR more bang for your buck. |