Hacker News new | past | comments | ask | show | jobs | submit login

Aside from all the things mentioned in the article, this also seems like a fairly predictable application of Goodhart's Law: "Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes."

Once upon a time, skill at doing these sorts of problems might have correlated (imperfectly) with general aptitude as a programmer or software engineer. But the very act of trying to leverage that correlation for hiring purposes probably also made it go away. Now you've got a whole lot of people practicing hard on these sorts of problems, spending huge chunks of their free time grinding away on Project Euler and Advent of Code and HackerRank. That muddies the quality of this stuff as a proxy for what it was originally trying to detect: natural aptitude. I'm guessing having time to level grind like that also correlates inversely with other traits that are desirable in a programmer.




It is a perverse effect on the profession as a whole.

In the silicon valley I have a fair amount of colleagues that expect of any dev to spend a fair amount of their free time grinding on even more dev.

No surprise that there is a lack of diversity in the profession as a result.


I'm pretty sure it's age discrimination plain and simple. The only time in my life I would have been in great shape for the standard interview process without a good deal of study was a couple years in early graduate school, where nearly all of this "breadth" stuff was fresh in my mind.

The relentless scepticism about people's achievements is to some extent understandable (we've all run into the senior person who can't do fizzbuzz), but it ties neatly in with the idea that every new hire should be 25 at most.


Without a doubt it's age discrimination...you've hit the nail on the head. Also, God help you if you have followed a non-traditional career path where you decide at points in your life that you wanted a break from it all.

I, too, in 1988, fresh out of my BS in CP with no family or life experiences and a strong desire to code day and night would have sailed past the technical side of these often ridiculous interviews for jobs I could literally do in my sleep now.

But now, at 53, not only has Father Time fucked with my ability to sight memorize (something I took totally for granted in my younger years) without even trying, I find it almost impossible to hide my frustration at the ridiculousness of the very idea that I would be unable to do the work required of me for the job...

"Ok..we really need someone to fix X and Y on this website, and it would be just great if they could reconfigure Z on the server..." "Well, sure...I first saw X and Y-like issues back in the mid-90s in a networked client-server environment and I did X(x) and Y(x) to fix it, and again saw it in the mid-00s under the LAMP-stack and again fixed it doing X'(x) and Y'(x)...and the server issue is something I've seen over and over again during my 30y+ career..I am 100% certain I can solve these relatively simple issues for you guys..." "Oh...yeah ok...so can you whiteboard a bubblesort in Javascript for us? You have 15 minutes." "???"

...and of course I don't get a callback. Do people think I'm lying about all my experience on my resume or what exactly?

It's at the level of life and death for me right now, to be honest. I've been shooting out resume after resume for the past month, and nothing good is happening.

All I know for certain is...if the real issue was truly about finding someone who can do the job and fix the problems, there is no way in hell I'd still be looking now.


They don't want to pay you what they think (the you in their heads think you think) you are worth. That sounds convoluted but I've watched it happen repeatedly.

Bill budget IT guy, "What? We need to harden a server? Why do we need to pay this guy over a hundred thousand a year to do that? The internet is full of documentation. Let's hire someone with just enough technical know how to implement it."

The reality on the other side is that hiring an experienced engineer has it's risk. I've worked with 20+ years of experience engineers who did it because it was a job and didn't deserve the salary based on their skill set. Companies let this happen, you need to cap positions and then give inflation based raises.


> The reality on the other side is that hiring an experienced engineer has it's risk.

Totally agree and have seen it from the interviewee side. I interviewed in March last year as an experienced engineer, and my network was the number one source of interviews and how I found my current job.

Don't neglect your network, folks. As you age, it will become ever more important for your next position.


It is baffling that someone with over three decades of experience would be expected to go through the same interview process as a recent graduate.

When I graduated (over two decades ago, and in Belgium), testing was a regular part of the interviewing process. However, it was understood that this was only done for people with no or very little experience. Later in my career, this fact helped me weed out the jobs which were below my experience level. After stating such and withdrawing candidature for the position, in several cases I was even contacted to come in for a more senior position.

The world has certainly changed.


I'm about your age, and this is very relatable. My last job hunt took about six months. Among the other high points, I passed the on-site day at Google, passed the hiring committee, and then had an executive reach out to quash my hire.

I did end up finding something I'm enjoying.

Anyway, just wanted to send you some support. Keep your head up and keep going. You really only need one offer.


