Here is what I think of current tech company recruitment trends: While less prominent companies measure experience and basic coding skills (for example FizzBuzz), the most prominent companies (Google, Facebook, Microsoft, etc..) mostly measure raw IQ. Raw processing power of the brain. They are not interested in whether you know a concept or not, if you want, they explain an unknown concept when showing you a problem. They are interested in how smart you are.
There are different ways to be smart of course.
1. There are people who think very differently than others, have unusual thoughts which are sometimes right (sometimes not): these are creative people.
2. There are people who are the long-distance runners of thinking, maybe they are not very fast, but forming an important theory (or solving an important theorem) through years.
3. And there are the sprinters, who win competitions, and excel at top tech comany interviews. They have a huge, real-time raw processing power, which is effective in time-constrained environments.
Of course these three things correlate with each other. But they are not completely the same things.
Top tech companies measure the third kind of smartness, and I think they do it the wrong way, because their system can be gamed.
They give you computer science puzzles not because they are interested in how much years you spent to solve these kind of problems (you will not solve these kind of problems in your job), but to measure how smart you are generally, and they expect to apply this general smartness in your job. The system can be gamed this way: someone just moderately smart studies and excercises comp-sci problems fo years. It seems absurd that I say that learning comp-sci is gaming the system, but if you think about it, practicing these problems too much is really some kind of ‘overfitting’. What we see on the internet: tips on how to study for a Google/Facebook interview, database of Google/Facebook interview questions: these show that people are willing to game the system. If you already know an interview question you successfully gamed the system. You even gamed the system if you have solved lots of similar problems.
If these companies really want to test the 3rd kind of smartness I mentioned, then what these companies need is a standardized test for the 3rd kind of smartness, which cannot be gamed so easily. And while this territory will have to be heavily reasearched, I think I know a possible direction:
Make the candidates solve lots of random cases of NP-Complete problems in a short time-frame.
I think this may be the kind of standardized IQ test, which cannot be gamed. At least that is what I think after playing hard with my iOS game ‘Find the Mafia!‘ for a week. ‘Find the Mafia!‘ is a game which gives you random cases of the ‘maximum clique problem‘ with preset graph size, and clique size, and measure how fast you solve these problems on average.
– It really seems you cannot significantly become better in it unless you really become smarter in the 3rd meaning I mentioned.
– You cannot memorize cases. Every case is different.
– No cultural bias. After 2 minutes everybody knows what the game is about, even relatively small children.
You just need the 3rd kind of smartness, the raw processing power, the ability to find solutions fast in a chaotic/problematic scene.
I would be really really interested in how efficiency in ‘Find the Mafia!’ would correlate with the efficiency in Tech Company interviews. If my theory is right, the correlation becomes bigger and bigger if we somehow normalize Top Tech Company interview efficiency with the amount of time the individual practiced comp-sci problems.