Making Your Next Coding Interview Less Intimidating
July 05, 2020
Before you start reading the rest, this post will not give any tips or tricks to ace your coding interview. Instead, what I’m going to write here is a little of what I’ve experienced in tackling down my own anxiousness and worry in going through the preparation for technical rounds in hiring processes.
I still remember my feeling when I got the invitation for my first onsite coding interview. I was in my second year in university and one of the most difficult subjects I had to go through that year is Data Structures and Algorithm. Sure, I could answer the questions asked in the written tests and passed the course with a decent grade. However, when it came to the actual coding, coming up with solutions, and picking the suitable data structures for the problems, I had very low confidence in myself. I was still in the mindset that people who are good at solving these coding problems are only those who are active in competitive programming or those who are not, but are interested. When taking the course, I had little interest in the field and was only learning what I had to learn to pass the course.
That mindset kind of shifted when the interview invitation came. The stuff I learned in the DSA course was then not solely needed for the sake of passing the course. I needed them to be able to pass this interview, and the next ones I’ll probably have. The situation was very intimidating and I was very scared.
These are the thoughts that came running through: “What if I embarrass myself during the interview? What if I couldn’t solve a single problem? What if I couldn’t answer a single question?” At that time, I was greatly helped and mentored by my (then) senior (now boyfriend :p). With the tips he gave, I practiced what I thought was a decent amount of practice (it was not, I found my old Leetcode account that I used for the practice I did in February 2018 and found out that I only solved 10 questions, all easy) and went through the interview. I somehow passed the interview and got the internship in which I learned a lot. Until now though, I still think that they let me pass because of my background knowledge and projects, not because I actually did well in the interview. I still think I bombed it and that I looked stupid during the two hours. The difference is, now after two years, I’ve learned not to let the “embarrassing” and “stupidity” I did during interviews haunt me for long.
You might think that after my first one it gets better right? Well… sort of. Even now, after two years and after going through multiple technical interviews (some successfully and some not), I still get very nervous for each one. Especially now that I have some internship experiences in my resume, stupid and pointless thoughts like “What if the interviewer gives me all these hard questions because they think that I can solve them easily? I can’t! I’m still not very good at solving even the easier questions” still haunts me from time to time.
Fortunately, from this repetitive fear and the feeling of being intimidated I went through, I learned several things:
1. Admitting prior personal/situational disadvantages
These are things that we should admit prior to preparing for the interview:
- We’re probably not so good at solving coding problems
- We probably need a lot of time initially to be able to solve a single easy question
- We probably didn’t pay attention during the DSA course when it was taught in class and we’re probably regretting it now
- We probably do not have enough time to practice and improve
- We probably hate math and is very bad at coding problems that involve math
- etc.
By admitting these things, I was able to condition and tell myself that “hey, if I fail this interview, it is not anyone’s fault. It is not because I’m not good enough or because I’m not fit for the role. Maybe, if I practice more, I can do better the next time.” By admitting these circumstances, we can reflect on what needs to change and what needs to improve even before the interview was done. We will be able to reflect and give ourselves the assessment that we need to be able to know what to do to prepare better.
2. Knowing what is and what is not in our control
These are very obvious things that most people don’t realize. Not all the things in our lives are within our control. This includes our upcoming or past coding interviews.
These are the things that are not in our control:
- The outcome of the interview (surprising, right?)
- Who our interviewer is (is he/she friendly? Is he/she a coding wizard that will ask us tricky, impossible problems?)
- The mood of our interviewer when they interview us
- How the interviewer thinks about us
- The questions asked in the interview (will it be easy? medium? hard? impossible?)
- How good other people who are interviewing for the same position are
On the other hand, these are the things that are in our control:
- How many hours we dedicate to practice
- How many questions we solve during the practice
- How many people we reach out for help and the way we reach out to them (for mock interviews, tips and tricks, references)
- How we face our hate/weakness with math coding problems
By acknowledging the fact that we are not in control of every element in our technical interviews, we can focus our attention and energy to the things that are within our control. Worrying who our interviewers will be, how smart they’ll be, and how hard of a question they will throw at us will get us nowhere. The same goes for worrying over other people who “might be smarter and might be more suitable for the position anyway”. It’s truly pointless. I understand that not worrying over the things we can’t control is easier said than done. However, knowing and acknowledging them is a start.
3. Getting help is a good first step, but doing most yourself is the way to go
Here’s one important thing that I’ve learned about confidence: you can finally believe in yourself and be more confident when you’ve seen the result of your own effort. Getting help from other people is essential for coding interviews, especially if it is your first time doing it. However, after a while, you might want to try seeing how far you can go on your own.
When you’ve seen the result of your own work and effort, whether it is a success or failure, you can finally see clearly what went right and what went wrong. You can see the result of your decisions, reflect, and improve upon them. If it is a failure, you can see what it is that you need to fix and improve next. If it is a success, you can see for yourself what the hours of practice you spent have become.
I believe that there is no single person who is born confident or insecure and stays that way for the rest of their lives. We choose whether we want to be courageous and take the risk, be it a small step or a big leap, a decision for ourselves.
Last but not least, not enough content for number four but I want to address that maybe some of you who read this don’t even have an upcoming interview but is already intimidated by them and therefore afraid to even apply. Here’s a quote from one of my favorite authors, Iain S. Thomas (no, we’re not related):
Not everyone wins a lottery, but everyone who does bought a ticket. To live the life you want, you have to be brave and buy the ticket every single day.
I hope that the things I’ve learned and reflected through can also be useful for people other than myself. I’ve realized that I can’t just keep saying “stop worrying, just keep practicing!” to all the people that express their worries for their next interviews. Now that I have this blog post/reflection up my sleeve, I hope it helps!
I create this little space on the internet to write my thoughts and reflections on being a human, a woman, and a software developer. I don't have Instagram/Twitter but I can be found on LinkedIn. Feel free to contact/give feedback/tell me your story through my email: ivanaairenee@gmail.com