By accident or design, the "coding tests" seem to discriminate in favor of new grads (with CS 101 fresh in mind, and also willing to grind yet more artificial test-taking prep), and also have a component of hazing/negging, especially when administered to experienced people. (Asserting an imbalanced power dynamic from the start, and perhaps also exploiting a psych weakness, like "I'm jumping through hoops for this, so this must be worth jumping through hoops for." I'm sure most individual interviewers are of goodwill, and don't intend this, but that doesn't mean it's not present.)

Lately, I decline to interview with any company that requires new-grad coding tests for experienced people (especially if they require it even when the person has open source code and community participation that the company can look at). I usually do well, but even then, it leaves a bad taste.

Of course, I'm very happy to talk each other's ears off in energetic collegial discussions about engineering problems and technologies, including whiteboard brainstorming of approaches/algorithms, perhaps much like would be a part of everyday work. If anyone ever then interrupted, "Hold on, can you put in all the semicolons, so I can type it in, and make sure you know how to code," you might wonder how that's not already obvious to them, and where they're coming from.

This aversion to "coding tests" for experienced people seems to be more acceptable to small companies/startups (or small autonomous units in large orgs), than it is to less-flexible/agile large companies. Recently, after discussing my latest background with a nice FAANG recruiter, we had a good discussion about the company's practice of putting experienced people through what seemed like a new-grad vetting/hazing process, and why that's been a turn-off. They soon sent a followup email, including a quote from an engineer there saying "... I need to know whether you can code in a language," along with attachments on how to prep for their new-grad coding tests. :) For whatever reason the company insists on that process, it seemed like it probably wasn't on track to a professional relationship that I'd want.


I agree with you 100%, but I do have a bit of sympathy with the insistence that they want to verify that everyone can code and not just talk a good line.

I made the mistake of hiring someone quite senior through internal transfer once who was utterly and flagrantly unable to code despite the job saying this was a requirement - I probably could have caught this with a simple fizzbuzz, but felt like this would have been too insulting.

At at least some of the FAANGs it's also a pretty clear indication of the fact that you're going to get busted way down and work your way up. I was a Principal Engineer at Intel with a successful exit in a highly technical area, but I would be shocked if I wouldn't have to re-earn my stripes at most other companies. Most of the super-smart guys I know who went to Google, for example, got busted way down and quickly earned their way up.

So if we're not up to grinding and expect to go back in at a high level, maybe it's kinder to warn us off early. :-)


Except for people over 50 who have probably realized there is more to life, why would some demographics be willing to grind less than others?

Edit: By "over 50," I mean age demographics in general, which is the main thing that raises your family obligations. The only demographic division that I can think of that would reduce someone's willingness to abandon their personal life would be age.


They have kids. Developing a sentient being is a higher priority and more difficult than developing React Redux.


> They have kids. Developing a sentient being is a higher priority and more difficult than developing React Redux.

This is like saying: "I have a time-intense hobby that I prefer over working too much for you.".


I can see this sentence being an interesting Rorschach test. Either you think it’s quite sensible or utterly absurd. My own brain was even flip-flopping around for a bit before coming down on the utterly absurd side.

I think the maybe reasonable counter-argument against your sentence would be that while you personally do not have to value something like raising kids above your work, others very well might and do and there is nothing absurd or weird about that. Your framing betrays a certain kind of worldview where “work” is real and everything else is a mere hobby, a worldview that might be valid for certain people but is certainly not universal.


The gp actually just said what it said; in response to "They have kids. Developing a sentient being is a higher priority", that probably means "raising kids is just another hobby" - not a judgment of whether hobbies or a job should take priority. I.e. that him saying "developing a sentient being has higher priority..." is about the same as someone else saying "my creative hat-making has higher priority...". Sure, that may be true for many people. But given two otherwise roughly equivalent candidates with W>L and L>W priorities, why would a company choose the latter?


If work is everything, shouldn't we set aside some time to raise the next generation of workers? Working all the time is so defeating it even defeats the amount of work being done 30 years from now.


> If work is everything, shouldn't we set aside some time to raise the next generation of workers?

I don't think work per se is everything. But working on world-changing things is.

At least concerning the situation in Germany, where there is compulsary school with a compulsary curriculum (vulgo: 18-19 years of brainwashing), I am working a lot time in the evening on an alternative curriculum (currently focusing on computer science topics since this is something I am hopefully knowledgable about) that enables people to deprogram themselves from this kind of brainwashing to enable them to develop their intellectual potential so that they can begin to work on world-changing things. A lot of highly gifted people already asked me multiple times when they can finally read the first text of my planned series (they are really eager for it) - unluckily there is still so much to do even on the first text.

