Like I mentioned in my post on Meetup and Codewars, I think the best way to prepare for a technical/whiteboard/programming interview is to practice. Sites like Codewars make this kind of practice easier than ever, but the pressure of having potential employers watching over your shoulder adds a whole other dimension.
Because of that, I wanted to experiment with “live coding” through practice problems, talking through my decisions as I went along. This ended up being more difficult than I had anticipated, even without the live audience.
Now that I’m wrapping up my little experiment, I wanted to share a few things that I learned along the way…
#1 Talking and Coding is hard
As mentioned above, it’s difficult to code and talk at the same time. At times I found myself going quiet as I was working something out, other times I found myself talking down a tangent instead of focusing on the problem. Neither of these are bad, thinking is good and so is demonstrating peripheral knowledge, but you need to stay focused on your ultimate goal.
#2 Make sure you can solve the problem manually BEFORE you start
It sounds like common sense, how can you automate something that you can’d do manually? However, it’s an easy trap to fall into once the pressure is on. I found a great set of tips from John Sonmez that really hammered this point home, and I hope that I’ve internalized these lessons.
#3 Know thy commands
The types of problems that you will be asked to solve in an interview are often very different from the types of daily work that programmers do. One consequence is that these problems often rely heavily on methods and techniques that don’t come up as often in “real” applications. I mainly used javascript to solve problems, and I’d guess that MOST of my solutions utilized at least one of these methods: split, join, slice, map and reduce. These methods aren’t rare in day to day use, but they’re not nearly as common as the UI and event-driven work I’m used to doing in javascript. Try doing a couple problems without google to learn where your weak spots are!
#4 Tests help!
Not sure how practical it is to write tests in an interview, especially if you are white-boarding, but it’s a HUGE help to be able to check your work quickly. Consider writing tests if you are able, and if you are an interviewer – consider having some tests available to streamline the interview process.
In Conclusion
I enjoyed this experience, and I plan on doing more coding videos in the future. I might still do a Codewars video from time to time to keep the ol’ saw sharp. You can watch all of the videos I recorded on youtube, so you can suffer along with me! 🙂