Retaining Knowledge

I recently attended a job interview where I was blindsighted with a bunch of knowledge-based questions on processes, threads, memory management, etc... The sad part was that I didn't perform as well as I wanted to by a long shot. However, the reason was that I simply forgot the specifics because I hadn't used the knowledge in a while at my current position.

I do a lot of OS stuff related to malware analysis and the scope of the jobis so huge that, for example, I may spend a few months on hardcore OS stuff, then a few months on higher-level scripting stuff, then a few months on research involving cryptography, etc...

Needless to say, the interviewers asked me a bunch of questions on OS stuff that I technically "knew" but I hadn't used it in a while so I forgot the function names and some of the details.

This brought up a difficulty that I would like advice on: How do you hammer knowledge into your head so that you do not forget it when it involves such a wide scope of topics? One of the reasons why I discovered this was an issue is that sadly after the interview, I reviewed some material for about 30 mins and it all came back to me and I found myself piecing it all together and thinking "omg I could have aced that interview" however, since I didn't know exactly what they would ask, I had no way of knowing exactly what to review. To address this, I've made myself flashcards to periodically go thru, and I've decided to create "refresher intervals" where I alot some time to just study.

Has anyone else experienced this, and if so, what is a good way to handle this situation? Thank you.

Edited by Todd on
If you're going the flash card route, then I thoroughly recommend an SRS (Spaced Repetition System). It has helped me immensely in the retention of my Japanese knowledge. I haven't entered many cards for learning programming yet, simply because I haven't found the need. I would imagine for more OS specific concepts or function names it would be very useful to retain some of that knowledge. I have also found it useful for drilling mathematical equations and techniques, with I am very prone to forgetting.

A word of warning would be that you only want to use an SRS to quiz yourself on knowledge that don't yet know, or are failing to retain. Adding everything you come across is very tempting, but the stress of having to maintain a daily rep count soon takes its toll.

I use Anki (https://apps.ankiweb.net/), which is starting to show its age now (and the mobile version is expensive and slow). However it does has some nice features. If I had the time I would build my own because it's a very simple concept that no one seems to get right.
Yeah I've had similar problems in the past. I remember interviewing for an internship way back when I was at uni, and got blindsided by a pen-and-paper jQuery knowledge quiz. Naturally I knew the role had said it required experience of JS and jQuery, but I didn't realise that meant I had to have it all memorised!

Needless to say, I think this kind of thing is pretty poor interview practice. As you say, all it really proves is whether the knowledge is in the working set of information in the candidate's brain, which is mostly just an indication of how recently they've been using that knowledge, more than anything to do with their real experience with the tech/language.

That said, rather than trying to use memory techniques to be able to recall everything I've ever learnt, since that experience, I've just tended to spend an evening or something before the interview writing some code in the language or using the tech I expect to be tested on, just to bring it back to the front of my mind. I'm not sure if that would work in your field though, given that it sounds like you might be tested on such a wide range of things, and perhaps you don't know which will come up in advance..