I Failed My First Mock Tech Interview
No, I’m not kidding.
A couple days ago, I had my first mock tech interview and I failed, as in I “didn’t pass.”
I know there’s no such thing as “pass” or “not pass” in interviews, but it hit home for me.
I did my mock interview in ReactJS. The whole interview lasted for an hour.
For the first 30 min of the interview, my first instruction was to create a simple counter that has three buttons to add and subtract 1 and reset the counter to 0. My second instruction was to create a timer that would add 1 in each second and clear the timer. I know. It was simple, but I never did “setInterval” and “componentWillUnmount” before. Luckily, my interviewer let me Google those terms. However, even though I had help from Google, I was still stuck on how to implement the lifecycle methods. Eventually, my interviewer stepped in and walked me through the steps.
In the second half of the interview, I was given a palindrome question. This is probably one of the most basic and easiest data structure questions. The question is to determine if the string is palindromable or not and return the boolean.
"aabb" (true - "baab")
"aaabb" (true - "baaab")
"asfdkasfd (true - "asfdkfsa")
I am still in process of learning the fundamental of data structure (DSA). At this point, I am trying to find the patterns and understand at the same time.
I did a question on AlgoExpert which is also palindrome-related and there is no need to rearrange the characters or counting the characters to determine whether the words are palindromable or not. The strings are given as it is, if the string itself is a palindrome, then it is. Otherwise, it is not. One of the quickest solutions is to use pointer to figure out. However, for the question I was given, I know the “pointer” method is already a no-go. If you are familiar with DSA, you probably have the solution in your head within minutes, or even seconds.
My interviewer gave me around 10 min to figure the solution out. I tried to write pseudocode. I tried my best to explain and analyze what approach I would do. I even thought of using nested for loop, but knowing the time and space complexity, that approach was the least I wanted to go for. My interviewer was very patient. He gave me a hint that I could find a method so as to count the characters. And… yep, still have no idea.
10 minutes past. He revealed the solution, starting with creating a hash table. Like oh my god, a hash table! I heard of that before, but I never really understood how it worked. At that moment, I felt defeated. I felt defeated, because everything I was worried about became so much clearer.
Struggles in Solving Data Structure Questions
I have only started studying DSA since the beginning of this month (Jan 2021). Practice makes perfect. People talked about how many problems they did in Leetcode, how you should attempt to write down the solutions first before seeking help online, etc. But everything online did not seem to answer my question. How exactly should I start studying DSA when I could not even write the first line of code? Sometimes when I look at a problem, I understand and I could explain conceptually, but how do I translate that to a language that a computer could understand?
From the very beginning I started studying, I have to admit that I spent more time looking for resources than actually learning. I love the coding community. People are very resourceful and helpful, no matter they are novice or experts. But there are too many resources. I was lost in the process of looking for more help. Maybe I am looking for someone to guide me from a possible course name called “Data Structure and Algorithms 101.”
I asked my interviewer that question. He suggested me that I could start watching some videos from college courses about DSA, since this is one of the first things to learn in the curriculum of computer science in college. I like that suggestion. It’s not like I never thought of it, but I guess I needed someone to tell me that.
The Next Few Hours After the Interview — Negative Emotions
I wasn’t nervous at all during the interview. I had already mentally prepared myself that I was not ready for this, and I know this is the first step I had to do. But I could not stop wondering if software engineering/web developing is something I should continue pursue. I started questioning my intentions of going to coding bootcamp, as I made that decision right after graduating with a B.A. sociology.
I had switched my major from Business to Econ and Sociology throughout my college years. I studied Business and World History in high school. Both my parents work in the business field. I did take some time studying math in college, but I quit because I could not imagine myself being a mathematician and I don’t have the biggest math brain to pick on, so as physics and chemistry. I was never the technical type of person. There are so many bright and smart people in tech industry. I feel like a small potato 🥔. I admire a lot of people who graduated from coding bootcamp who were able to get a job within 3 months. I always think they must be so smart and just fit in the tech industry right away.
As I was deep into my negative feelings, I turned to some of my classmates in my cohort and shared my experience. I am really blessed that I have met great people there, because they are all very encouraging and I know we are all going through the same journey.
I am glad that I did that mock interview, because I know what I need to work on and what to expect (not entirely, but somewhat). I was very nervous and scared beforehand, but I also know if I didn’t go for the interview, I would feel more anxious and unsure.
Resources I Am Using Currently
It’s been only a few days since my technical interview. I may not be the best person to tell you what resources I am using, since I have not seen any outcomes yet. I am happy to share regardless, in case you are curious.
I personally like Colt’s teaching style since he was a bootcamp instructor. If you are looking for something quick and want to learn fast, he is one of the great instructors. Even my friend in cohort told me that the course was very useful.
Clement Mihailescu (the founder of AlgoExpert) went to coding bootcamp after he got his Math degree in college. First of all, amazing UI/UX. Secondly, he created this website, because he felt like he did not get that guidance he needed when he was studying DSA. There are crash courses in basic data structures and system designs, as well as 120 DSA questions (they are adding more questions). A lot of people compared this to Leetcode because of the similarity (I think). Each question is explained in a high level. Length of videos varies from 10 min to 40 min. I like how Clement emphasizes and uses the same keywords over and over in the videos (“iteratively ”, “recursively”, “iteratively ”, “recursively”, “iteratively ”, “recursively”…) and gives interview advice and expectations for each problem.
EVERYONE knows this book. It’s like a must-have book. I like the high level explanation. But I feel like if you are more like a visual and hands-on person like me, maybe starting from the first two resources I recommended would be better. I personally find myself having a hard time reading, because there are a lot of words and unfamiliar terms. I have the book with me regardless, because I know it is useful and I would use it later on in my studies.
Course, practice problems and book. I hope I got you covered if you are starting your journey like I am.
I would appreciate if you can comment what resources you are using and how it helps you and let me know what and why you like it.
Anyway, good luck to your interview journey! I am on my journey of job searching and it is not fun. I know. Just so you know, you are not alone.
Here’s a little Peanut comic strip to crack on before you go: