I have no numbers for this, but the idea is that after interviewing for a job, competent people get hired, while incompetent people do not. These incompetents then have to interview for other jobs, so they will be seen more often, and complained about a lot. So perhaps the perceived prevalence of incompetent programmers is a result of availability bias (?).
This theory does not explain why this problem occurs in programming but not in other fields. I don’t even know whether that is true. Maybe the situation is the same elsewhere, and I am biased here because I am a programmer.
That means, in this horribly simplified universe, that the entire world could consist of 1,000,000 programmers, of whom the worst 199 keep applying for every job and never getting them, but the best 999,801 always get jobs as soon as they apply for one. So every time a job is listed the 199 losers apply, as usual, and one guy from the pool of 999,801 applies, and he gets the job, of course, because he’s the best, and now, in this contrived example, every employer thinks they’re getting the top 0.5% when they’re actually getting the top 99.9801%.
Makes sense.
I’m a programmer, and haven’t noticed that many horribly incompetent programmers (which could count as evidence that I’m one myself!).
Do you consider fizzbuzz trivial? Could you write an interpreter for a simple Forth-like language, if you wanted to? If the answers to these questions are “yes”, then that’s strong evidence that you’re not a horribly incompetent programmer.
Could you write an interpreter for a simple Forth-like language, if you wanted to?
Probably; I made a simple lambda-calculus interpret once and started working on a Lisp parser (I don’t think I got much further than the ‘parsing’ bit). Forth looks relatively simple, though correctly parsing quotes and comments is always a bit tricky.
Of course, I don’t think I’m a horribly incompetent programmer—like most humans, I have a high opinion of myself :D
I’m probably not horribly incompetent (evidence: this and this), but there exist people who are miles above me, e.g. John Carmack (read his .plan files for a quick fix of inferiority) or Inigo Quilez who wrote the 4kb Elevated demo. Thinking you’re “good enough” is dangerous.
I have no numbers for this, but the idea is that after interviewing for a job, competent people get hired, while incompetent people do not. These incompetents then have to interview for other jobs, so they will be seen more often, and complained about a lot. So perhaps the perceived prevalence of incompetent programmers is a result of availability bias (?).
This theory does not explain why this problem occurs in programming but not in other fields. I don’t even know whether that is true. Maybe the situation is the same elsewhere, and I am biased here because I am a programmer.
Joel Spolsky gave a similar explanation.
Makes sense.
I’m a programmer, and haven’t noticed that many horribly incompetent programmers (which could count as evidence that I’m one myself!).
Do you consider fizzbuzz trivial? Could you write an interpreter for a simple Forth-like language, if you wanted to? If the answers to these questions are “yes”, then that’s strong evidence that you’re not a horribly incompetent programmer.
Is this reassuring?
Yes
Probably; I made a simple lambda-calculus interpret once and started working on a Lisp parser (I don’t think I got much further than the ‘parsing’ bit). Forth looks relatively simple, though correctly parsing quotes and comments is always a bit tricky.
Of course, I don’t think I’m a horribly incompetent programmer—like most humans, I have a high opinion of myself :D
I’m probably not horribly incompetent (evidence: this and this), but there exist people who are miles above me, e.g. John Carmack (read his .plan files for a quick fix of inferiority) or Inigo Quilez who wrote the 4kb Elevated demo. Thinking you’re “good enough” is dangerous.