This is the study guide I built myself over the course of interviewing for iOS and Android development roles over the years. Being a software developer, I figured “If I have to do this more than once, why not just write the guide once and never bother having to track this junk down ever again?” So I did. If you are actively interviewing, I recommend you create your own guide like this (using your own metaphors and wordings)…it will save you a lot of time over the years. Make sure to have sections on common trivia + sections on your domain + common whiteboard problems to practice.
A huge amount of disparate information about software development interviews is spread across multiple books and websites and that it’s purest form is a simple bulleted list which compresses all the most important information into 1/100th of the space. This is my attempt at arriving at that. When I was in full “interview mode,” I had 100% of this in my head. Getting to that state takes weeks of preparation.
Studying is the act of compressing disparate information to make it more efficient to consume.
I especially like the code samples for tree traversals which I got from a YouTube video linked at the top. These are the most understandable algorithms and pretty easy to remember. A simple rearrangement of the internal methods switch from per-order to pre-order to post-order.
The most important thing you will ever do is to reword these (and other difficult) concepts in your own language using your own metaphors in your own voice. These are written in mine! No other technique has helped me memorize these concepts quite as effectively.