Ultimate guide to Software Developer Interview Preparation
Interview preparation can be excruciating. There are so many things to prepare. What to prepare and what not to prepare can be a difficult question due to time constraints. Especially when you are already a professional. Turns out many interviews ask questions from a set of relatively small pool. If you have prepared from this your chances to land a dream job at top tech companies increases manifold. I would say with a order of O(a^n). 😄
First of all you have to do practice on pen and paper. I cannot make this clear enough. “Please ditch you IDEs and Compilers and start writing code with pen and paper for interview preparation”. At the interview you would be required to write the code on paper or whiteboard and after writing code on a computer for a while this feels very strange to write with a pen. You will struggle with indentation and fitting code in a single line. Also using pen and paper strategy makes you the compiler forcing you to dry run in your mind. Which provides new insights into the logic which you would have never got with traditional IDEs. It forces you to “think”. IDEs abstract away common mistakes you make while writing code which are making us lazy.
For the preparation you have to actually prepare three things mainly:
- Data Structure and Algorithm
- Language feature of programming language of your choice
- Your Resume
Data structure and problem solving may look vast subject but actually in typical interviews problems are just slight variations of a problem pool. http://www.geeksforgeeks.org/ is a very good resource for interview preparations. Please prepare these 2 curated lists:
and if you have time prepare previously asked questions from the company you are going to give interview to. You will not believe how many times companies recycle there old questions, especially for online coding round.
Second pick a language of your choice and find out the internals. Interviewers love to check in depth knowledge on the language you are working with. Remember you have to prepare just the key core concepts for language of your choice.
“Please read your resume.” So many professionals to make there resume shine just put stuff in it and forget to prepare for it. Please add the stuff you are most comfortable with and prepare on it. Technologies you have written in your resume should be known to you. Its the greatest red flag if a interviewer ask you about it and you are saying that you have very less idea on the skill you have mentioned in your resume.
Prepare a monologue on your projects. Explain your project is always in the interviews. You should have clear idea about:
- what problem your project was trying to solve.
- what your role was in the project.
- List actionable i.e. i did x and it solved or improved upon y.
- Metrics about your project like how much traffic it handled if it was a web service etc.
Be ready for interpersonal questions in last round. Companies like to hire well rounded individuals not just code writers. Be aware about business implication and customer needs. Read about news technologies in site like https://news.ycombinator.com/.
And lastly be your self at the interview. You are not trying to act in a broadway play at the interview. Be comfortable and focus on the solution rather than problem at hand. Ask the interviewers for tips and focus on their directions. Ask questions about the problem.
I hope this will prepare you for your next big interview. Best of luck.