AlgoCheating
Created on 2019-11-25 06:12
Published on 2019-11-25 07:00
I had several interviews at tech giants. Some of them were successful some of them not. The main characteristic of the interviews was the focus on algorithms - and this is for a good reason as data grows you will need faster algorithms to partially keep up with data. In that period I studied mainly from the classical books (CLR, Skienna, ...) and solved problems that I knew that were given in the local IOI/CACM qualification rounds. I was able to do recursion, graphs, data structures and concurrency due to my individual study and also due to my university subjects. It was a decade long process. Getting to an interview was a huge deal then and required quite a lot of work.
In the menawhile things have changed a bit. Now it is pretty easy to get to an interview but more or less the focus on algorithms remained unchanged. As of today I see lots of sites, books and apps that promise instant learning of algorithms and data structures. They present both some theoretical parts and also some solutions to well known interview problems. On top of that they are also offering mock interviews to the candidates who want a job at one of the unicorns. On another scale there is also an entire industry of courses and "academies" that also promise fast learning of some CS subjects to people who want a career change
As an idea these are not bad things but I am skeptical about their consequences. The first issue I see is that they will create robotic candidates that will be able to mechanically reproduce only the content in the book "Supercharged Algorithms" (fictional title) or whatever they have purchased. These recipe-for-algorithmic-success books are in my own view just a cheatsheet for passing the interview. The second issue is the mock interview. Practicing it is okay but the risk is for a company that adheres to this type of interviewing to hire mostly good actors as it becomes easier for candidates to mock the desired behaviour. The third issue is that learning mechanically some technology is a recipe for disaster on the long term. It's "programming by coincidence" type of behaviour where one who graduated a fast track course on programming will apply what he/she has seen in the course. What it lacks is the element of metacognition, of critically thinking about the problem, context and solution. This is what a "Supercharged Algorithms" or "Java Academy" cannot teach in one month.
There are some major consequences of these. One is that the companies get fooled and hire based on memorised solutions and acting. The results will be seen in about a decade. The second issue is that this "fast track training" industry is undermining the academic degrees. Why learn CS for 3 to 5 years when you can get similar results with 3 to 5 months courses? Of course that there are brilliant people in CS that haven't majored in CS but most of them are self taught. They skilled up in years not in days. Most of these people have solid backgrounds in other sciences as Physics or Mathematics and they were able to apply abstract thinking in their new field. I am very much inline with what Steve Klabnik said:
"To make a terrible analogy: nobody expects plumbers to have a physics degree but they do have to know some things about water physics, and that can be learned in a way that doesn’t necessarily involve getting a physics degree. And that is super cool, totally valid, and not a problem. But that doesn’t mean that physics degrees are bullshit or not useful to plumbers"
What can be done to circumvent these? In my opinion the most important thing is to detect the "fake". Candidates should write code together with the interviewer, should be asked meta questions, cross checked their knowledge against other field (when someone says that an algorithm complexity is O(n) it would be a nice follow-up to ask how one demonstrates this mathematically - it would prove some basic calculus skills). Breaking one's script and making him/her think outside the box would be also a good way of discovering both potential and meta cognition.
I will finish in a bitter note though, as I see that the industry is going mostly for cheap and universities don't fight back in a determined way. It goes much in line with E.W. Dijsktra said: "So, if I look into my foggy crystal ball at the future of computing science education, I overwhelmingly see the depressing picture of "Business as usual". The universities will continue to lack the courage to teach hard science, they will continue to misguide the students, and each next stage of infantilization of the curriculum will be hailed as educational progress." Worse, the same infantilized curriculum is taken out from universities and is further stripped down of the little science it still has on the bones, and then, is sold as a panacea for successful interviews.
No comments:
Post a Comment