Skip to content

Getting started

This guide is a condensed introduction to the domain of algorithms and data structures. It is intended to help you understand the standard expectations that you’ll encounter when interviewing for software engineering positions.

In addition to briefly explaining the relevant topics, I will also attempt to paint a picture of the problems, and how they’re applicable to real-world scenarios. A lot of topics may seem unapproachable at first, but once we can relate to the concepts and begin drawing connections between them, our understanding quickly improves.

Reference Materials

Most of the theoretical content is based on the wonderful book by Cormen, Leiserson, Rivest, and Stein. This is a classic introduction to algorithms and data structures that is widely used at universities to teach the fundamentals of the algorithms and data structures that often come up in interviews.

While hard to digest at times, the computer science related articles on Wikipedia are often excellent resources for gaining a deeper understanding of a topic. I will try to refer to them as needed.

Credits

A lot of this guide is based on the notes I took while taking Magnus Lie Hetland’s course on algorithms and data structures at NTNU. Magnus has an excellent way of teaching the material, and I owe a lot of my knowledge to him.

I would also like to thank my friend Woo Jia Hao who inspired me to write this guide after sharing his guide on Technical Interview with me.