Preparing for a coding/technical interview
This blog post is about how do I prepare for technical interviews and some resources I find very useful.
Preparing for a technical interview is not really an easy or quick process. In some cases, doesn’t matter for how long have you been coding. You arrive to a technical interview and someone asks you to implement on a whiteboard a variation of a BFS algorithm. You know what a BFS is, and you know when and how to use it. In your day-to-day work you would most surely use an implementation from a library of your choice. But writing it is a very different thing.
Even if I don’t (totally) agree with these kind of interviews, its something that we as software engineers have to deal with.
There are lots and really good posts out there on how to prepare for these interviews. Here are some of the resources and strategies I follow, and that I want to share with you.
- Cracking the Coding Interview, by Gayle Laakmann McDowell: This book has just all you need. It is well structured, has all the fundamentals you need to know explained in a clear way, and finally many exercises to practice with their solutions. As a plus, it is not as expensive as usually these kind of books are
- Trello: I created this Trello board and recently made it public so that anyone can make use of them. It is basically a summary of what you need to know. I also add two list “In process” and “Discarded”. These lists help me keep track of the processes I’m currently in.
- Leetcode, HackerRank and CareerCup are very good sites in where to practice your coding skills in this kind of problems.
- A whiteboard and a friend (or several) with patience: Its super important to practice these interview as if you were doing an actual one. This means grabbing a techie friend and ask her to interview you. Do that for real! No books, notes or laptop, and a whiteboard. May feel a bit awkward at the beginning, but its worth it.
As a general strategy, I do try to start preparing several weeks before the interview. That usually means preparing before applying anywhere. The ideal would be months in advance, but I have never managed to do that. This is how I do it:
- First I brush up on all fundamentals (usually means re-reading Cracking The Coding Interview)
- I start doing some problems in Leetcode or HackerRank
- When I get a date for an interview, is when I start doing the mock interviews
This is a very rough overview of what I do. That is because this is just how I do it and by no means is the best way. It is just the one that works for me. Also, I always do some research on the company I am applying for. This helps me understand their stack, the technologies they use, and has proven to me to be a big help in first interviews.
I hope the list of resources above is useful for you, and hope the strategy I follow can guide the lost ones as well .
Feel free to leave any comments as always!
In automation, we trust.