Data Structures

There's no way you'll get around data structures as a Software Engineer. However, some people mistake "data structures" for those obscure ones that take an hour to explain and another to find a good use case for. Various lists, hash maps, trees, hash maps, arrays, and hash maps are your daily bread and butter. Did I mention hash maps? You should know these inside out, with complexity trade-offs etc. You'll probably encounter more complex scenarios that require more specialized data structures as well. If you know your basic ones, it's usually relatively easy to understand what's required in the advanced case.

A nice resource on learning more about algorithms and data structures is the Super Study Guide by Afshine Amidi and Shervine Amidi.

You may have noticed by now that I am a big fan of hash maps. Apart from that I love Union-Find data structures. They can be used for detecting circles in graphs, among other things.

Here's a great resource on graphs: D3 Graph Theory