My experience of cracking coding interviews (2018)
Tags: interview, coding, programming
Published: 2023-02-05 05:40:02

Landing at a dream job in a product-based company requires cracking coding interviews. One may not succeed in one interview, rejections may happen. But, key thing is to learn from the failure and keep moving on. In this post, I am gonna blog about my experience of failed coding interviews.

Are the coding interviews easy? No, they are not easy. You need constant dedication and hard work to master it. In this post, I will explain my journey, lessons learned, and key takeaways.

## Fear and Struggle

When I was in college, making my baby steps in programming, I was solving problems on arrays, strings easily but when it comes to linked lists, trees, and graphs I always got afraid of them. They were nightmares for me. Later, somehow I got a job in MNC without touching them. I joined the company and I was given with role of QA. I didn't like the job, in fact, hated it. Then, I quit it. I started applying for big companies. I went to an amazon interview, where I was asked to write code on paper. The problems are based on linked lists and trees. Then, I started picking problems from geeks4geeks and solving them. The hurdle I faced is when I was stuck somewhere, I have to clarify myself. Then, I started exploring different resources. I will be listing them at the end of the post.

## Success

After all my real struggle, I somehow grabbed a paid internship in a fintech startup. I gave many interviews in small and big companies, rejected many of them, started learning from them. The one best practice I followed is, If I was rejected by a company, I never felt sad, instead I solve the questions asked in the interview. It helped me very much that I never forget them in life. So, all my struggles end up, when I went to the interview of bigbasket. When I was in the last round, I didn't feel nervous, One thing I kept chanting in my mind *"If I fail in this interview, will I give up? No, If I get succeed, will I give up? Whether you fail or succeed, the only thing you know is coding. Except coding, you know nothing."* I cracked the interview, got offered.

## Time for a raise

After one and a half years of my tenure with bigbasket, I felt that I need a raise. Then, I started my journey again. This time, I was improved a lot in both coding and system design. Working at bigbasket, taught me so many things. I started with a company called "coviam".  I have cleared the online coding test, then an on-site interview. Cleared the first two F2F rounds, interviewers are impressed by my knowledge and quickness in coming up with solutions. But rejected in the third round. The more important thing here is to handle rejection. Despite being rejected, I didn't feel bad, I got confidence and I felt I did well. Rejected from hackerrank, soroco, ninjacart, greedy game, tracxn, niki.ai, MoEngage, and springboard.

## Heartbreaks

I attended the interviews of hackerrank, BankBazaar, Groupon, grab, and Flipkart. Even I took leaves for preparation. Felt very bad after being rejected by these, because there are quality engineers in these companies, If I join there, despite the money I can learn more. There was a common loop that used to happen to me. First, Complete all the rounds, HR tells me "we will get back to you after the team debriefs", excite and expect an offer, HR won't respond but stopped myself not to ask them fearing the rejection, but out of anxiety ask them, get rejected email. The same thing repeated every time. It used to give me heartbreaks. So, after many rejections, finally got selected in akamai.



## Takeaways

- Never Ever feel bad for rejection. Instead, learn things from it
- Practice, Practice, and Practice is the only mantra.
- When I got rejected from big companies, one thing I realized is that "fear". After going through their interview experiences, I was afraid that their interviews are tough. So, even when I get a simple question in an interview, I used to think in a complex way. If I lose that fear and attempt the question then I might have cracked it.

## Resources

### Data Structures and Algorithms

- [leetcode.com](https://leetcode.com) - My favorite portal for interview preparations. The best thing about this is you find a lot of intuitive, unique, and easy solutions. Everyone solves a problem in different approaches, there you see all those solutions. Also, it has system design, database design questions too. Have a look at it.

- [geeksforgeeks.org](https://geeksforgeeks.org) - A famous computer science portal having everything you need for interview preparation. But in my opinion, the code, methods are not too intuitive and simple, their code has some bugs too. For example, consider this problem, [http://bit.do/PetrolPump](http://bit.do/PetrolPump), the solution is not too intuitive. If you see this solution : [http://bit.do/LeetcodePetrolPump](http://bit.do/LeetcodePetrolPump). It's very easy. That's why I recommend leetcode over G4G.

- [interviewbit.com](https://www.interviewbit.com/) - This is also an excellent platform for coding interview preparation. The best thing is they have a goal-based structure where you can set your goal duration, hours you can spend per day, based on that you can solve problems. They have a neat flow diagram of topics with dependencies so that you can master topics and track progress. One more best thing is they have system design questions and mock interviews.

- [ideserve.co.in](https://www.ideserve.co.in/) - The special thing about this platform is they have Algorithm Visualization. Also, they have video lectures too, I'm a great fan of their videos. The explanation is very easy and makes more sense. Here's their channel : [idserve](https://www.youtube.com/channel/UCMNkvKnD3mo3Jj9eTwJllWw).

- [codesignal.com](https://codesignal.com/) - Previously called codefights, the special thing about his platform is you can challenge other people, it's like a game, you try to win and the skill in you comes automatically.

- [hackerearth.com](https://www.hackerearth.com/) - Excellent platform for participating in coding challenges put by companies that could secure you a job. They have "codemonk" which has very good tutorials, also "codearena" which is similar to "codefights".

- [hackerrank.com](https://www.hackerrank.com/) - This is also one of the good platforms where they have a bunch of problems on topic-wise. The best thing about this is they have very strong test cases. Also, they have a discussion platform where you find several solutions.

- [pramp.com](https://www.pramp.com/) - Excellent platform for practicing mock interviews. This is very important, your real power comes out during the interview. You choose a slot, they match with another person, and give both a random question. Each will interview another and get interviewed.

### For System Design

**System Design is also a very important topic asked in interviews.** Here are the resources to follow:

- [hiredintech.com](https://www.hiredintech.com/classrooms/system-design) - An excellent guide for system design with video lectures

- [Tech Dummies Youtube Channel](https://www.youtube.com/channel/UCn1XnDWhsLS5URXTi5wtFTA) - Techdummies Youtube Channel is famous for system design questions. You can find system designs of uber/ola/Lyft, BookMyShow/fandango, algorithmic questions.

- [Gaurav Sen Youtube Channel](https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw) - Gaurav Sen is a great competitive programmer, his channel has some awesome coding questions and system design questions.

- Tushar Roy - This guy is amazing, his explanation is mind-boggling. Subscribe and Watch here : [Tushar Roy](https://www.youtube.com/user/tusharroy2525)

### Best Practices to Follow:

- Solve at least one problem a day. Go to interviewbit, choose a problem randomly, and solve.
- Give more and more mock interviews, it gives a lot of confidence.

Final Note: I will be updating this post as and when I find new things, please keep a note in the comments, if you need any help, contact me at [hi@lokesh1729.com](mailto:hi@lokesh1729.com)