Similarly lots of people with significant industry experience… also can’t code.
In my part of the world specifically, the reason you get this is largely due to quota pressures by government. Government actively economically disadvantages white-privilege companies that don't fill unreasonable DEI quotas, effectively making an educational deficiency in the government's programs as a problem that the "private sector" has to fix 15-years too-late whether at University or in the workplace.
So everyone just passes the buck because they can't fix it nor can they speak the truth about the real cause, until at the end of chain the company making widgets/products/things has to take a hit and passes this problem on to the consumer in the form of hidden crapflation. But hey, government said they're fighting inequality, universities can say they are promoting education, companies can tick the DEI quota box, we all blame it on the "White Man" that can't say anything, DEI groups "get jobs" and the DEI grifter consultant machine makes mega-bucks. Win's all around, right.
The problem is computer science university degrees aren't enterprise training academies. "Computer Science is no more about computers than astronomy is about telescopes." Universities aren't incentivized to fix this because universities are research institutions - they don't make money from placing students in jobs, so trying to solve this is a dead end.
[1] https://blog.codinghorror.com/why-cant-programmers-program/
Government pressure for hiring quotas goes back to the 1970s.
Everyone involved in hiring should read “The Case Against Education” by Caplan.
in the networking side of these we used to have a couple of Cisco 2960s with slightly borked configs and our interviewees had to log in and tell us what's wrong. 5 minute activity, but often took some folks 30 minutes.
And yet, when scanning resumes, people often look for prestigious/"reputable" universities as a filter. Is the assumption that if they have a degree from Stanford and can reverse a string then that is a positive signal, but if they can't reverse a string that is somehow a personal failing and not a failure of the university to educate (and then evaluate) the candidate?
What's the alternative? Just give leetcode tests to people who didn't go to the same university as the hiring panel?
The fact that we have the same tests for everyone no matter where they studied at is a good thing and prevents nepotism in hiring decisions.
What I am noticing on all threads about HN hiring: Hiring knowledge workers is fundamentally a difficult, fuzzy process. Few want to admit it. And, there are some people are naturally much better at it because they can control themselves very well during an interview. People who are very strong at solving puzzles will nearly always outperform during interviews for hands-on roles. More than anything, interviewing feels like dating. Everyone hates it until you find what you are looking for... then it becomes: "Oh, it worked fine for me."
That's why the time machine is so important - to get back any CS degrees issued to people who can't code.
So I think you are actually agreeing with me?
-Dave Barry
I’ve never regretted a single person I hired and they have always been able to do the simple CRUD work that most of the 2.7 million developers are doing.
And before the gate keeping starts. I’ve been through the “Making Great Hiring Decisions” training and have conducted behavioral and system design interviews at AWS.
Sounds like a good way to filter for the right class background. (Which, given how well that's correlated with intelligence, is probably as good a hiring method as any)
Let’s just say when I walk through my neighborhood I’ve read comments about me in my own NextDoor group about someone “suspicious” and realized they were talking about me or my son…
This is why I find it so frustrating to talk to Americans.
> Let’s just say when I walk through my neighborhood I’ve read comments about me in my own NextDoor group about someone “suspicious” and realized they were talking about me or my son…
So you're a member of the class that lives in "good" neighbourhoods where it's suspicious for certain types of people to be? I think you've proved my point.
But back on topic. I base my interviews on behavioral traits that for framing, can be sussed out by asking “tell me about a time when” type questions.
You did see the part about I’ve gone through the interview training by the second largest employer in the US didn’t you?
It doesn’t matter if you can reverse a binary tree on the whiteboard if I’m looking for someone who “takes ownership”, “digs deep”, and has shown the ability to deal at the level of “scope” that I’m looking for an knows how to “deal with ambiguity”
My current opinion is that while it's effective, it means there's a significant bottleneck (sometimes a single person) for the hiring pipeline. i.e. you still need at least one earlier tier of interview to winnow the candidates down to a volume that's manageable for the bottleneck, and the earlier tier needs to be something more standardized that can be delegated to a larger group of people. i.e. "can this person explain common technical details A, B, and C of work in this department well enough to demonstrate solid understanding?"
[1] I read years ago that border guards in some countries use a similar technique, because if someone is being deceptive, it's unlikely they can handle a random walk to an arbitrary depth of detail.
It’s based on the Leadership Principles at Amazon. Not that Amazon is a great place to work in practice (I just got Anazoned two months ago).
But they talk good game.
https://managementconsulted.com/amazon-leadership-principles...
I have a sticky note of the LPs I care about. A lot of times when I just ask a generic “tell me about yourself” question, they will talk about their experience and I can just ask them more details around their project that let’s me get the information I want.
Other times, I have to specifically pull out my questions. For instance, I really care about having someone who is willing to speak up in meetings and is willing to express their opinions and even someone who is willing to tell me they think I’m wrong. I speak very authoritatively about my areas of expertise. But I always try to emphasize “strong opinions weakly held”.
In LPs terms it’s called “Have backbone disagree and commit”.
My favorite question for that is “Say I’m your manager and you are in the meeting with me , the CTO and other managers and we come up with an idea that you think is completely stupid. What would you do?”
And that starts an entire conversation. I’ve given a thumbs down to people who give me an answer that I don’t think is a fit for what I’m looking for.
I love for people to give me feedback and I hire people who help my team fill in technical gaps. I need people to speak up
Such people are not necessarily deceptive; in my experience, much more often
- the person does not have the best memory, but loves to talk
- the person has a tendency to "hallucinate" (i.e. has some mild (typically harmless) schizophrenic traits)
> It doesn’t matter if you can reverse a binary tree on the whiteboard if I’m looking for someone who “takes ownership”, “digs deep”, and has shown the ability to deal at the level of “scope” that I’m looking for an knows how to “deal with ambiguity”
That definitely sounds like something that would filter more for "went to the right schools" (or, more generically, "mingled with the right people", but schools are the easy way). I could certainly believe it's as effective as "reverse a binary tree", but I very much doubt it's fairer.
Do you realize that scope, impact and dealing with ambiguity is literally in the leveling guidelines stated in some way or the other in every tech company?
https://dropbox.github.io/dbx-career-framework/
I’m not looking for someone who just graduated from college.
The right schools give you the opportunity and mentality to do that (and before that, even more fundamentally, so does having a comfortable upbringing), and then you'll compound that with your experiences in the good jobs that going to the right schools gets you.
> Do you realize that scope, impact and dealing with ambiguity is literally in the leveling guidelines stated in some way or the other in every tech company?
Everyone does it, that's exactly the point - you limit class mobility by ensuring that the good jobs are only available to the people from the right class. Even if someone from the lower classes has the skills to excel, they never get the chance to take ownership, learn new skills, and expand the scope of their impact because they're never hired for a position in which they can take ownership, take the time to learn, and have impact beyond their narrow position, because they never have a way to show that they can take ownership and learn new skills...
When I’m looking for the behavioral traits I wouldn’t care if they could only tell me stories about being the shift lead at McDonalds.
You realize I only got a job at a company that anyone has ever heard of at 46?
It’s called “work ethic”. Right now, I am building a team where the actual coding is really simple in the grand scheme of things. Since ChatGPT is well trained on the AWS SDK, the CDK, etc. you could literally use it to do 90% of the work.
But the organizational complexity, business rules, etc are complicated and we are still figuring everything out. I need someone with the following behavioral traits. I’m going to frame them in terms of the Amazon LPs since it gives everyone a publicly available point of reference:
- Customer Obsession
- Ownership
- Learn and Be Curious
- Bias for Action
- Dive Deep
- Have Backbone; Disagree and Commit
- Deliver Results
If you have any kind of work experience at the mid or senior level you should be able to demonstrate those.
I could answer “tell me about a time when” type questions three years out of college graduating from my no name HBCU in the south after my first job.
Which is fine if you've got a job with reasonable hours that doesn't leave you drained at the end of it, and the rest of your life is stable enough for that, and...
> I ... got a job at a company that anyone has ever heard of at 46
> It’s called “work ethic”.
Maybe. Or maybe it's luck. People are particularly bad at assessing which when it comes to their own history.
> I need someone with the following behavioral traits.
Or you need someone with something else that's correlated with them. Or what you need isn't really related to them at all.
> If you have any kind of work experience at the mid or senior level you should be able to demonstrate those.
Right. Once you've made the leap into the good jobs it's easy to stay there (and if you went to the right schools then it's easy to get the first good job, and if you're born to the right family then it's easy to get into the right schools). The trouble is getting there at all.
> I could answer “tell me about a time when” type questions three years out of college graduating from my no name HBCU in the south after my first job.
Sounds like you had a good first job.
It sounds like you’re making excuses. You mean you spend every hour of your life working? Are you suggesting that we should have no hiring criteria?
> Maybe. Or maybe it's luck. People are particularly bad at assessing which when it comes to their own history
You did see the part where I would find it perfectly acceptable to show the behavioral traits by working any job? Of course you do have to have technical experience - not even in the stack we are using. I can teach the specific technology.
> Sounds like you had a good first job.
My first job was a computer operator working on mainframes.
> You did see the part where I would find it perfectly acceptable to show the behavioral traits by working any job?
I'm suggesting that hiring criteria that reflect more directly on the candidate's abilities, and less on what opportunities they've had to date, are fairer. (And, distinctly but relatedly, the more objective the assessment is, the better for those from lower-class backgrounds). For someone who's grown up in a working class household where showing initiative had negative consequences and then gone through public schools where showing initiative had negative consequences through to line-level jobs where showing initiative had negative consequences, a tech interview that focuses primarily on whether they've got the skills, and lets them show it through their fizzbuzz/leetcode/hackerrank/what-have-you, is one of the few ways to make it out.
1. People who were too busy to study to learn how to code would definitely be too busy to grind leetcode as well as adults who are already in the industry with families
2. Okay you can reverse a binary tree on the whiteboard. That tells me nothing about whether you are the kind of person that I can assign a task like “a customer has some vague idea of what they want. I need you to figure out the details and come up with a proposal and a design and present it to them and get feedback”. Then if they don’t know the technology, I need them to be able to learn it. This is what I mean by “Customer Obsession”, “Learn and be curious”, “Digging Deep” and dealing with ambiguity. If I need them to lead a project, I need to know they are able to handle items dealing with “scope”.
I want to know if they have a history of “delivering results “.
These are all traits that you were required to show to get a return offer as an intern for a full time job as an L4 consultant working in Professional Services at AWS.
I threw tasks like this at a first year employee who I had mentored as intern and they passed everything I threw at then with flying colors.
At my current job, I’m working with a green field project where everything is ambiguous and I need someone I can throw a poorly defined objective at and they can take the ball and run with it. Leetcode isn’t going to tell me anything.
I think many more people have the opportunity to grind leetcode than have the opportunity to "take the time to learn a new to you technology" that they can then apply to a work project - which requires not just time but also having the right work environment in which they can apply it. Of course you're right that many people don't have the time for either, and a handful of professional-managerial class people who are already in good jobs might be able to do the latter during work hours but not the former.
> whether you are the kind of person that I can assign a task like “a customer has some vague idea of what they want. I need you to figure out the details and come up with a proposal and a design and present it to them and get feedback”.
> I want to know if they have a history of “delivering results “.
Do you think you're measuring something objective about their ability to do the job? To the extent that you are, do you think what you're measuring is something different / better than "has decent general intelligence + has existed in professional-managerial-class spaces (or, more specifically, in jobs like this one) for a while?" Do you have evidence about the answers to either of those questions?
The difference is that you are an active programmer, you’re actually programming. I graduated in 1996. I had to learn “new to me technology* as part of my job for 25 years on the job. I’ve never had to do anything approaching leetcode on my day to day job.
I’ve learned on the job:
- infrastructure and networking
- C++
- Perl
- JavaScript
- VB6
- C#
- Python
- litterally 3 dozen AWS technologies
- databases (OLAP, OLTP, key/value, document, etc)
- how to manage large projects
And pick up soft skills
> Do you think you're measuring something objective about their ability to do the job?
The best predictor of future behavior is past behavior. That’s where behavioral question comes from.
> To the extent that you are, do you think what you're measuring is something different / better than "has decent general intelligence
None of the behavioral traits I mention have any correlation to intelligence. I didn’t wake up one morning and learn how to communicate effectively .
Right, I'm saying that's a rarer privilege than being able to do leetcode or similar (whether during work hours or not).
> None of the behavioral traits I mention have any correlation to intelligence. I didn’t wake up one morning and learn how to communicate effectively .
If you think being able to communicate effectively has nothing to do with intelligence you're crazy. (Of course, it probably has have even more to do with having a common class experience than with intelligence)
How long have you been working? I doubt very seriously that anyone who works professionally hasn’t had to learn some new technology on the job. Out of the 2.7 million working software developers, I could say that almost all of them had to learn new to them technologies on the job. Also almost none of them did anything approaching leetcode on the job.
> If you think being able to communicate effectively has nothing to do with intelligence you're crazy. (Of course, it probably has have even more to do with having a common class experience than with intelligence)
What exactly point are you trying to make? That if I need someone who can communicate affectingly I should test that by using leetcode?
Yes, you can learn how to be an effective communicator much easier than you can learn how to pass a coding interview.
Sure. It's a great way to hire people who already have professional-class jobs, mostly already software developers.
> Yes, you can learn how to be an effective communicator much easier than you can learn how to pass a coding interview.
People from the "wrong" class aren't generally ineffective communicators, they just have a communication style that's adapted to their circumstances. PMC communication styles are easy to learn if you have access to an environment where everyone else is using them, but very hard otherwise. (Also, by your own logic if the communication style is easier to learn wouldn't you want to hire people for the harder skill and teach them the communication style on the job?)
On the other hand, in my experience such fraudsters are in most cases easy to detect: just ask them some hard questions (where the candidate will either know the answer or not, thus rhetorics or charisma won't help) about the topics that the candidate claims to have expertise in (choose the question in a way that even very capable candidates will only be able to answer a fraction of them - this is fine and intended).
Typically, after 30-45 minutes you are either sure that the candidate tells the truth about his capabilities or is a liar (hardly ever anything inbetween happens).
> know how to reverse a string or traverse a tree or define what XSS is.
In my experience, it is absolutely not safe to assume a correlation between these two sets of traits.
But 'top universities' don't know how to teach CS. That's the point. Don't waste your time there.
Maybe we should have a 'bar exam' type system, but the university system is a joke at this point, and there's no point trying to put lipstick on a pig.
But 'top universities' don't know how to teach CS. That's the point. Don't waste your time there.
Maybe we should have a 'bar exam' type system, but the university system is a joke at this point, and there's no point trying to put lipstick on a pig.
A complete overhaul of credentialing, so that when I have a degree in computer science from a top university and decades of industry experience, employers don't need to independently confirm that I know how to reverse a string or traverse a tree or define what XSS is.
Also, make a time machine so we can make this change 30 years in the past, if you wouldn't mind.