My placement story is a bit different from the other stories that you will come across. I began my preparation for the internship session during the two-month semester break. I appeared in the written round of the first 10 companies with a hope to get an intern but due to many flaws in my preparation strategy and luck not favoring me, I wasn’t able to clear even the first round of any company. All these factors combined led me to think that this wasn’t the correct path for me and I should stick to my goal of pursuing higher studies. So for the rest of 3rd year, I never planned to sit for placements and I continued preparing for my respective goal. It was actually around the end of 3rd year, in the month of March, a close friend of mine, Vijay Krishan Pandey advised me to sit for placement as it would act as a confidence booster for me and then finally I made up my mind.
So now I will tell you how I got placed at PhonePe by preparing wholeheartedly for 2.5 months. My experience during the internship drive made it clear that I needed to work on my coding skills as I was failing to clear the first round of companies. The mistake that I committed during my internship preparation was that I started reading GFG as a theory book whereas I coded a negligible number of questions. Perhaps this strategy might help you to bag an internship or placement but it isn’t a sure-shot way. During my internship session, I wasn’t mentally prepared to face rejection and that led me to quit after sitting for just 10 companies. This might happen with some of you, but please do not break down and keep revising thoroughly whatever you have studied in those two months.
So now I will tell you how I got placed at PhonePe by preparing wholeheartedly for 2.5 months. My experience during the internship drive made it clear that I needed to work on my coding skills as I was failing to clear the first round of companies. The mistake that I committed during my internship preparation was that I started reading GFG as a theory book whereas I coded a negligible number of questions. Perhaps this strategy might help you to bag an internship or placement but it isn’t a sure-shot way. During my internship session, I wasn’t mentally prepared to face rejection and that led me to quit after sitting for just 10 companies. This might happen with some of you, but please do not break down and keep revising thoroughly whatever you have studied in those two months.
My Placement Strategy
Coding
Disheartened by the internship session, I hadn't coded for almost a year. It was in April 2019, I started again. Many of you may also have the same case that they will be starting by now, but this is not a thing to get demotivated but a time to rise and start preparing. Since I was on the ground level again, I had to cover everything from the beginning. To start with coding, I followed the following schedule:
- First of all, choose a programming language in which you are comfortable. Don’t go for learning many languages. I would recommend choosing C++14(due to STL).
- I started practicing basic questions (Number Theory, Ad-Hoc, Implementation based) provided by seniors in the CC classes. These questions helped me to get accustomed to coding again after 1 year.
- At this point, I didn’t remember a single algorithm. So my main aim was to understand the logic and implementation of each and every algorithm.
List of topics you should study:
- Number Theory
- Binary search
- Graph Algorithms
- Dynamic Programming
- Data Structures ( Trie is also a very important topic. You can expect at least one question in the interview from this topic.)
- String Algorithms - ( I only studied KMP, Z-array, Rabin-Karp, and Hashing. I think they are sufficient as very less companies ask about them specifically )
From where to practice questions?
- For every topic mentioned above, I practiced most of the questions on GeeksForGeeks(GFG) IDE and I sincerely made a handbook of the questions that I saw were being asked in most of the companies. Handbooks serve the purpose of last-minute revision because when the companies start visiting you won't have time to go through everything again.
- For topics in which I lacked confidence, I practiced some questions from HackerEarth, Spoj, and Codeforces (using A2OJ Ladder as problems are sorted in difficulty order).
- Dynamic Programming is a very important topic. First of all, I read the article on Topcoder to understand Dynamic Programming. Then I practiced very-easy to medium questions on HackerEarth. Instead of using the bottom-up approach as used in GFG, I used recursion and memoized the solution as I felt it was more intuitive and easy for me to code the solution. I even referred to Rachit Jain's Youtube Videos for understanding DP on trees. Finally, I solved some questions on Leetcode.
- Once I had a firm base of all the topics mentioned, I started giving Leetcode Mock or virtual coding tests. It helped me to solve questions under a given time frame as it helped me to cope with pressure. I even gave some Div2 and Div3 rounds on Codeforces.
Resume Building
- Only mention those skills which you know and can answer the questions put up by the interviewer. For instance in my resume, in my area of interest, I just wrote Data Structures and Algorithms and did not mention any CS subject there (as I wasn't confident about the topics).
- Try to make your resume concise. Don't include unnecessary details. The interviewer isn’t interested in knowing that you had won a dance competition some years back.
- You should describe at least one or two projects which you have done. The interviewer expects you to know each and everything related to your project including its design, features and the key challenges you faced while making it.
Given that I hadn't mentioned any CS subject, I would advise you not to do so. It was my mistake that I did in my placement preparation. Luckily in the interview, I was asked questions apart from core CS subjects. But this will not happen with everyone. Since core CS subjects are very important, do prepare for them either from notes or GFG articles.
Aptitude and Puzzles
- I didn’t prepare specifically for this section. But if you want to prepare for it you can use IndiaBix, GFG Aptitude section.
- I went through puzzles from GFG as these are asked in interviews. They have compiled a lot of puzzles and they would be sufficient.
Core CS Subjects
- OS / DBMS / NETWORKING - Revised notes from copies that I made during my Btech classes. To be very frank I wasn’t left with time to prepare for these topics thoroughly so I didn’t mention these topics in my resume.
- C / C++ / JAVA(OOPS) - I went through articles on geeks for geeks. Don’t invest much time on this. Get an understanding of OOPS and it should be enough.
Some Basic Interview Preparation
I studied many interview experiences on GFG and the Leetcode discussion section(Personally, I found the Leetcode discussion forum very good). It helped me to get a gist of interviews and to devise a strategy for my interviews.
My PhonePe Interview Experience
Round 1: Online Round - 75 mins (4 questions)
- An easy Adhoc question (String decoding-100 marks).
- Knapsack problem variation (Dynamic Programming -100 marks)
- Hackerrank Poisonous Plants problem (Stack-100 marks)
- The number of DFS traversals possible for a given graph (Combinatorics-100 marks).
I solved first, second, third completely and fourth partially(I missed the corner case). In online coding rounds, speed matters the most. It is possible that you solve all the questions but still not be shortlisted for the next round because you took comparatively more time to solve the questions than the other candidates.
Finally, I was shortlisted for the interview rounds.
Round 2: Interview
Three questions were asked.
- Given height h[i] of n trees and length of wood ‘w’ to be collected. All the trees have to be cut at the same height and the length of wood above this height is collected. Find the height ‘l’ at which the trees should be cut so that exactly ‘w’ wood is collected in total. (Binary Search).
- Given n currencies, m linear relations (eg: c1=2*c2, c1=c3/2) between them, q queries and in each query two currencies are mentioned. For each query, find whether there is any relation between these 2 currencies, if yes then state the relationship otherwise the answer is no. Queries should be precomputed. (Graph)
- Variation of Traveling Salesman Problem.
The interviewer was satisfied with my solutions and he provided necessary hints as well when required. He asked me to properly code the first two questions and in the third one, he wanted only the approach.
Round 3: Interview
Design a data structure to
- Find the max element in O(1).
- Find min element in O(1).
- Remove element in O(log n).
- Insert element in O(log n)
(Doubly Linked List + BST)
Then he asked various questions on OOPS like encapsulation vs abstraction, upcasting, garbage collector, static, super, final keywords. Then he asked various generic questions based on my resume(What was your JEE MAINS score, How did you prepare for NTSE, What is NCC). After this round, I was pretty sure that it went well and then we were sent back to our hostels(and I was waiting for my result) but after 2-3 hours I got a call from HR that they wanted to take one more interview round (I was scared).
Round 4: Interview
It was taken by the Head of Engineering of Phonepe. It was again a coding round.
- Given n cities connected by bi-directional edges. Some aliens appear magically in some of the cities. Find the minimum time in which they will reach all the cities. (Multisource-BFS)
- I gave a solution based on the maximum heap(It was said to be a real-life problem in Flipkart(Load Balancing ), I don’t remember this exactly).
- Gas Station Problem
- I don’t remember this but it was a cliche question.
Finally, he asked why there are so many stray cows in ALLAHABAD and how will you count them? Then he asked about my weaknesses and finally, my interview ended with a handshake😊.
Finally, I was informed that I have been selected as an FTE at PhonePe. This was one of the best days of my life. From facing rejections in the internships to cracking an interview at PhonePe has been the most memorable journey of my life. It has taught me to never fall but bounce back with positivity and energy.
Some Tips
- My entire interviews were based on mostly coding only so I personally feel coding is a major part in the preparation. In these two months be really good at coding whereas you can prepare other things based on time availability.
- I made notes sincerely of whatever I felt was important and in the last few days I kept on revising them as it helped me in polishing my concepts. I still have those handbooks and I feel they will serve me till I am in this sector.
- I can’t stress much on the importance of communication. It plays a very crucial part in the interviews. There are many friends of mine who are very good at coding but they are not able to deliver their thought process well. So it’s my advice to fellow juniors to try to think aloud while solving questions. One more thing while preparing, practice questions on copy as it will get you accustomed to the real interviews.
- Most importantly don’t get disheartened. I also used to succumb to self-doubt during those two months but trust me God has the best plan for you. Do your best, stay positive and keep sharing your worries with family and friends. It’s important to stay in a healthy state of mind to prepare well.
cool
ReplyDeleteMam, How corona rescission will effect our placement session please reply.
ReplyDeleteRight now what matters is how you prepare so just focus on that! All the best :)
Deletewhat role you have applied for sis?
ReplyDelete