Hack the coding interview

Yeshwanth Chintaginjala
5 min readJul 13, 2020
Image source from google

1.Preparation

This is the question most people ponder about. How should I start first?

There are a plethora of resources online that you can use to kickstart your preparation

Interview preparation is smart work more than the hard work. if you don’t have a proper direction you may end up going through a lot more than necessary.

Before you start solving coding interview questions prerequisites would be to have a good grasp of at least one oops language and libraries in it. If it is java, have good knowledge on collections, if it is C++ know completely about STL libraries if it is python know about all the ds libraries in it like list, tuple, dictionary etc. they come handy in online coding rounds along with the all the standard data structures and algorithms.

Start learning the Big-Oh notations and know how to analyze iterative and recursive algorithms separately. You can visit the link Algorithms Lecture 1 — Introduction to asymptotic notations to understand this. Watch all the videos in the playlist about how to analyze algorithms

Some of the most frequently asked data structures are Arrays, LinkedLists, Trees, Graphs, Tries, Stacks, Queues, Strings, HashTable.

Algorithms like BFS, DFS, all major sorting algorithms, Topological sort, shortest path algorithms like Dijkstra, bellman ford etc, Graph theory and Algorithm design techniques like greedy, backtracking, dynamic programming, divide and conquer, branch and bound.

After you are clear with your basics now start with problem-solving.

Picking a problem-solving platform is a crucial part which will help you with being relevant to interview preparation than being lost in the Competitive programming space.

I started with Must Do Coding Questions for Companies like Amazon, Microsoft, Adobe and tried solving all the questions topic wise.

try solving them first on your own before looking at the solution, if not see the solution and make notes of all the problems you have learnt so far. when making notes just write the approach to the problem rather than the solution. so you don’t have to mug the solution.

Even while solving these questions prioritise the topics according to the order like arrays, linked lists, trees(Very Very important there would be no DSA round without this), String algorithms like KMP, Rabin Karp etc, Stack, queue, BST, Tries, Hashing, Heaps, Dynamic Programming, greedy and then the remaining sections.

Once you are clear with these, now it is time for you to practise the problems on Leetcode. visit leetcode.com and start solving the questions from beginner, medium and hard sections. or even there you would get options to solve questions topic wise.

if your choice is Hackerrank it has a section interview preparation even it has a good collection of interview questions you can prepare from there too.

Apart from solving these questions you need to be able to identify the patterns of these problems. there are additional techniques like Sliding Window pattern, Two pointer technique, Floyd cycle technique, BFS and DFS pattern, merge patterns etc. these you can learn from a course called grokking the coding interview patterns and dynamic programming patterns on Eucative.io

2.Preparing your resume

Resume preparation is a skill, be honest with what you mention in it. Usually, a single-page resume is preferred. you can check out https://www.careercup.com/resume about how to prepare good resume

include all your achievements, academic projects and your professional experience get it reviewed by someone who can give good feedback.

3.Applying for a job and getting an interview call

This is more difficult than cracking the interview. Most of the times these companies get a plethora of job applications it is quite natural that your resume gets lost in that. applying on careers alone may not work all the time, use Linkedin liberally, reach out to people and request them to refer you. a few people won’t reply too. Don’t let them deter you, just have a positive attitude. Try to add people from your dream companies and also look for people with tag technical recruiters and add them into your network, just write a small note when sending them the connection request. Saying about your interest, your career interests. Ask them to refer you to the open positions. Don’t leave a stone unturned apply everywhere careers, Linkedin, Naukri, indeed and every other employment search websites. Good college tag might easily get you an interview call but if you don’t that’s not the end of the world. If you don’t get the call for your dream company as a college graduate you can gain some years of experience and reapply them with the right skill set.

4. Interview

First, know the pattern of the interview by enquiring with the interviewer.

generally, it would be Problem solving, Data structures and algorithms, Project Manager and Bar Raiser.

Don’t panic in the interview . Be cool and listen to the problem statement the interviewer asks. Try to analyze it at first and communicate your thought process to the interviewer while you are thinking about it. Ask as many questions as you could to understand the question clearly.

Once you understand the question try giving the brute force solution to the interviewer and then try to optimize it with better complexity.

Along with correctness of your solutions, they look for corner cases if it is an array or string look for null check, emptiness, out of bounds conditions and handle it accordingly.

They also consider how well you can communicate your solution to the interviewer, try to practise your articulation skills before the interview.

You can practise mock interviews from https://www.pramp.com/#/.

if it is problem-solving round you would be expected the correctness of solution than the complexity and coding standards

In the Data Structures and Algorithms round you are assessed based on your knowledge in data structures, coding standards(how you name your variables, methods etc) and the complexity of your code.

regardless of the round, apply coding standards and optimize your solution.

One important tip I can give is to always try to see if your solution is linear or logarithmic. Sometimes at the cost of space. Most ideal solutions have linear time complexity and constant space complexity.

In the project manager round, you are analyzed based on your past projects, communication and attitude to different situations. expect questions like what is the difficult problem you faced in the past project, how do you handle stress, how do you handle conflict. think before aligning your answers to them have one success and failure story handy before the interview.

Last rounds could be a bar raiser in a few companies where you would be again assessed on coding, project and cultural fit to the organization by a person from a different team that you are interviewed for. don’t take any round easily, put your 100% effort in it. Think this way you may fail for not knowing certain things but don’t let it be lack of sincerity in your preparation.

5. Conclusion

Regardless of how good your preparation is there is quite a good chance that you can get rejected and don’t beat yourself hard for it. Just look at it as one of the experiences in life. But don’t forget to ask them for the feedback. Every feedback need not be honest. Assess the feedback yourself how far it is correct or wrong. If you feel you are lagging somewhere prepare again and reapply. Usually, these companies have a cooling period for 6 months.

Life is not just a dream company and it’s even beyond. Try to be good at whatever you do eventually things will come to you.

--

--