So the first thing that we should solve is to prepare a curriculum that does not completely brainwash our children. Only when this problem is solved, we can begin to think about how we can set aside some time for them.


Rather: I work for you to finance the really important things in my life.

You work to live, not the other way around.


> Rather: I work for you to finance the really important things in my life.

> You work to live, not the other way around.

At least if you work in (academic) research, working to live simply does not work [pun intended]. The things that you work on in this area are the really important things in life.


A person can choose to spend less time on a hobby at any point, but once a child is born their parents have an ethical obligation to their children.


> but once a child is born their parents have an ethical obligation to their children.

Indeed - and that is why you should be very cautious to give birth to children; in particular if you have career plans.


No, this is the wrong way to think about it and it has destroyed our generation by its proliferation. You should give birth to children and have enough balance between your work and your life to raise them and still grow in your career. You should never have to choose one or the other.

This false dichotomy cuts to the heart of a lot of gender and racial diversity issues that plague the workplace in the US.


No, it's called having a life and a sense of proportion.

The sooner tech companies learn to embrace and work with this very basic fact, the better.


So the sooner they abandon all of their own priorities and instead adopt only yours, the better?


Let's put it this way:

"Sure, I'll consider abandoning all priorities (i.e. social life) and/or putting off others (kids) -- and maybe even take minor risks on my health -- if you you're able to appropriate compensation."

Guess what, though? In the vast majority of cases -- even when we're talking about the bulge-bracket FAANG salaries occasionally gloated about in these and other parts -- simply don't come anywhere close enough to providing that level of compensation.

All of their pretensions to the contrary.


Rather than the reverse? Yes.


Wouldn't that just be another expression of age demographics?


some people have kids in their 20s (gasp!)


I don't think you need to be over 50 to realize there's more to life. Some demographics are less likely to live to work v. working to live. Some demographics may not have time to juggle interview grinding with other responsibilities (children, existing job(s), etc.)


This. I don't have kids and I'm not over 50, but I agree with those people (if they hold this belief); not just philosophically, but also because I want to see a more diverse workforce in software development.


For a non-age-related one:

It's a lot more socially acceptable for members of one sex than it is for members of the other to be too busy with career stuff to spare much time for their families.

On a somewhat related note, single parents simply aren't going to have that kind of time.


People who have other responsibilities have less time to grind - and those other responsibilities fall more heavily to under-represented folks. Consider things like taking care of children (including siblings), elder parents, and other household work.


Humans are social creatures; we can't live on code alone.

If you come from an underrepresented demographic or have interests or social preferences outside the mainstream of the profession, it will be harder to fulfill your need for social affiliation by participating in communities like HackerRank in your free time-- because it may be harder to find people who share your values, and that you can identify with on a social level.

In other words: the social component of "grinding" is more fulfilling for some demographics than others.


People from some demographics are less likely to have the option to spend all their time grinding. Spending all your time grinding means that you don't need to work toward supporting yourself or others.


> The only demographic division that I can think of that would reduce someone's willingness to abandon their personal life would be age.

I can think of a few others tied to national work culture.


Well, kids, family obligations and any other non-work related stressors that zap your free time.


The tests have become a pure filter, screen out those who dont study heavily prior to taking them. They are uncorrelated from the candidates ability at every day tasks.


It’s like an industry hazing ritual. How bad do you want it?


Hmm. Y'know, that's a great point. I could build a whole conspiracy theory off of that idea:

If I'm a FAANG, I'm simply not using my normal interview process to hire for the really interesting jobs. I reserve those ones for people who got the job by virtue of their publication history in the academic literature, or because they built some well-known cool thing, or because they got promoted into the position. Those people get shunted over into the "you didn't come to us, we came to you" interview process.

The seats I'm looking to fill with the more public interview process are mostly seats for the grunt coders who work under those people. My ideal candidate for that position isn't some rock star creative genius; it's a workaholic who is resistant to boredom. And what's something a workaholic who's resistant to boredom would be really good at? Grinding away on programming interview questions, of course.


This isn't a conspiracy theory - it's literally exactly what business schools do...

Teach a bunch of people to think in a certain way, speak a certain language and respect authority. Someone who excels at the repetitive mundanity of business school will be a perfect junior marketing manager at BigCo.

It's basically taking the way the Army trains new recruits and applying it to white collar jobs.


Old quote I've forgotten the source but it's over 40 years old now.

'Business schools turn out well trained, amoral yet obedient clerks.'

Can likely say the same about most CS programs. I know you can say that about engineering.


> or because they built some well-known cool thing

