I'm fairly certain I could study for a few weeks and ace the tests. I'm unfortunately also very resistant to doing useless work.
When the first interaction with a company involves requiring me to do useless work to prove my commitment (and everyone in the company has passed that hurdle) I very much doubt that I would be... how shall I put it... a good 'culture fit.'
I doubt it would take just a few weeks b4 you could ace the test. They'll ask hard questions that prove a depth of knowledge. The only trouble is that in most day to day programming, you will very rarely require this depth of knowledge about algorithms. So then, if your aim isn't to get one of these jobs, this sort of knowledge is rather useless.
Better to study a new language or statistics / big data.
Rather, the most important skill you have day to day is your ability to concentrate & get stuff done. & the ability to take a big problem and turn it into manageable smaller tasks.
I think the focus on algorithms can be an underhanded way to prefer young, fresh out of school applicants. Those with good academic track records and with fresh mitochondria that can be utilized for great coding results.
> I think the focus on algorithms can be an underhanded way to prefer young, fresh out of school applicants.
This is exactly the thought that came to mind when I started reading this chain, and I'm happy you hit on it. This is definitely part of that elusive ageism that we keep hearing about in SV.
I was one of them; I participated in my school's ACM ICPC [0] teams. Just knowing the algorithms wasn't enough; we had to know what problems they applied to and how to quickly and effectively code them, often with a translation layer for the required inputs and outputs. This was hours of practice every week, and I suspect the top teams are a combination of natural talent and even more practice than I put in.
Even just four years later, I would read through the packet of problems for the year and feel out of practice. I would read problems and recognize that, once I could have coded it within a half hour, but not anymore. I have traded having deep knowledge of problems with the daily practice of "engineering in the real world", and I would not even want to have it another way.
I'm fairly certain I could study for a few weeks and ace the tests. I'm unfortunately also very resistant to doing useless work.
When the first interaction with a company involves requiring me to do useless work to prove my commitment (and everyone in the company has passed that hurdle) I very much doubt that I would be... how shall I put it... a good 'culture fit.'