I was looking at a job posting for an SRE at a well known search engine and cloud provider and one of the prerequisites was.<p>2 years of experience with data structures/algorithms and software development in one or more programming languages.<p>I am in devops so I don't do any real heavy coding, I've certainly never worked on my own data structures or algorithms, but to be honest I don't think many of the devs I work with have either. The data structures in my company code base are pretty core code that only a handful of devs have touched and in general very little time is ever spent on them I doubt it adds up to 2 years collectively, and algorithms would be even more niche.
I don't really get the requirement, to me it's the sort of thing you need for research grade computer science, not sre or even really most software engineering.
If they mean experience of using them rather than building / designing then it seems hard to do any kind of meaningful amount of coding without touching them so the whole statement seems kind of redundant.<p>Does anyone know what this is actually meant to mean?
I suppose all SW engineers have experience with data structures, when you are choosing whether to store the data into a dictionary, array or linked list. It is a bit more stretch to ask whether you've implemented a database before or not. On a more advanced level you'd dive into topics such as copy-on-write and software transactional memory (hobby-wise I come from Clojure background).<p>As an example, do you know how git works?<p>Edit: Oh an other great example of data structures is torrent files (and magnet links). Hint: <a href="https://en.wikipedia.org/wiki/Merkle_tree" rel="nofollow">https://en.wikipedia.org/wiki/Merkle_tree</a>
Means they need performant software, not garbage. And they are operating large scale service that manipulate billions of data entry per second or so. I guess.