What, like homebrew? :)


> What, like homebrew? :)

Context for everybody else: https://twitter.com/mxcl/status/608682016205344768?lang=en

TL;DR: author of Homebrew interviews at Google, but doesn't get hired because he couldn't/wouldn't invert a binary tree on a whiteboard.


Wow, this is an incredible answer from Max on Quora as well: https://www.quora.com/Whats-the-logic-behind-Google-rejectin...


I wonder if the added friction of changing your place of work caused by this practice is meant to somewhat counterbalance the heavy incentives engineers have to job-hop in the current climate. Kind of makes sense from the point of view of tech employers.


> I wonder if the added friction of changing your place of work caused by this practice is meant to somewhat counterbalance the heavy incentives engineers have to job-hop in the current climate. Kind of makes sense from the point of view of tech employers.

I am not sure what to think about this claim: it is the other company that prevents you from working for them by this interview process. The current employer has the incentive that you don't leave. The other (potential) employer rather has the incentive to poach you.


These same employers (famously) had a cartel that prohibited job hopping before - the Jobs/Schmidt email - so it’s not surprising that the system would trend toward the same equilibrium again.


> These same employers (famously) had a cartel that prohibited job hopping before - the Jobs/Schmidt email - so it’s not surprising that the system would trend toward the same equilibrium again.

This explains this phenomenon plausibly for the FAANG companies. But I think there also exist lots of startups that could easily act as a cartel breaker - to their advantage, since this way they can poach from other companies.


Time spent by a new employee learning the ropes is time wasted from the perspective of an individual employer-actor. On the surface, it sounds similar enough to the iterated prisoner's dilemma so I'm inclined to think that a greedy strategy would do poorly here.


Something about your comment instilled a sense of dread and hopelessness within me.

I don't know if I can ever be one of those 'built cool things/get published' guys, so I guess that means I'm destined for grunt work. Fk.


But they are not supposed to be boring? At least to me they never are, it's just that they are rarely high on my list of important (or fun) things to do on my self-improvement time.


This is exactly what it is. Which Frat house do you want into? Google? FB? Microsoft? Amazon?


Surely, this must eventually lead to negative results? It's curious because it doesn't seem to be having any negative impact as of now.


The companies have caught on to this and nowadays, even if you passed the technical bits with flying colors, they look to rule you out or rank you based on softer criteria, like how well will you fit with our team? IOW, how much like us are you?


I'm not sure if HackerRank has updated itself recently, but the last time I poked my head in there (years ago), all the answers were in the "Talk about this challenge" section. You'd just go in there and copy paste the code in, maybe change the variable names/order a bit. Ever since I learned that, it's never been that 'wowzers' for me.


"Ever since I learned that, it's never been that 'wowzers' for me."

I am not sure I follow. For people who want to, there is a section where they can find answers even if they have not solved the problems. What was 'wowzers' about HackerRank before you learned that?


Well, some folks would brag about their score (years ago, dunno about now) and use that ranking as an indicator of their coding prowess. When I learned that the whole thing was easy to 'cheat' (whatever that mean in this context), then that rank lost all prestige for me.


Bragging about your rating as a function of solved problems in practice (with solutions available) doesn't seem rational.

HackerRank also used to organize contests where they would have a certain time to tackle a number of new problems (5-10 problems in 1 hour to 1 week, depending on the contest) meaning you have no access to solutions and are competing against other people solving the same problems. They have a rating for performance on those as well.


Isn't the whole point of the challenge to figure out how to do the problem? What you say is literally just copy/pasting others' answers. Is that not looked down on?


