In our previous article, we discussed the reasons why IT companies include data structure and algorithm-based questions in the recruitment process. Today, we are going to discuss the concerns related to such interviews. Every software engineer, whether an interviewer or a candidate would like to know about the shortcomings of the interview system in today’s IT field. Out of all this, the main thing is to decide whether today’s recruitment system is able to recruit actual talent or not. If the system itself isn’t able to recruit good talent, then it is useless.
So let us now have a look at the people’s concerns about algorithm questions and the selection of talented candidates.
One should know the fact that most of the interview questions in the Silicon Valley are based on algorithms. The advantage is that new graduates or the engineers have a good chance of brushing up their algorithm concepts. But there is also a disadvantage of this. Engineers who are already quite experienced in this field often fail in algorithmic interviews because they have not referred or used the most common algorithms for a long time. The reason is that the concepts need to be refreshed in your mind after some interval of time. There is no fault of these experienced engineers because they have been doing what they should have done in their respective field. But their job might have been such that they don’t need to use common algorithm quite often..
I would like to discuss an interesting and a famous example of such an incident where a qualified engineer failed in the interview. Yes, I am talking about Max Howell. He is known for creating a popular programming tool called Homebrew. In 2015, Max applied for a job in Google and could not make it. The frustration was quite public because it went on Twitter. The tweet said, “Google: 90% of our engineers use the software you wrote which is known as Homebrew, but you can’t invert a binary tree on a whiteboard so fuck off.” Responding to this, Howell said, “For me the situation was: Google really needed a plumber, so I turned up with 20 years of experience and all the right tools (some of which I’d developed myself), but then they insisted on quizzing me on fluid dynamics before they’d let me fix their leak.”
While you must thinking that this is rare, I would like to prove my point with another real example. In 2009, there was a software engineer whom none hired. His name is Brian Acton. He worked with companies like Yahoo and Apple for many years but was still turned down by two IT giants, Twitter and Facebook. Acton being an experienced engineer wasn’t demotivated by this. He teamed up with Jan Koum who also worked with Yahoo. Together, they developed a messaging up that is being used globally and by almost everyone. Yes, they developed WhatsApp! Later on, this app was sold to Facebook at $19 billion making his net worth around $3.8 billion. So people might think that it is ironic but it is actually a true story and such things shall keep happening.
There are candidates who might be unaware of the recruitment process or who might also fail to prepare for the interview! Some might even outright themselves from being rejected. While this is what usually new engineers believe, the senior engineers might take it as an insult to be interviewed by a newbie engineer who has recently graduated. Out of all this, the company might certainly be losing good candidates with real potential. But the truth is that the companies don’t care about losing such false negatives! This is because the companies already have a steady flow of new applicants who are willing to go through this process.
Companies are usually cautious about their hiring process. They follow a simple rule which says that do not hire unless you are absolutely sure about the person. This is because the cost of recruiting a wrong person could be much much higher than the cost of missing a right person. Recruiting a wrong person is a genuine disaster for the team and the company. Just think, how many engineers wish to work with companies like Google, Facebook, etc. Out of all them, just missing a couple of intelligent engineers won’t be a big problem for such companies.
We have already discussed the importance of data structures and algorithms. It is quite obvious that candidates should be well-versed with it before appearing for the interview. This certainly means that the candidate is not at a loss even if he/she isn’t selected by the company. Websites such as Leetcode and Lintcode have been quite famous for helping candidates clear their concepts regarding data structure and algorithms. Way back in 2008, I remember that there were limited questions available for practicing and they were usually available on online forums. From 2011, websites such as careercup.com were launched. Such websites are dedicated to IT job interviews and books such as the crack the code interview 150 began to appear. Also, discussions and targeted exercises on interview topics for job-seekers became common. Everything was now available but the rules were yet unspoken.
Around 2015, with the popularity of code practicing, websites such as Leetcode/Lintcode became famous. Most of the job-seekers who practice on such websites range from top school graduates to experienced engineers because these are the ones who focus more on practicing coding questions. They understand the importance of such questions and are willing to crack it. You might be wondering that why is the same standardized method being followed for recruitment since many years? Why don’t they understand that anyone could prepare for the interview beforehand with the help of such websites? Such questions should arise! Firstly, you should understand that all big companies and the recruiters know about it very well. Not only are they aware, but they also encourage candidates to prepare for the interviews from such resources. In fact, recruiters from Amazon, LinkedIn, Google and Uber send the basic outline information about the interview to the candidates. They also refer and recommend prep material, books, and courses for beforehand preparation. Facebook officially conducts interview workshops and invites candidates to their Facebook campus to understand the interview process. In such workshops, Facebook interviewers clearly tell the candidates about the type of questions that would be asked in each round of the interview and where special attention should be paid. This means that these companies wish and hope that their candidates will come well-prepared for the interview.
The next obvious question would be that, won’t this expose the things that would be asked during the interview? Will this lead to accurate results? Honestly, most of the interview books, questions, and websites are accessible to everyone. But still, someone might clear the interview after practicing for a month while the someone won’t be able to clear it after practicing for 6 months or more. I have always believed that clearing algorithm interviews is similar to appearing in exams such as SAT or TOEFL. It is not just an exam, it is a process that demands cleverness and good practice equally. There could someone who would be reading the same book and practicing the same questions, but could understand the concepts more clearly. This is the reason why top companies hire candidates who perform the best in their interviews. With all these years of experience, I believe that only two kinds of people can clear such exams. The first kind of people are those who have a strong algorithmic background, they know every advantage and disadvantage of each data structure and algorithm. Big companies desire and welcome such candidates. The second kind of people are the ones who have an ordinary algorithmic background. But on the other side, they also possess strong learning ability and willingness for practicing coding questions. Every company would willingly hire engineers who possess such diligence and strong learning ability.In fact, companies need both these types of candidates. The ones which are clever would certainly solve the problems and the ones who are hard-working would also be able to solve problems after a little bit of advice. So according to me, the ones who work hard and practice interview questions and make through the interview are also the ones who are able to solve technical questions by studying hard and exploring new possibilities at work.
Have you ever wondered about how the work distributions in big companies look like? The most talented engineers are meant to make decisions, talented people build the framework, and ordinary engineers fill the framework. Big companies need a lot of Excellent Sheep to fill the framework. The engineers with diligence and strong learning ability are great candidates for the being the Excellent Sheep.
One should also understand that practicing the interview questions by memorizing or cramming the solutions is not correct. It is just a waste of time because this isn’t a school exam, it is an interview for working in the topmost companies. Understanding the data structure and algorithm is the only correct way. The engineers are expected to come up with extraordinary solutions that could earn a lot of profit to the company and also benefit the society. I have witnessed a lot of candidates who have worked hard and prepared for their interviews online but have still failed in the interview. Why? They were memorizing the solutions. When the interviewer would slightly change or add constraints to the existing questions, the candidate won’t be able to come up with a solution. So one must focus on improving the coding ability and understanding the structure. The ones who have been successful have worked hard, practiced coding questions genuinely and have met the requirements of the companies.
Let’s summarize. Data structure and algorithms have always been quite important to the engineers. Their importance doubled when they started being asked in the form of questions in the topmost companies for recruitment. We have already discussed why such questions are being asked. So this article focuses on the concerns related to such an interview process. The first concern is regarding false negative. It includes a short discussion on refreshing the data structure and algorithm concepts. It also includes real-life examples of people who have been quite successful engineers but have yet failed to crack interviews at top IT companies. This point ends with a small discussion on why companies are concerned about this hiring process and why do they take it seriously? The second concern is about the advantages that the candidates gain by practising interview questions. Why the companies officially expect the candidates to come well-prepared for the interview.This section also includes a little bit of information about the kind of candidates who could crack the interview. The possible structure of the company is also discussed in this section.
Overall, this article is not meant to demotivate the candidates but on the other side, it is certainly important for the candidates to know where they stand and how much should they improve if they want to work in these IT giants. Understand the importance of having thorough, genuine, and precise knowledge. Once you possess that, success is nearby!
Here’s the link to the previous article in this series