I'm not a graduate looking for a first job. I've spent 15 years working as a developer and a strategist at leading investment banks and I'm looking for a new role.
It's a nightmare.
In the past few years, companies hiring developers have espoused all manner of testing processes as way of covering their backs before making recruitment decisions. It's not enough that someone has a proven track record: they also need to complete a Hackerrank test or something similar. This has become common in banking, but tech firms are at it too: Facebook has a 45-minute on the spot technical video interview instead of an actual coding test for their potential hires.
I've therefore spent the past few months revising how to code in Python, C++, and SQL. I've learned C#/dot net from scratch and I've revisited college mathematics. My technical skills were already very strong. Now they are considerably stronger.
All of this, however, takes time and I'm not convinced that it's time well spent. All I have done is to learn how to solve a certain set of problems (if you stay on Hackerrank for long enough, the same ones keep coming up). With luck this will get me a job, but if I am hired on this basis I feel it will be for the wrong reasons.
In the past, when I was interviewing myself, I would come across large numbers of really smart candidates all the time. Once in a while, though, I'd find someone exceptional who could approach problems differently, and those people would always turn out to be the best hires. They would have been filtered out by these systems.
My technical skills have definitely sharpened up by practicing Hackerrank-style questions, but I believe the companies using these tests are creating a bias in favor of candidates who a) have time to practice and b) who've recently graduated and are familiar with the format. It's very hard to prepare for these tests if you're working full time and have a young family. It's also an opportunity to excuse ageism. In an assessment the other day I was asked to code something that I hadn't covered for 30 years. If I'd had the opportunity to read-up on it, I would have been fine.
Young people aren't benefiting from these tests either. To succeed in the testing process, you need to code defensively against edge-case problems. First you have to figure out how to solve the problem and then you need to get a working solution, but to get the very best result your solution needs to execute efficiently and to produce the right answer in all edge cases (eg. empty parameters, repeated or negative numbers, massive sets of data); they generally have hidden tests that they will run to check this. The tests are therefore all about excluding candidates rather than identifying brilliant young mavericks with potential.
It would be nice if the tests were scrapped. This is unlikely to happen. For the moment, then, experience seems to count for nothing: it's all about how much time you can spend on Leetcode.
Thomas Jackson is a pseudonym.
Have a confidential story, tip, or comment you’d like to share? Contact: firstname.lastname@example.org
Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear.