Published
- 4 min read
Gayle McDowell - Cracking the Coding Interview
The book “Cracking the Coding Interview” helps you to survive the famous ‘technical interview’. Major tech companies like Google, Amazon etc. use these types of interviews to figure out if you can program.
The book covers every common topic that may come up in an interview. It even has a short introduction why these topics are important and how to approach questions from that topic.
Even with the book your chances are slim of passing the interview. Most of the questions are university preparation questions for the most broadest subjects in the field of computer science. The questions focus on theoretical stuff and low-level programming skills. - The questions do not prove anything and are silly - but these are questions that an HR person can ask you that have a specific answer also if they are not relevant in your day to day work.
The book prepares you for this:
Interview Process
The HR person will look for four things:
- Analytical Skills
- Coding Skills
- Technical Knowledge
- Culture Fit / Communication
“Prior experience” - is not needed, you put that already on your CV.
The entire process is riddled with tons of mistakes and false negatives - because the process does not figure out if you can actually do the job. However the few people that survive the process - are probably candidates you can position anywhere in your large corporation.
Whiteboards are used to focus on ‘what is really important’ - translation: it is easier and quicker to set up an whiteboard than an actual IDE. Get ready to get maybe judged for making minor typos even though ‘the interviewer does not care’ - subconsciously he is judging you.
Before the Interview
Get the right experience
- Try to take classes with big programming projects
- Internships: Try to get some work experience
- Build something in your spare time (=> Github)
Write a great resume
Keep your resume to 1-2 pages, HR People spend very little time reading it. But it needs to be perfect so they don’t throw it out due to small things.
Write strong bullet points
Use the formula: “Accomplished X by implementing Y which led to Z”
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/zrXZBkYzuZo"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen
></iframe>
Leave out stuff
You apply for a programming job, you probably know how to use Office etc. be conservative which programs you list Same is true for all programming languages, list those that are relevant and are widely used.
Be aware of the stigmas associated with languages. Some languages like Visual Basic even while they are used and even if you know the language on an expert level it seen as that you have less experience than when you list a language like Java/Python etc.
Certifications - Usually a waste of paper and most people do not see it as relevant. (in the field of computer science)
Behavioral Questions
Prepare your past projects ask yourself for each project
- What where the Challenges?
- What went wrong?
- What did you enjoy?
- Who lead the project? Did you lead the project?
- How did you resolve conflicts?
- What would you do differently?
During this phase of the interview try to create a dialog about how your new employer deals with certain issues. You need to interview the company if the company would fit to you or not.
Focus on you not your project, however you still need to show that you can work well with others.
When you are talking about your past projects you should use the SAR principle
- Situation
- Action
- Result
Ensure that during your stories you can show
- Initiative
- Empathy
- Compassion
- Humility
- Teamwork
And of course sprinkle in shows how you succeeded.
Technical Questions
You need to get the book for all the questions, but about 90% of the book are questions on various topics with well written answers.
Conclusion
The book is useful when you are applying for big US-Tech companies. However for German-Tech companies the advice in the book does not apply as they do not use the ‘technical-interview’ in the hiring process. (It produces too many false negatives and developers are rare)
It only helps you if you are attempting to pass the “technical-interview” and you need about 1 year of training prior to your actual interview to pass the interview. Basically the ‘technical-interview’ is a skill only needed to get into a couple of companies.
If that is not your goal your time is much better spent contributing to open source and creating your own projects as you will learn more ‘day-to-day’-skills.
Despite all of that it is a very interesting overview of questions you may encounter in an interview.
Get the book at Amazon