A few months ago, I shared my experience with Scaler Academy on Quora. Since then, I had got several queries across LinkedIn, Quora and Emails. So, instead of repeatedly answering each one individually, I thought to create this post and keep it up to date with FAQs. Additionally, I have also added my review of other topics that were covered since I wrote my Quora answer (i.e. System Design, Hackathon, Puzzles and Advanced Problem Solving).
About the course at Scaler Academy:
As a recap, I am a part of the first batch of Scaler Academy that started in April 2019. It is a 6-month course where they teach skills necessary to be a great software engineer, including the skills needed to crack the coding interviews. The course is now in its final month (would end probably this week), so I think I am at a good position to have a detailed review with the benefits it has provided, is it worth it, etc.
How to prepare for InterviewBit Academy entrance exam:
A major question I get asked is — how to prepare for the Academy Entrance Exam and how do they select the people. As far as I know, your scores on the test are the major stakeholders regarding your selection. Then your resume, past internships, projects, profiles from other coding websites matter. Ideally, they want students who can learn fast from the lectures and apply those learnings in Homeworks, Assignments and Projects. The entrance exam of our batch, what I remember, had 5 or 6 questions. Other than 2, all were simple implementation based and could be done in less than 30 minutes. They required a basic idea of sorting etc and that’s all. 1 was a BFS question, so you needed to have an idea of it. I wasn’t able to solve one and that could be taken as a Codeforces Div 2 C level. It requires some good observations and not any advanced algorithms knowledge. To prepare for the same, I think you can practice some easy, easy-medium questions from IB or Leetcode or Codechef or Codeforces. Basically just make sure your programming skills are perfect and you don’t face issue implementing logic. Then second important thing is that your mind is active. See the question, solve sample case on paper, see the pattern that is happening and it should be enough to get the logic. It is good to have a basic knowledge of different data structures and their basic algos, having implemented a few of them.
Course Material and my feedback on the structure:
First, let me list down the topics that were covered over the last 5 months (in sequence) as that turns out to be the most asked question:
- Two Pointers
- Maths (and 2 special classes for HFT companies)
- Bit Manipulation
- Recursion and Backtracking
- Strings (Pattern Match, KMP, Rabin Karp)
- Linked Lists
- Trees (also Segment Trees, BITs)
- Greedy Algorithms
- Dynamic Programming (There were 6 sessions on DP and these included DP on trees, DP with Bitmasks, TSP Problem etc.)
- Graphs (and Union Find, MSTs)
After the Data Structures and Algorithms part was over, there were 5 sessions on Low-Level Design that involved how to design: UML Diagrams, Design Patterns etc. Then the course shifted to other CS concepts such as Operating Systems (3 classes), DBMS (2 classes), Computer Networks (1 class).
Honestly speaking, I feel this course allows you to build a good hold over CS concepts such that you can become a good Computer Scientist in the future. Clearing the interviews is a side effect of it, so the course is not just making you mug up DS Algos for the interviews but rather preparing you for what follows even after that during your journey as a Software Engineer (such as SDE1 -> SDE2). I find these most important during my current internship.
After the classes on DBMS etc., a one month Hackathon took place where we were given an overview of Linux Basics, GIt, JS, React, MVC, CRUD, tools like Postman, things such as how to structure a project, do the planning of timelines. The focus was on not to spoon-feed but to show the direction and let us explore the domain ourselves. We all were supposed to build a project of our choice in groups of 3 and each group was provided with a mentor. Unfortunately due to time issues, and having had good projects during my previous internships, I didn’t take part in the Hackathon and only attended classes. The Hackathon was optional in case you feel you have good projects and experience under your belt. I think in a future version of the course, they could try to brainstorm more on the structure of Hackathon (maybe extending it to 1.5 months and doing 2 or 3 classes of other topics in parallel), but still, I found the knowledge from the classes beneficial. In JS, for example, Prototypes, Closures etc were taught in Depth by Abhimanyu himself.
Now, after the Hackathon, 9 classes on System Design took place. They were taken by Anshuman and Tushar, both having worked at Facebook and thus having faced the scale themselves and knowing how several decisions and tradeoffs were made. The topics included Storage, Caches, SQL vs NoSQL, CAP Theorem, DNS, Load Balancing, etc. After several blocks needed to build a scalable system were covered, 2 real systems were taken in each class and discussions happened on how to design them. The systems included Facebook News Feed, Uber, Twitter, URL Shortener, Typeahead suggestions etc.
After system design, 3 classes happened where Puzzles were discussed and then classes on Miscellaneous problems that generally covered Codeforces D and similar “hard” problems.
IB Practice platform v/s enrolling in IB Academy
The second big question I have had is the overlap between the questions on the IB Practice Platform and the questions discussed in the classes. I think around 60% of the questions discussed in the classes were also present on IB Practice. But, frankly speaking, it is the understanding of the topics that are actually important. Leetcode, IB and many other platforms exist that provide you with a plethora of questions. While some people are confident to face any interview by doing only 200 questions, others might need to do over 500 to gain the same confidence. The point of difference is how you learnt those topics, the intuition you had. The way Anshuman, Kshitij had taught the topics provided fairly good intuition. For me, though I knew Segment Trees etc. earlier, I personally found the explanations in the class develop my intuition in a better way and now I feel it easy to find if a question requires STs and then implement them in very less time. Also, the remaining questions that were not present on IB Practice are created by a specialized Problem Setting team at IB, and thus the questions are of very good quality. Some questions also derive inspiration from Codeforces Div2 D/ Es and thus prepare you for those hard questions that are rare but in case they come, we are not totally blank.
The third critical question posed by a lot of people is — Is spending Rs. 3 lakh on the course worth it or is it too expensive? Well, honestly I joined this course thinking that even if I get the highest paying job from my college placements, it probably would have paid less than the minimum IB was guaranteeing me, subtracting 3 lakhs from it. As far as I know, IB is partnering with companies that pay above a certain amount, and if you subtract even 3 lakhs from it, you should have a 6 figure every month still. Adding to it, you get the advantage of being in a community and making connections that can give you several advantages in the long term over your career.
Frankly, when I joined the course, I had only joined for a referral so that I can receive interview calls which I was not able to earlier. I had a low X but Anshuman told in the onboarding session that 99% of us will get above 20 LPA if we go through the course sincerely and I had known about Anshuman and Abhimanyu through my colleagues during internships and so trusted them. I used to be active during the classes, asking doubts etc and tried my best to finish all homework and assignments on time. Also, I saw a drastic shift in my thinking as the course advanced and I discussed stuff with fellow students and Abhimanyu and Anshuman themselves. They want to bring a change to how CS education is imparted in the country and the breed of Software Engineers produced in India. I have heard of them vouching for their students and negotiating better salaries for them, themselves. They are very much reachable and put their complete trust in you.
One of the best benefits I have had from the Academy is in the form of connections I have built. I have personally interacted with several people working in companies like Google, Amazon, Microsoft, CureFit (I myself am interning in a subdivision of it currently), Adobe, Nutanix, Dunzo etc. Adding to that, we have had sessions with personalities like Ajay Somani, Prasanna Sankar (Co-Founder, Rippling), Anudeep Nekkanti (You should know him?). I had a personal interaction with a few of them later too, but it was IB that acted as the reference.
Finally the major question asked by people, the “referrals”. There are 2 main sources of referrals for the people in the Academy — The Refgraph, and IB recruiters themselves. Let me dive into how they work. Refgraph is basically a list of people that IB has contacts with, either they are Mentors, or Teaching Assistants or some other way. The list includes a list of the companies they can refer to and anytime, you can select any number of them and request referrals from them. Then they can refer you after seeing your profile. Here is a screenshot:
The second way is IB recruiters. InterviewBit partners with several companies and then amongst the Academy students, find the people they deem to be the best fit for a profile. In the Jobs tab of those students, the corresponding JD appears with expected salary, responsibilities etc (just like campus placements). If interested, one can show their interest towards a profile and IB takes it forward. Sometimes, IB recruiters call you for a JD they feel fit for you and ask if you’re interested. I got CultGear @ CureFit via it. Some of the other companies I have seen there are Myntra, Amazon, Flipkart, MindTickle, Thoughtspot, Dunzo, DoubtNut, CodeNation, etc. I am graduating in 2020, and they haven’t started actively referring to 2020 grads. So, I expect more referrals come by way after December.
Personally, I have had referrals to 2 of the FAANGs and 3 other startups (2 of which are in the LinkedIn Hottest Startups to work for 2019 List). I interviewed for 3. Got 3. (I am talking of internships)
Conclusion and some final piece of advice:
The biggest grudge I have had about not being from a Tier 1 college is the lack of a backing in case I ever wish to take risky decisions in my life. I firmly believe that IB has provided that support to me in case I fail, I have some support and will be able to get back. In case you are an Academy student, honest advice is that make sure you attend all classes and in case you can’t attend live, make sure you don’t create a backlog. Do finish homework and assignments even if you think they are easy and you know the solutions. They will just sharpen your mind a bit more, or worst case, revise your implementation skills. I had attended all the lectures (around 85% of them live) and have solved 80%+ questions. Don’t hesitate to reach out to anyone for help regarding anything, from career advice, to offer evaluation, to, of course, homework and assignment issues. They have provided you with the platform. Find ways to make full use of it. Also, don’t get relaxed, ever, till you achieve it. Go ahead, prepare more, do more questions, learn new technologies, start loving the field. The end goal is not just to get a job. Life doesn’t end there. It is to be someone companies and people look out for, or even someday end up with something of your own. Best Wishes! :)