Ask HN: How to practise Algo/DS for interviews that are every 2-3 years?
What strategies do you use to keep up with these interview questions every 2-3 years (assuming you change companies in 2-3 years)? One answer to this question is you keep on practising for eternity to keep your Algo/DS game up, but this means you can never devote your time to learn other fields you might be interested in or to work on your personal projects (assuming you are a full-time working professional and so have limited time to study).
Also if you are not up-to-date with your Algo/DS skills, then there might be a situation that you have been given an opportunity to interview with a great company through Linkedin or something but because you are not practising Algo/DS during that time, you may miss the opportunity.
So, how do you manage this situation where on one hand you want to learn new things but on the other hand don't want your Algo/DS skills to fade away?
6 comments
[ 3.4 ms ] story [ 28.4 ms ] threadIf you don't actively review this material you're going to forget it. I created my own study guide for data structures/algorithms that I frequently review to prevent forgetting any concept. Every few days, or at least once a week, I'll take a blank sheet of paper and try to write down everything I possibly know about every fundamental data structure, including pseudocode and real code for operations such as searching/insertion/deletion. When I go through interviews I read my notes and do this active recall exercise at least once a day every day. Unfortunately there's no shortcut and you have to actively think about and code this material in order to remember it (if your day job doesn't involve knowing those things).
First, I've been with the same company for over nine years. Before that was four years, before that was five, and before that was ten.
Second, I seem to live in a different world that most software engineers. (Maybe it's because I'm in embedded systems.) Very few interview questions have been on algorithms - so few that it isn't worth my time to try to "keep current".
You could also write an algorithm to optimize what you have to refresh and when based on your answers to a set of questions you have prepared.