fbpx

The One Year Plan For Cracking Coding Interviews

Work harder

ARTICLE SUMMARY

Anjali Viramgama shares this insightful blog on how to crack an interview first time! She mentions ‘but the first step to being a good programmer is working in the real world and getting experience, which can be best gained by internships’ Anjali breaks down her one-year plan and will really benefit those starting out!

It took me one year to go from a noob programmer to someone decent enough to crack coding interviews for getting internships and gaining experience.

I still have a long way to go, but the first step to becoming a skilled programmer is gaining real-world experience, often through internships. To secure an internship, you need to excel in the interview process. For insights and tips on preparing for these interviews, including understanding unique coding terms in Python, check out this blog.

I have broken down my one-year plan, which I diligently followed, and will hopefully help you with your planning if you are in the starting stage.

Prerequisite

Knowing the basics and syntax of one programming language. Most students tend to know Java, C, or Python from their colleges/highschools. You can stick to the one you are comfortable with from these three, but if C is your preferred language, I would recommend you to switch to C++. My first language was C, which made me switch to C++. I learned Java on the side, enjoyed it more, and decided to practice competitive coding in Java, and so every interview I have ever cracked was by using Java.

I had zero experience in python, but after joining Facebook, all of the code I have written as an intern is in Python. So my point is, there is no superior language amongst these three, try not to worry about which one to choose. Just pick one, crack interviews in that one, and you can learn the rest on the go depending on where you get placed.

Here’s the plan:

The month-specific blogs that are released so far have been linked below, and the rest are coming soon.

Month 1: Big O, Arrays and Strings: Read it here

Month 2: Linked Lists: Read it here

Month 3: Stacks and Queues: Read it here

Month 4: Trees and Tries: Read it here

Month 5: Hashmap, Dictionary, HashSet: Read it here

Month 5: Graphs: Read it here

Month 6: Recursion and Dynamic Programming

Month 7: Sorting and Searching

Month 8: Reading(about system design, scalability, PM questions, OS, threads, locks, security basics, garbage collection, etc. basically expanding your knowledge in whatever field required, depending on your target role)

Month 9, 10, 11, 12: A mix of medium and hard questions in your preferred website. Practice by participating in contests, focusing on topics that you are weak at, mock interviews, etc.

One year plan

Here’s how I approach every topic in each month — Let’s say you are in month 4, and focusing on trees. You need to first understand what trees are, different types of trees, and be able to define class Node and Tree. You then need to be able to perform basic operations like adding, finding, and deleting an element, pre-order, in-order, post-order, and level-by-level traversal. Lastly, you practice different tree questions available on Hackerrank, Leetcode, or a website of your choice. You should target the easy questions first, and once you are comfortable, move on to medium and hard.

The last 4 months are for solving a mix of different questions, via contests or otherwise, which is necessary because when you are practicing tree questions, you know you have to use a tree. But if you are given a random question, how will you know a tree would be the best approach? Also, always look for the most optimal solution in forums after solving it yourself.

You have an entire month, and if you manage to dedicate 40 hours a week, you’ll be able to master trees in such a way that if a tree question is thrown at you in an interview, you’ll be able to mostly solve it since you trained your mind to think that way with intense practice. If you are a student, dedicating this much time is definitely doable, even with side projects, homework, etc. Your grades might take a hit (my As became Bs in that one semester(month 9,10, 11, 12) when I was dedicating over 8 hours a day to competitive coding) but it was worth it.

You should also try to build projects or do research on the side while preparing.

Some people learn better by participating in contests in CodeForces, CodeChef, etc. while others prefer practicing questions. Again, there is no benefit of one over the other, do what you personally prefer.

I do not believe in practicing particular topics for a particular company, some websites claim to have a set of questions dedicated to a particular company, eg: cracking the Google interview. I think the goal should be to be a better developer overall, focusing on just a few topics that Google tends to test candidates on may not be the best way to follow.

Interviewers also judge you based on your LinkedIn, Resume, past experiences, courses taken, Github, degrees and certifications, projects, research papers, etc. Practicing competitive coding does not guarantee a job, but it does guarantee you’ll be able to crack technical interview rounds most of the time, and you’ll also be a better developer overall, which might help you when you build projects.

Lastly, don’t stop. It may seem easy at first when you are motivated, but that fuel dies in a month or so. Keep your goal in mind, of course, it’s going to be hard, but the only ones who make it are those who stick to the plan. You can edit the plan if you need to, but once done, stick to it, even on your lazy days, even when you have a college fest or a party to attend, even when you are sleepy. Like I said, the ones who succeed are the ones who *stick to the plan*.

This sums up my schedule at a high level. I plan on digging deep, and my next blog will only focus on month 1(Big O, Arrays and strings), the one after that will be month 2, and so on. I hope this was helpful, let me know if you want me to also write about any other topic on the side, or if you have any queries. I’d appreciate it if you could ask your questions on Instagram since I prefer to keep LinkedIn for professional opportunities, but either is fine.

Thanks! Signing off!

Anjali Viramgama


RELATED ARTICLES

Preparing for a job interview can feel daunting, but with the right approach, you can turn your anxiety into confidence. Whether you’re a seasoned professional...
Discover Lisa Iudiciani, Lead Software Engineer at Vista's journey of career reinvention, balancing technical growth with leadership development, and her insights on mentorship for aspiring...
Samantha Yueh, Sessional Faculty at University Canada West, shares practical advice for mothers transitioning back to work after maternity leave. Her tips highlight the importance...
Amanda Whicher, Technology Director at Hays UK&I, highlights the importance of job interviews as a two-way street, where both employers and candidates assess each other....