6 ms·
The problem with the argument that "Programming skill can't be bimodal because that would be elitist and make me feel bad about myself being an elitist" is that
by belovedeagle 11y ago
The problem with the argument that "Programming skill can't be bimodal because that would be elitist and make me feel bad about myself being an elitist" is that there's a lot of evidence that programming skill is bimodal. Look at fizzbuzz as an obvious, if not entirely complete, example.
Would it make us all feel better if programming skill weren't bimodal? Sure. But a roomful of people clapping at that proposition doesn't make it true.
- vonmoltke 11y ago> Look at fizzbuzz as an obvious, if not entirely complete, example. I am not entirely convinced this is not partially a resume screening and talent pipeline problem. Has anyone ever given Fizzbuzz problems to everyone who applied to a position? If you haven't, have you ever considered that your screening process may be broken in the sense that you are passing too many liars who then bomb the Fizzbuzz portion, but who bump competent people off the stack entirely so you never test them?
- shubb 11y agoI find this idea that there are lots of fake programmers kind of nuts. Presumably, when you do a resume sift, you look for people with either a qualification or work experience. Either they somehow faked it through those, or your test is bad. Fizzbuzz actually tests if you know what % does. Is that critical knowledge for a webdev?
- vonmoltke 11y agoI don't think there are "lots", but I think there are enough to distort the view of the labor pool. Additionally, there is the issue of these fakers staying in the pool much longer and spraying their resumes out more often further distorting the view. As for how they get through the screen, I think they just blatantly lie on their resume hoping to get a company that doesn't do its due diligence in determining if the stated experience is real.
- Kalium 11y ago> I find this idea that there are lots of fake programmers kind of nuts. I don't know about "lots", but there are definitely people out there who claim to be programmers but lack the basic competencies they claim. I've encountered several. A couple of years ago, I was part of a battery of interviews for a candidate who claimed a Master's in CS. Their resume said they had done advanced work in parallelization of video compression. I asked them about it - I wanted to know how they had handled synchronization and locking. The candidate looked at me blankly for a couple of seconds. Then they began, haltingly, to talk about web sessions and logging. We didn't hire the person, but there was definitely some bullshit along the way...
- cheald 11y agoI've interviewed people for programming positions with work experience who had trouble articulating solutions to very simple problems. I don't know that I'd call them "fake programmers", but "bad programmers who lack the ability to reason about code and instead rely on StackOverflow answers to provide solutions to the problems they're faced with" are all over the industry.
- emodendroket 11y agoI'm generating some HTML. I would like to create a new row on every third element. How might I do this?
- DanBC 11y ago> Fizzbuzz actually tests if you know what % does. Is that critical knowledge for a webdev? The point about fizzbuzz is that some people fail it even when you give them a list of functions and how to use them. Finding out whether this is relevant to how they do when actually working rather than in a high pressure interview situation is an open question.
- dbenhur 11y agoThe world of actual programmers is NOT filled with fake programmers. The world of people actively applying for advertised programming positions IS dominated by fake programmers. That's why FizzBuzz is an effective screen. As to your last question, a "webdev" who doesn't understand integer modulus is a fake programmer. Is it critical? I suppose it's not if your grid is never wider than one column and you never want to alternatively style rows in a list or table.
- Lawtonfogle 11y agoIn which case it becomes bimodal in the sense there are people who consider themselves programmers but who do not meet enough skill to be considered one.
- lolatu54 11y agoWe give fizzbuzz style tests to all our candidates. Most fail, but it's not an indicator of experience at all. Some of the quickest to pass just got out of GA and never worked in the industry before. It really tests aptitude at a specific type of problem. Because of this it does not make or break the interview. We also look at their portfolio/code samples as well. After interviewing many candidates I've found the one's who pass our fizzbuzz tests also have much better code. Because of this I'm convinced that aptitude and passion are significantly important to the ability to program. Just grinding your way through CS classes will not a programmer make. I should add we let the candidates use google, so even if they don't know modulus or whatever, they still can prove their ability to look up things.
- sokoloff 11y ago> Because of this it does not make or break the interview. You mean that you continue the interview process for a coding position with someone who failed FizzBuzz algorithmically/structurally (not for a trivial syntax error)? At a prior game company we gave what I felt was a FizzBuzz-level task on paper: in C, given a string of characters representing a hex number, return the long it represents. (basically, write strtol(input, NULL, 16); without using strtol) I was appalled at the number of people who couldn't come close (not subtle bugs or mis-handling case issues, but rather: show someone else their code and have that person guess what function the person was trying to write). When the Fizzbuzz blog post(s) came out, representing a much simpler problem, I couldn't believe that someone would bother to shower and leave the house to interview for a programming position and be unable to do Fizzbuzz. So I gave Fizzbuzz to a few candidates, often in a joking sort of way (so as to not offend any qualified candidates). Results were predictably shocking and dismaying. It's a problem simple enough that you either can do it or not; there's precious little middle ground. (As other posters mention, these are the people that interview over and over, so hopefully the actual employed population of programmers is overwhelmingly able to do it.)
- smitherfield 11y agoI think you can break it down further into four groups. People who, when presented with FizzBuzz on their first day of learning programming would: (1) Not even try, because it's "too confusing." (c. 90% of the population). (2) Be able to finish only with significant assistance from others. (3) Be able to finish on their own through trial and error. (4) Finish quickly, and wonder why they were asked to solve such a boring problem. Note that programming ability is a function of interest in the subject as well as intelligence. I'd say that most people who go into programming are somewhere between groups 2 and 3, while most who end up being successful at it in the long term are somewhere between groups 3 and 4.
- lampe3 11y agoso lets say if i solve fizzbuzz quickly iam clever. i have solved it but in a shitty confusing way but i have solved it. but someone who solves it through trial and error and learns new stuff about what can go wrong and how it works is not so clever? coding is always trail and error because you cant think of all the possibilities and through error you learn and become better so yeah give me more of 3 then of 4
- Lawtonfogle 11y agoBecause the fast solver has moved on to a harder problem and is learning more complex new stuff.
- lampe3 11y agono the fast solver has solved the problem and is doing nothing ;)
- Kluny 11y agoGroup 1 will never be programmers, group 2 is where I fell the first time I tried it. Group 3 probably have some training and group 4 probably have some programming related experience, or maybe they are superheroes. At any rate, anyone in groups 2-4 can become excellent programmers if they apply themselves and get the help they need. They can be plotted on a programmer competency bell-curve. Group 1 are the people who will never learn to code because they refuse to try. They probably make up the first hump of the perceived bi-modal competency graph. But they were never really in the running at all. I can think of at least 2 people in my 30-person cohort in college who did not know how to code, and would fall in the first hump of a bi-modal competency graph, despite having passed 2 years of programming courses. So my theory is that the second hump is a normal bell curve, and the first hump is people who won't try.
- taeric 11y agoIsn't this akin to claiming that drawing is bimodal because most people can't draft a portrait in an interview. Or, worse, that there is an element of gender influence in ability because, "otherwise there would be more female programmers." I certainly agree that there is likely a gulf between good and great. Probably another above it. I'm curious to know what actual evidence there is.
- belovedeagle 11y agoI imagine that drawing is probably bimodal too; it probably just has a wider bell curve on the right...
- exstudent2 11y agoDrawing seems like a great analogy because it definitely is also bimodal. Some people can draft a portrait in an interview and those people would be the ones you would want to hire to be your portrait artists.
- taeric 11y agoThis cuts to two important points. First, you will be hiring as if it was bimodal. The second point, though, is more whether or not it actually is bimodal, or it is just taught into a bimodal distribution? That is, is it intrinsically this way, or is that a biproduct of how society values and teaches it?
- exstudent2 11y agoYes, I will be hiring bimodal and it's worked very well for me. Whenever I relax my process and hire someone I'm not sure is a great developer I always regret it later when they can't perform and their work brings down others. The more experience I have, the more I stick to working with the best people I can. There are just too many ways to fail and having a team of experts is the best mitigation you can have against it.
- taeric 11y ago
- dataker 11y agoIf one thinks he will never excel because there's nothing to be excelled, I doubt anyone would wanna do that.
- speeder 11y agoAs someone that works in the game industry and interacts with programmers and artists (not only graphical art, I am also counting here writing, music, etc...) daily it is BLARINGLY OBVIOUS that both skills require certain brain patterns. Although there are some rare people that are both great programmers and great artists at the same time, usually the person is a programmer, or an artist, they might know skills of the other side (example: I am a programmer, but I have a design bachelor's degree, and know how to use lots of artists tools and correct art made by others, but I would never call myself a good artist) but they are clearly one thing, not two. This usually is also reflected in their behaviour, for example programmers frequently act in more logical or common sense manners (or sometimes in a extreme logical manner that go against common sense, but still logical), and can be viewer in some ways as "boring", and tend to prefer things rooted in reality. The artists are not uncommon to do things that are unexpected, or to like outlandish stuff, for example when playing an RPG with extensive character customization you will usually see the programmers min/maxing the stats or trying to go for realistic stats, and outfit the character in realistic clothes, or the best equipment in terms of stats. Now when you look at an artist character they frequently are different, for example you might see a orc magician, or a space marine with low accuracy stats, high charisma and that paints his armour pink with yellow dots. Then when we get to real work, the need for talent is obvious: Innate programmers frequently make boring art, IF they can make good art at all. Innate artists sometimes can make some code, but usually it is badly engineered code (prone to bugs and breaking), and that is, sometimes, most artists can't code at all, you can try to teach them all you want, and they just don't understand, even those that might grasp the syntax still end never getting past basic logic. Of course, sometimes you find some people that are exceptions, for example the Falanghe brothers: Felipe Falanghe is the creator of KSP, he, and his twin brother, studied with me at university, they are clearly artists, during university their highest grades were always in pure art related classes, they could make amazing drawings, and they had a band and were both fairly good singers and guitar players, yet both of them decided to learn Flash and Unity coding, and although their code was frequently broken, hard to read, confusing and had huge amount of memory leaks, clearly it was possible to do something with it, since KSP is a success, and Felipe Falanghe started coding it by himself in Unity.