Interview Prep suggestions & resources
Tags: beginners, devjournal, interview, codenewbie
Published: 2021-06-11 22:01:09

I have had the opportunity to get in touch with some of the great minds and gather their advises when I was preparing to get in tech companies. And I want to hold the torch while others go through the same phase in their lives.
In this article I want to share my interview preparation experience and some resources for anyone who is or will be going through the same.

Interview is not all about coding, hence the preparation for the same should not be.

You have to take into consideration all the parts involved, like:
	1. Coding practice
	2. Presentation skill
	3. Rejection coping mechanism
	4. Your expectations
	5. Questions you should ask


## 1. Coding Practice
When it comes to coding, my go-to source is [Leetcode](https://leetcode.com/). This is simply one of the most preferred practice sites and it has everything that you need. There are certain topics that are must do to be worthy enough in appearing for interviews. Trees, Graphs and Dynamics Programming. These are the deal breaker in many interview. Mind you, these are the ones that one must know well, after one has gone through basic data structure problems (arrays, linked list, stack & queues).</br>
I have climbed the stairs in this order:
Arrays -> LinkedList -> Stacks -> Queues -> Hash table -> Trees -> simple problems on Backtracking -> Dynamic Programming</br>
In between I also covered some String problems as well.</br>
You can select a topic. Solve 5 problems daily (10/15 if you're planning a rigorous prep duration). And move from easy to medium. It's easy to follow. Trust me. Don't be overwhelmed. You got this.</br></br>
In only 2 to 3 weeks you'll get a hang of it and know how and where to proceed.</br></br>
You should also keep track of **top questions** list. These are found on the right side column.</br>
![Top questions list](https://cdn.hashnode.com/res/hashnode/image/upload/v1623441774977/XAVjKPFzM.png)
</br>
Oh don't forget  [this page](https://leetcode.com/discuss/general-discussion/665604/Important-and-Useful-links-from-all-over-the-LeetCode) This should be you one stop shop for the coding practice guide.
You'll find links to most preferred articles that'll guide you how to approach certain type of problems.
</br>
Like  [this article will build your understanding of Dynamic Programming ](https://leetcode.com/discuss/study-guide/1050391/Must-do-Dynamic-programming-Problems-Category-wise) problems & how to think about them.

## 2. Presentation

![presentation_1.gif](https://cdn.hashnode.com/res/hashnode/image/upload/v1623446934773/vR-w3VNus.gif)
This involves your body language, behavior, asking questions, think out loud, how to proceed if you are unable to think of a clear solution.</br>
Radiate positive energy. Stay hopeful and cherish the time you are having. Being nervous is natural. But I took this advise from Simon Senek.
</br>
> Signs of being nervous and **excited** are exactly the same. Your hands may shiver & sweat. You feel that adrenalin rush. You are alert.
</br>

Tell yourself that you're excited, and soon enough you'll hack your brain into believing it.
</br>
Then comes the behavioral part. You don't need to be extremely formal. You can keep your conversation lite and fun, while being respectful all the time. After all you are talking to someone who might be your future colleague. And he's human too. Don't sweat it. I always keep conversations lite and push in some funny responses. This will help you too. Trust me.</br>
You will literally hijack the conversation and keep it in your control.

 Whenever you are given a problem to solve, don't dive into depths of your mind to find the solution. Stay in the moment. Ask questions regarding the problem.
> What is the size of the input? Is it an integer or can it be a string as well? In which format do we want the output?
</br>

Think of the interviewer as a colleague/friend with whom you are solving this problem. Ask for hints if needed.
</br>
**Think out loud.** Be vocal while you think of how to proceed. This will help them understand how you approach the problem and how your brain is functioning.</br>

> Hmm.. I'm thinking of storing the <value,index> pair in a set. That may help us in fast retrieval/finding whether we have seen this before during the traversal.</br>

**How to proceed when unable to think of a solution?**</br>
There might be times when you have a faint idea but are unable to arrive at exact solution. You can just go ahead and ask for hints. If that doesn't help, communicate that little idea that you're having.
> I'm unable to think of a good or exact solution, but I know that this can be solved using memoization.
</br>

Or you may not have any clue of the situation. Convey that even after thinking you were not able to think of a solution, because what all you know does not seem to apply in this particular problem. Don't beat around the bush for too long if you don't know what's asked. The interviewer will know when you'll try to bluff.

## 3. Coping from rejection

![rejection.gif](https://cdn.hashnode.com/res/hashnode/image/upload/v1623446562211/tgalpYopn.gif)
It's not necessary that every stone you throw, will bounce off the lake. Some are throws are just for trial.
Consider that you tried your best. Note down the points that you were unable to tackle. Work on them the next day. If you face multiple rejections in a day, or back to back rejections in consecutive days, then take a break. Calm yourself down. Be in peace. Meditate. Listen to songs. And most of all, talk to people and your friends. Make fun of the situation if you can. Have a lite laugh.</br>
Remember, it's a small part of you big life, and this too shall pass. Destiny will take it's course and you'll be somewhere that you are supposed to be. This might be the learning phase to get there.</br>
Diamonds are made when coal is exposed to immense heat & pressure.</br></br>
You got this. Let's enjoy this time while it lasts.

## 4. Expectations
While done with the technical part of the interview, remember to reflect on your expectations of the job & the employer's expectations from you. Ask them what kind of skills, performance and attitude they expect from their employees. Ask them how they treat the people who meet those expectations. Explain what you're expecting in turn. This will help you and your employer understand the kind of dynamics you might have and whether or not you'll be suitable for this position. You might feel that you should not go for this... then listen to that gut feeling as well.</br>

## 5. Questions you should ask

![question_2.gif](https://cdn.hashnode.com/res/hashnode/image/upload/v1623447117942/iUYN3cu_A.gif)
Finally you made it through all the parts of the interview. Congratulations 🎊 😄</br>
Remember to ask a few questions:
> What does the average day look like for an employee here?

> How is the workload?

> Do you get time for your family and friends?

> How are troubling situations handled like sudden failure that needs to be addressed right away?

> Suppose in distant future if I feel like changing my domain, say from web development to cyber security. Is there a provision to entertain such domain change? How difficult is it?

> What is the performance expectation from an employee?

> Is it a 6 days work week or 5 days work week?

</br></br>

## BONUS: Resources

Finally I'll mention some links to resources that were helpful for me while preparing for interviews:
- [Leetcode](https://leetcode.com/) : for coding practice.
- [GeeksForGeeks]() : for CS subject concepts, Design Patterns, coding (some must do questions here).
- [Pramp.com]() : for free mock interview practice with friends.
- [Design Patterns](https://www.coursera.org/learn/design-patterns) lectures on Coursera.
- [System Design](https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX) youtube playlist by Gaurav Sen.
- [Puzzles](https://www.geeksforgeeks.org/puzzles/) from GeeksForGeeks as well.
- [Aptitude problems](https://www.indiabix.com/aptitude/questions-and-answers/) from Indiabix.
![inventory.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1623447372588/4kILXZFWZ.jpeg)