Hi everyone, I decided to create a roadmap to keep track of my interview preparation progress. I’ve been rejected so many times by companies that I really like. Prepare for code interview alone can be quite depressed sometimes. I want to use this roadmap to keep myself organized and as a motivation for myself.
I’m currently working on dynamic programming and greedy algorithms.
That’s a very elaborate list. I guess this is for algorithms on a whiteboard. When it comes to the actual preparation do you write out the algorithms on paper.? What does your preparation process look like in practice?
Your list is pretty exhaustive - clearly you’re someone with a strong CS degree plus a few years experience - companies that expect this breadth and depth of knowledge only interview people they believe could meet these requirements - I wonder if your resume is setting you up for unrealistic expectations
thank you, hope I could get my dream job this year
Not really, cause I was asked to do algorithm challenges on Hackerrank and Codility all the time. So my approach to this is to first learn the basics on geeksforgeek, and then practice on Hackerrank with time limitation.
I feel like it’s really worth it to spend time on algorithms and data structure, cause no matter what position you’re applying, you will always be asked these questions.
Oh yes, I’m currently an iOS developer who’s learning web dev. And I already have a few years experience, and since most of my interviews failed because I didn’t do well in algorithm questions, I decide to spend more time practicing.
That makes sense - it sounds from your reply to magwit that you are stumbling in phone screens - it’s not uncommon now to get intermediate to even slightly hard algorithms and data structure questions in initial phone screens because hackerrank and other coding interview platforms make this feasible
this has tremendously raised the bar for reaching the stage of onsite interviews - as you can imagine companies are not happy if they fly someone in for an onsite and they bomb
another challenge with live coding is your solution is not only expected to be right but the code must correctly run on various test cases - this implies for languages like C++ the code must compile - any time spent fixing basic syntax errors takes away precious time working out kinks in your solution or refining and improving it - it becomes imperative you master writing syntactically correct code from the beginning to maximize time spent on problem solving and to avoid getting flustered and anxious due to silly mistakes
when you get to an onsite that’s when you face whiteboard coding - that has its own advantages and disadvantages
Iit’s hard to follow through on your question, since I don’t really know how the interviews went, but the following seem reasonable questions to ask at this point.
Based on your initial comments, it seems you understand even quite complex algorithms. So
- How do you know the reason for failure was purely technical - you didn’t know the algorithm?
- If you definitely knew the algorithm, what was the stumbling block?
So, for example, when you are asked an algorithm question, and let’s say it’s an algorithm you completely understand outside of an interview situation, then do you explain the algorithm quickly and thoroughly, or are you having a performance issue - you know your lines but can’t produce them on demand? In other words, do you make mistakes even on material you know?
Do they ask you questions about material you don’t know (which would seem to be pretty esoteric material at this point)? In that case, are you applying for jobs above your skill level - for example, they want a super-mathematician, and you are “only” a very good mathematician?
If the questions become crazily esoteric and detailed, do you ask the interviewer exactly the type of algorithm-knowledge they are looking for?
Can you take us through an instance where, in retrospect, you feel you really screwed up? Maybe the issue is not technical.
How would you compare this roadmap with Cracking the coding Interview?