Originally posted here
I studied computer science at Stanford. You probably would’ve expected me to be swimming in job offers. In my sophomore year and first-half of junior year, I got a lot of interviews, and I failed every single one of them. And not in a, “this person is qualified, but other people are better qualified” type of way. It was more like a, “Why did we ever bother interviewing this person?”
For example, I would stumble on simple questions like generating all permutations of a set by writing a recursive program that wouldn’t even terminate (even though it was something you would learn how to code by the second intro to CS class).
About halfway through the interviews, the interviewer would seemingly give up in frustration. A few days later, I would receive the dreaded, “Thank you for your interest” email.
“Maybe this just wasn’t meant for me,” I would tell myself. I was a straight A student, but that would only get me to the interview stage, where I would inevitably fail in a spectacular fashion. All of my friends seemed to be killing it, getting internships at the standard Google/Facebook/hot silicon valley startup. Maybe people were “handing out” jobs, but they certainly weren’t handing it out to me.
By the time I reached the end of my junior year, there wasn’t any more time for me to complain about how the technical interview was unfair or how I was behind because I never did competitive programming. I started working through CTCI (Cracking the Coding Interview) and EPI (Elements of Programming Interviews). In the beginning, I would always read a question, then inevitably flip to the answer because I didn’t know how to solve it. Eventually, I could do the easy problems, then the medium problems, and so on.
Finally, this came in the mail.
Over time, I’ve learned that interviewing is a skill. If you treat interviewing like a skill, and not an inherent capability, then you have the agency to improve enough to get your dream tech job. It’s easy to lament the state of software engineering interviews, but it’s harder to accept it and create a plan for success. But would you rather complain and feel good about yourself or have a job?
Takeaways
- Interviewing is a skill that you can learn
- Set up a system for studying for interviews (Listed below)
My study system
- Every day, do at least one problem from a book/website listed below. As you get closer to the interview date (e.g. 2 weeks away), I would recommend doing 3-5 interview questions a day.
- Get a whiteboard (or a pen and paper). Make sure to talk out loud or write down what you’re saying (it’s not enough to work through a problem in your head)
Tips for working through a practice problem
- Time yourself to test if you can really solve a problem in an interview setting (I usually give myself 30 minutes)
- As you work through a problem, think of questions you would ask to clarify the problem statement/constraints
- Sketch a general approach for solving the problem before writing code.
- Once you write the code, think of test cases and run those cases through your program
- Finally, compare your program against the reference solution and see what’s different
Books used
- Cracking the Coding Interview
- Elements of Programming Interviews
Websites used
- InterviewBit
If this post has helped you in any way, please subscribe to reginaldlong.com
Congrats and thanks for sharing!
Yaaas. All of this.
Technical interviews are a very cold-damp-intimidating space. There's so many bad practices that can come out of left field, (thank god riddle problems are dying).
But treating it as a skill is 100% great advice. I'm glad you didn't give up and kept at it.
Congrats!
@reggylong can you name the authors of this books, i found a few books entitled 'Cracking the Coding Interview'. Thanks.
The author is Gayle Laakmann McDowell.
Well done sir :)
I'm still amazed that the technical interview thing is such a hurdle in some places and I wonder to which extent it's a cultural thing.
I struggle in these type of situations... thanks for the valuable advice, gives me some hope!
I should have read something like this months ago. Congratulations for you new work!!!.
That's right, there's nothing wrong with you. It's just another problem to solve. Great job and congratulations! Welcome to Amazon! 😊
Great work and well done. Thanks for sharing.