Beyond Competitive Programming: The Flaws in Software Interview Process
by sathishk
Recently, I had a conversation with a college student who was interested in finding job opportunities at Tier 1 (MAANG/FAANG)companies (those offering high salaries). He asked me for advice and I shared what I knew about microservices, cloud computing, and JAMstack. However, he insisted that he was good at competitive programming and only wanted a job where he would be asked to solve programming puzzles every day and paid a high salary in return. I was unable to explain to him that there is no such job, at least not one that I have seen in the past 20 years or so. I’m curious if anyone reading this has ever come across such a job.
In old movies, we might have seen scenes where the groom asks the bride to sing during the bride search process, testing her with a skill that may never be required after marriage. Why? Because his father did it, and his father’s father before him. Similarly, the interview process in the software industry has gone through several phases of change over the last two decades.
First, we were asked about core language features (such as pointers in C and multithreading in Java). Then came questions about data structures and algorithms, followed by system design questions (such as how to create a WhatsApp or YouTube clone). Now, the trend is competitive programming, where candidates are asked to solve complex problems in a short amount of time. But in reality, the skills tested in interviews are rarely used in day-to-day work.
Despite changing methods and questions over time, we still continue to test for skills that are not frequently used in the workplace. Why? Perhaps because we’ve always done it this way. Unfortunately, this process does not always help the job market. However, it does help the education market, as institutes can sell education for a higher price by misguiding young minds.
While we cannot change things outside of our control, such as the interview process, educators should do a better job of informing students that competitive programming is just one way of cracking interviews. There are many other ways to land a job, such as through open source projects, blogging, meetups, paper presentations, and more.
In conclusion, while it remains uncertain whether the current interview process effectively serves the job market, it undoubtedly benefits the education market by enabling institutes to charge higher prices, even if this comes at the expense of misleading students.