10 Facts About Coding Interviews Every Self-Taught Developer Without A CS Degree Should Be Aware Of
Tags: codinginterviews, frontend, junior, codenewbie
Published: 2024-01-12 06:48:45

Coding interviews were my nightmares.

No matter how many LeetCode problems I solved, I would fail them 🥲. I would get the dreadful message: _"We regret to inform you that we won't be proceeding with your application at this time"._

Everything changed when I realized these 10 facts:

## Fact #1: Coding interviews are hard for everyone (with or without a CS degree)
I used to think coding interviews were challenging because I didn't have a CS degree, so I was doomed. This was until I met a ton of devs with CS degrees who also dreaded them. If you don't believe me, check [r/ExperiencedDevs](https://www.reddit.com/r/ExperiencedDevs/) on Reddit. 
So relax and accept the struggle 😉.

## Fact #2: You can't succeed without understanding Data Structures, Algorithms & Complexity Analysis.
This was my main blocker.
If that is your case, pick a book like [Introduction to Algorithms](https://mitpress.mit.edu/9780262046305/introduction-to-algorithms/) or take a [Coursera](https://www.coursera.org/specializations/data-structures-algorithms), [Programiz](https://www.programiz.com/dsa), or [FrontendMasters](https://frontendmasters.com/courses/algorithms/introduction/) course.

## Fact #3: You will forget every LeetCode problem you solved if you didn't understand it in the first place.
This was me before. I would solve a problem (or look at the solution). The next day, I would be incapable of solving it again. Why? Because I didn't take the time to understand it well.

So, revisit problems a week later to ensure understanding.

## Fact #4: There are patterns to the problems (and you need to know them to succeed).
I thought people passing interviews were geniuses. I would look at a solution and wonder how someone would come up with this. The answer? They wouldn't. They probably applied some learned patterns to solve it. So, you don't need to solve a thousand problems, just the right ones.

To learn more about patterns, check [Grokking Coding Interview Patterns](https://www.educative.io/interview) from @educativeinc.

## Fact #5: Always solve the problem on paper or with a whiteboard.
It's rare to have access to an IDE for coding interviews. So be used to coding without an IDE that is there to help you catch syntax issues or complete your code.

## Fact #6: Your interviewer doesn't expect a perfect (or entirely working) solution. 
When I passed online interviews at Google, I didn't get a complete solution. So I thought that was the end of it. To my surprise, the recruiter called me afterward for the next steps. So don't be discouraged if you don't give a complete/perfect answer.

## Fact #7: There is a limited subset of problems that keep being asked again & again.
I was passing Bloomberg interviews when I realized in the middle that all the questions were from [Cracking the Coding Interview](https://www.crackingthecodinginterview.com/) (the interview was a breeze 😅). I had the same experience with Yelp interviews.

So focus on commonly asked problems (for example, check [Blind 75 Leetcode problems](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions)).

## Fact #8: The preparation always takes longer than anticipated.
When I started interview prep, I saw people online prepping for only 2 weeks. Two weeks in, I was not even close to ready. But guess what? That is mostly everyone's experience. I prepped for months before getting my first job, and I have clever friends who did the same.

So, again, chill 😉.

## Fact #9: You will likely fail your first interviews, so start with companies you care less about.
I failed my first interviews and later learned that this is common. So don't interview with your dream company first; otherwise, you will get discouraged too early.

Instead, interview with companies you care less about. If you pass them, it's excellent; otherwise, that was a stepping stone for your dream job.

## Fact #10: You need time to prep for interviews, so apply to just enough jobs.
I see many junior devs talking about sending 500-1,000 resumes. I can understand that this is playing the numbers game.

Still, if you are going to pass coding interviews, you want to apply for fewer companies and take more time to prepare. This way, when the recruiter calls, you will be ready.

That's a wrap 🎉. What are other facts you think devs should know about interviews?

Want more of these? Find me on [X/Twitter](https://twitter.com/_ndeyefatoudiop) or on [Substack](https://frontendjoy.substack.com/).