Why offer mock interviews
Conducting coding interviews might seem like a chore, and it can be once you’re forced to do it at a job. But when you doing it voluntarily with the goal of helping and teaching someone, it can be very fulfilling and a way to get yourself on campus that has a lot of benefits for you too.
In another guide, I explain our logistics and things to consider to make the experience nice for the interviewees. In this blog post, I mainly want to try to convince you to offer something like this at your school.
In Winter 2016, Shine, Alice and I started offering some mock interview sessions at University of Waterloo. Basically, we met up with students on campus and gave them one or more coding problems to solve on a whiteboard. The interviews are setup much like the typical onsite interview at tech companies, except of course that we were trying to teach, not evaluate.
After that, we got more people to help us conduct these interviews. In the following spring, we had 7 interviewers. In the fall, we had 13 interviewers. And this year, in the winter, we had 12 interviewers. All in all, we’ve interviewed over 200 students so far.
Let’s talk about the obvious one first. This is the only reason you really need: you’re giving time to help others. That’s a good thing. It’s a good thing for the people who needed those mock interviews, of course. But it’s also a good thing for you: research suggests that you get more happiness from giving to others than spending on yourself.
Giving a mock interview session is kind of like tutoring, but you get to do more than offer technical knowledge. You’re get to help reduce a lot of stress and uncertainty that comes with job seeking. I found that a lot of the time, what the person needed was confidence that they will be ready (maybe after some more preparation) and the ability to manage their anxiety during an interview. After all, if we were only talking about teaching algorithms, the amount of algorithms you can teach in an hour is quite limited.
When a student is inexperienced with interviews, they second-guess themselves all the time. They ask themselves: Am I talking too much? Not enough? Is it ok to ask for a hint? If I can’t remember the name of the library function, will the interviewer think I’m dumb? Am I allowed to use external libraries? If I don’t make my variable names long enough, will the interviewer think I have bad coding practices?
When a candidate starts doubting themselves during an interview, they get stressed and trip themselves up. A mock interview helps establish a baseline of ‘what is expected in an interview’, which allow them to be relaxed and focus on the problem, when we succeed. I think that’s a pretty satisfying way to help someone.
Being the interviewer will help you do better in your own interviews.
There’s a couple of ways in which this happens:
- By taking on the perspective of the interviewer, you get to see the other side of the table. You get a better sense of what an interviewer might expect, allowing you to fulfill those expectations during your own interviews.
- If an interview goes badly, you’re better able to judge if it’s your fault (you made mistakes), nobody’s fault (the interview was a different style than you were used to) or the interviewer’s fault (sometimes they really don’t know what they’re doing). This saves you from wasting time thinking about how you could have done better when there’s no lesson to be learned or at the very least, focus on the right lessons.
- The act of teaching is a good way to test how well you really know the concepts you think you know. You understand concepts better after teaching them.
Put your name out there
By offering mock interviews, you put yourself out there as being technically competent, involved and a nice person all at once. You can’t achieve that by attending networking sessions!
Having your name out there tends to be beneficial for your career in a variety of unpredictable ways. It can be the difference that makes a person you’ve never met want to talk to you. The more people you know and meet, the more likely you come across nice opportunities.
Meet new people and broaden your horizons
Anyone could end up signing up for your mock interviews, so you’ll get to meet a lot of students that you would be unlikely to run across by accident1. You get to meet students with all sorts of different backgrounds.
There’s often one or two interesting first-year students that did competitive programming and perform frighteningly well for their first interview ever. You also get to meet students who think very differently than you, and have their own strengths and weaknesses. There’s students in non-software programs that are learning programming since there’s more jobs. This includes the more hardware-oriented engineering programs. They tend to have weaker fundamentals and algo knowledge from having had fewer CS classes, but are often still very competent in some subfield (e.g. mobile). There’s people who started programming late after switching programs. Others who struggle in particular areas (e.g. recursion if they never properly learned it) or communicating clearly.
It’s quite eye opening.
In summary, offering mock interviews isn’t work, it’s an experience. You get to learn all sorts of different things. It doesn’t even need to start as a big commitment, you can easily do 2-3 one-hour sessions at the start of the school term and be done with it. So go out and try, and let me know how it goes!
Thanks to Alice Zhou, Bai Li, Michael Young, Shine Wang and Shirley Du for reading over and reviewing these two blog post.
On campus, cliques naturally form, whether willingly or unwillingly. People introduce their friends to their other friends, leading to a natural clustering over time. So unless you actively seek out all sorts of students, it’s natural to spend most of your time in just one neighborhood of the campus social network graph. ↩