Given the name of the site (I've never used it), I always assumed it was about proving your ability to others (like maybe future employers). Easily-found answers totally destroys the trust that's needed for such a thing to work.


Bingo. Years back, in what small circles I run in, the score was something to toot your horn about. When I discovered that you could 'cheat' on the scoring, it took away all the prestige from that ranking score. Honestly, other than practice, what use is it?


What’s frustrating to me is that we haven’t found a way to teach programming that doesn’t rely on natural aptitude.

It’s really a travesty that we can’t teach it the same way that we teach maths or natural languages.

The end result is we’re left trying to divine whether someone is the programming equivalent of being illiterate. As with illiteracy people find ways to fake it.


As someone who has studied both math and computer science (and is now a professional programmer), I have no idea what you are talking about. We are far better at teaching people to program than we are at teaching them to do math. Its just that most people self select out of math [0], so, due to selection bias, it appears that we are great at teaching those that remain.

As an aside, as someone who also studied linguistics [1] (and a couple of foreign languages at a beginner level), I am very confident in saying that our approach to teaching natural languages relies almost entirely on natural aptitude. It is just that, absent a serious mental disorder, all humans have a very large natural aptitude for natural languages

[0] Probably because we are absolutly terrible at teaching it.

[1] I assume not what you mean by teaching natural languages, but the topic of language acuisition (including in adults) does come up; plus it gives some perspective on how teaching language would look if we didn't rely on natural aptitude.


I took math as part of my engineering degree. And that was 30 years ago. The older I get the more I think the way it was taught was terrible. Same reason I think teachers are bitching about the US's fetish for academic testing. Testing pressures teachers to teach students to mechanically solve problems. But with shallow understanding.


I think of monads, which are real easy to explain in a programming context as soon as someone understands lists and map/reduce, but are total gibberish in a math context even if you've gotten through calculus.


I don't believe for a second it requires "natural aptitude" to program. The problem is any programming curriculum starts with a text editor open.

If a developer-to-be doesn't understand the framing context of what they are doing they are being dropped in a lake with no sense of direction.

Its why all the "naturals" started as geeks who played with computers from a young age. You learned about the environment you would end up working in and later on when you hit the grindstone and actually started creating gears to stick on that machine you had an idea what the result should look like and knew the tools in the shop when you set out to start building it. Even if you didn't know the steps involved in the process, you were familiar with the environment.

People who haven't spent time engrossed in computers, such as the myriads of youth entering a cs 101 class thinking its an easy career when the most exposure to tech they have had is maybe updating their phone and using apps for Facebook and Twitter and maybe owned a video game console with no tinkerability as a total black box drop out so fast. Their professors lead them to an anvil and tell them to forge a steel rod without any wink of an idea what a hammer is.

Its just not an answer anyone wants to hear, because the solution is only to have what amounts to an entire degrees worth of learning to predicate the actual study of programming. But you don't want your brain surgeon to go to medical school after having never studied high school biology or even more generally learned to read.


We convinced our parents to buy a computer because it would help our education when all we really wanted one for was playing computer games. Joke was on us though, because playing computer games at the time usually involved a lot of putzing around and figuring out how stuff worked, ultimately teaching us marketable skills.


I'm envious because my parents heavily restricted my computer use thinking it'd rot my brain or I'd get r*ped. They wanted me reading books, to become a lawyer or a doctor. I always had an affinity for technology. My folks meant well but I think not watering that seed has me in the middle of this lost life.


I'm envious of you. I had no restrictions on technology use, growing up. I dropped out of high school at 16 and spent the next 15 years doing very little of note (with video games consuming the bulk of that time). Now I'm 35, struggling through my undergrad, and surrounded by kids.

I have some ideas about where to go from here but it's not going to be easy. The search for real meaning and really meaningful relationships is ongoing.


I spent so many years yearning. It was so unfair that all of the other kids had Pentium computers at home, and all I had was an old 386. My parent's refused to get me a game console, or cable tv. I was SO BORED, in my desperation, I tried making games in QuickBASIC.

I still think my parent's should not have gone so Amish, but I also don't think I would have developed as a programmer without that.


Not having access to a powerful computer makes you appreciate the finer things in life, like hand-bumming instructions till your inner loop hits a hard deadline.


If it makes you feel any better, even many of those who had that seed watered still feel lost in life :)


I had zero games for my VIC-20. It was strictly a BASIC machine. (Later I had a TI-99/4A which had a few.) My dad is a kind of super-polymath, and in the early 80s he bought a computer and learned how to use and program it so he could grind out solutions to mechanical-engineering equations. He saw me become hooked on BASIC and went down to Crazy Eddie's to pick up the VIC for me so I wouldn't bother him on his rather expensive machine.

The personal computer grew up alongside us xennials, and some of us were just drawn to it, even without the promise of video games.


Totally true.

In my case it was a natural progression: "videogames are great!" -> "I have an idea for even better videogame!" -> "how do I make one?" -> "can I tweak this one into being a bit more the way I like it?" -> tinkering around data files -> "I really want to make my own game" -> picking up a programming book at 13 -> a programming career.


22 -> make crud Java apps at a corporate software farm for a decade and lose faith in humanity


Spend a few years putting in 100-hour weeks writing collision detection for this year's Dora the Explorer game -- a typical game industry position -- and you will be thankful for the crud Java app job.


using literacy model - we're testing people to write haiku according to all the rules of style and form when the job we're testing for is basically just low level clerical like copying documents (using copy machine), sometimes taking notes and filling simple forms.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: