There was one meeting with two devs, both of whom had worked as programmers for over 10 years at this company and we were looking at code one of them wrote. The code looped over a string's chars to check for a single char's existence, and there were 26 IF statements: one for each alpha character. I had to explain to these two about the "contains" method. 10 years of programming experience each. And I had to show them the "contains" method... Since then "X years of programming" doesn't mean a thing to me.
Toss in a slide crammed with logos for top technical companies who've signed up for a free trial and never touched it again, and you've got a killer pitch for hiring managers at smaller shops who honestly can't hire tech folk to save their own skin.
This pretty much sums up what I hate about technical interviews that require a white board. You could have a solid resume, good references that can speak to your technical skill, and a discussion about your previous projects could demonstrate technical aptitude.
However, because you can't solve a problem that took people weeks to figure out in an artificial, stressful, and contrived situation, companies won't look at you.
I have no problem with this since most of the time it is just 2-3 coding problems. What irritates me is when HR people and even some developers ask me about my contributions to projects hosted on websites like BitBucket or GitHub. I usually tell them that all my public contributions are on personal projects with no relevancy [1] because the interesting contributions are protected by NDAs [2] and I cannot disclose any significant details about any of the projects that I have developed for obvious reasons. Some people consider your GitHub account as your "Resume 2.0".
the hiring/recruiting culture often looks like a circus run by mad people
When 33% of applicants can't write a program to solve 3 numbers, HackerRank becomes a mandatory step.
Let me get specific.
1. Competitive programming is great. But why hold it in direct proportion to ability to build products?
2. What happens 10 years from now. I know the 'keep up with the latest' drill. I'll definitely be doing it & I quiet like it. But why is the trend unreasonably favouring fresh graduates and quiet unjust to the seniors. Shouldn't it be the other way around? I don't despise the freshers. I'm quiet a fresher myself, but it still concerns me.
3. Why are things changing so fast in the first place? Don't get me wrong. I'm looking at the JS ecosystem. I like diversification. It's good. In our industry diversification helps better than anything else. They eventually converge back. JS is yet to reach that state, but still it concerns me the way the Javascript ecosystem is diversifying.
We've got an awful lot of things to set right in the industry. Hiring process is definitely something that needs attention. I personally find short-term paid contracting as a part of the hiring process, much much healthy than whiteboard coding & website ranks.
Young programmers are cheaper and easier to boss around.
Quantifying programmer skill is an easy sell, albeit flawed, "look at the score, we should hire or ignore!". Because hiring programmers you don't know is very difficult. This score can also serve as a way of lowering pay.
I think we all want to work with new and cool stuff, so this is pushed as a selling point to get you working for pizza and beer. The pay is not good but you can work with <insert latest shit> here.
How your company looks is important if you want VC money. Better keep your look young and vibrant. This also serves to attract other young cheap workers.
Because it's quick to test how good someone is at competitive programming, it's easy to grade everyone consistenty, and it (somewhat) correlates with actual programming ability.
Compare it to other interview techniques. A programming project/trial period is time consuming. And it's hard to grade everyone consistently when going off of their resume/github.
Furthermore, "#1 in Java" is not "Hacker Rank #1". Each leaderboard is broken up by language, topic, or contest. OP is trolling really hard here. There is no overall ranking across boards, so this claim doesn't make much sense.
(All this aside, I do really like the HackerRank platform and have been solving quite a few problems there lately.)
[1]: https://www.hackerrank.com/leaderboard/java/practice/level/1...
Is having a specific HackerRank meaningful to the outside world? I am unfamiliar with HackerRank, but solve algorithm questions on a site called LeetCode for fun. When I get truly stuck, I consult the discussion area and implement the suggested solutions. But I don't think it would be meaningful for me to go through all 450+(?) of their questions and paste in the answers.
What's the motivation to achieve Hacker Rank of 1, when presumably everyone knows you can just copy/paste the answers?
edit: as pointed out below, I jumped the gun on the motivation question. I guess I assumed the second part of the article expanded on the motivations, which were that the author heard people hired based off of HR. Hopefully those companies realize how easy this is to manipulate.
They also have lessons: https://codility.com/programmers/lessons/1-iterations/ and challenges: https://codility.com/programmers/challenges/
Copy/Paste the solutions from the discussions page.
Cached version: http://webcache.googleusercontent.com/search?q=cache:3BXmrLl...
This is in no way a measure of success as a software engineer, where a significant amount of time is spent in defining problems and articulating maintainable solutions for deploying features. This means using design patterns, proper documentation, in lieu of regex type expressions that are indecipherable a week later.
Great read, worked for about 10 years in dev never heard about hackerrank but it's part of a pattern sure.
So I think the source of misunderstanding is that we have multiple rankings on HackerRank. The leaderboard Mr. William Ross became #1 was in the practice leaderboard for the Java Domain[1], which is based on practice problems, and which is intended to get people upto speed with Java.
This is our global leaderboard sections [2] : http://i.imgur.com/2rkgwmg.png
We make the distinction of Contest based leaderboard which are based on your performance in contests, and practice leaderboard, which is the one Mr. Ross got on to.
This is based on contests and the forums during contests are monitored for answers and solutions, and this is what would be considered really hard to get on to, and I know the #1 there, uwi is amazing.
Our regular domains available at our domains page[3] are meant as a learning tool, where you can rise up as you solve problems, and yes the solutions are all available in many places. However since this is a practice area we do not do many of the things done in contests like restrict forums, look if solution is available online, run plagiarism(code similarity) matches etc, and generally we encourage people helping out in forums, although yes we should keep a watch on direct solutions appearing in forums. This is not intended to be a competition.
While I do not know how Furlong was hired, I can tell you the common ways that people do get hired.
1. Companies conduct contest or sponsor HackerRank conducted contests.
2. Candidates apply via HackerRank jobs[4] which again has a HackerRank test that follows.
3. Candidates practice on HackerRank after which they may be approached by companies seeing their positions, but generally this involves a HackerRank test as the first round.
4. Common test for a LinkedIn placements (currently in India alone)
5. The regular HackerRank test companies send across.
[1]: https://www.hackerrank.com/leaderboard/java/practice/level/1...
[2]: https://www.hackerrank.com/leaderboard
Anytime we share challenge problem solutions in the open there is an ethical issue about it. HackerRank specifically even does plagiarism detection.
I some of my own solutions to challenge questions in a public repo on GitHub [1] for educational purposes. I recently slapped a big disclaimer on that for people like this.
> Disclaimer: These solutions were developed by me individually unless otherwise stated and are shared for education and curiosity. Please do not use them as your own. If you're working on the same problem, please do not view my answer until you've solved it on your own. If you're working on a related problem, it's generally okay to cite a solution to another problem as a reference.
One example: I quit my last job because one co worker (c++) try to set a flag in destructor and checking that flag in member function to fix a segfault. Even though the person was having an ivy league degree and 10+ year of experience I don't want to work with them. Couple of other guys also left the company.
So it won't last long and a fraud would be caught. A fraud might end up working in sucker jobs and always wonder why they ask algorithmic question in interviews ;)
I don't see the point in hackerrank-bashing though. The site's UI is nice and it has got a good selection of problems for brushing up coding interview skills. Also, I think that most companies that "hire based on hackerrank ratings" use it to feed their pipeline and do additional interviews on their own.
Those who "game" the system are easily filtered out.
It seems no algorithm there taught you more useful things though.