Live data from Hacker News

The programming talent myth

lwn.net

121–130 of 354 posts

Re: The programming talent myth

#121
post #8

That programming is a talent is not a myth, and while my life is currently devoted to developing a platform to encourage more people to learn the basics of computer science, I will certainly never say "anyone can learn how to code" any more than I'd say "anyone can become a concert pianist" or "anyone can become a master painter." Good programming is an art, and requires talent on the part of the programmer. There's…

to be a great concert pianist it is 5% talent 95% hard hard work... If you dont train your fingers every day and if you dont play for at least 1 hour everyday since your 10 or younger you wont become a great concert pianist... you can say the same for coding. it is 5% talent but the rest is coding coding coding coding... If you have talent the start will be easier but at some point talent wont help anymore just study…

I disagree with this. I think natural talent is what allows you to pass the "filters" from better tutors, people which just wont train you unless "you've got it"

Re: The programming talent myth

#122

My experience totally contradicts this. I am a biz guy but I have been privileged to work with a handful (literally, about 5) developers who are not just 10x better than average but 50x or 100x better. Its like denying Black Swans - rare is different from non-existant.

I won't argue against that but I have a problem with biz guys who try to evaluate what kind of a developer someone is.

I'll not judge that you don't have knowledge about the field or about code, so don't take this personally, but in my experience I've seen far too often some biz guys praise developers who are sloppy, developers who code unmaintainable stuff and which biz guys loves because they're always delivering, much of the time ahead of the schedule.

But when you tried to bring a team around what they built it was almost always code that was not able to be maintained by a team. When the original developer was long gone you had a team of 5 pretty good developers trying to figure what the hell is happening with that code, and biz guys demanding to change the team because the 50x developer had done so much in less time.

As I said, I'm not saying this personally as I don't know your background but if we are throwing anecdotes that's one I have from the top of my head, some praised hyper-productive coders are that way because they take shortcuts and some don't even know they've done it. I just think that the occurrence of really good and smart and productive developers is so low that I've yet to remember more than one that I've worked with in the last 10 years, I've worked with great people but I can remember only one who I can put in the bucket with a "great soft and hard skills, hyper productive and smart" label.

Re: The programming talent myth

#123
post #71

Earlier quoted context omitted.

> 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 wh…

I 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?

> 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...

Re: The programming talent myth

#124
post #94

Earlier quoted context omitted.

Been screwing with computers since 9 or so, and programming since 11 or so. I'm now about 4 years into my professional career and usually get the typical "amazing programmer" remarks, that I'm fast, smart, good code, beyond my years, etc. I think that a lot of things go into it. First, practice, practice, practice. I spent waaaaay too much time in high school writing/designing/building projects. By the time I hit uni…

> Some folks look at a task like "build a web application" and seize up at enormity of the task. Others, start breaking down the problem into it's component parts. This can be learned by anyone!! This is not a binary idea. The more "complete unknown" concepts in said task the more likely anyone is to seize up - good programmers (or basically any engineer) are just more practiced than most at overcoming a lack of know…

I guess the ability to overcome the urge to seize up is, itself, something one needs to acquire. There is little in my life that I'm afraid to attempt. Investigate a problem and break it down into its component parts, repeat ad nauseam. I know too many folks who just throw their hands up and don't even tackle it.

Now you also need to recognize when you're in over your head (in terms of knowledge, in terms of capital, etc). I could attempt many car repairs myself, but the time and capital required is typically prohibitive. Of course one would have to first make an attempt on the problem to make the analysis.

Re: The programming talent myth

#125
post #114

Earlier quoted context omitted.

> I will certainly never say "anyone can learn how to code" any more than I'd say "anyone can become a concert pianist" I would certainly say "anyone can learn how to code" in the same way that I would say "anyone can learn how to write", or "anyone can learn to run", or "anyone can learn to play piano". I wouldn't say "anyone can learn to become a concert pianist", in the same way that I wouldn't say "anyone can lea…

>anyone can learn to play piano Is there a belief that anyone can learn to play the piano? I can't. I struggled for many years trying to learn various instruments. I failed miserably no matter how hard I tried. I tried and I tried, I really wanted to be able to play an instrument, any instrument, but I was unable to. I'm not dumb, I am a programmer, but music was just something my brain couldn't comprehend. Of course…

I do believe that anyone can learn to play the piano, although I would admit it's harder for some than for others. A lot of it has to do with finding the right teacher though.

What exactly do you mean by you were unable to? People have different ideas of what it means to be able to play the piano.

For classically pianists, it just means you can read notes and play the corresponding notes. I imagine anyone could memorize what notes correspond to what keys and, as long as they are physically capable, be able to press down on those keys. You might not be able to play any arbitrary piece, but I think most people agree that just because you can't play Rachmaninoff Piano Concerto 3 doesn't mean you don't know how to play the piano.

Re: The programming talent myth

#126
post #47

Earlier quoted context omitted.

That's not the point of the article--it's not that there aren't some people with insane intrinsic talent, it's just that the majority of people fall on the below-average - average - above average distribution, and that you can create plenty of great stuff right in the middle. The other point is that the "concert pianist" and "master painter" are damaging stereotypes for the development industry--almost no one is Moza…

This is a critical subtlety to this discussion that is never mentioned as evidenced by the comments in this thread. Just like "piano player" is a continuum, so is programmer. I will never be able to work at Google because I lack the requisite skill set in the same way I'll never play Carnegie Hall because I'm not good enough. But that doesn't mean I can't provide quite a lot of value to businesses who don't require t…

I think the main frustration is that the required minimum level for developing software in a team really is comparable with the skills required for working in a studio orchestra - not only at google but actually for working on any system above a certain size. Maybe not world class, but certainly rather good. In both cases, some "intrinsic" talent is probably required, and it helps to have a rock star or two to really get the team/orchestra to deliver.

One other factor is that most systems and programs of a certain size are actually quite hard to work with - the "average" may not be enough, driving costs and unnecessary complexity until the system spirals into it's own collapse and eventual replacement.

One problem is that while anyone can tell if someone is any good at playing the piano, it will probably take 6 month or more to discover who is 30x more productive at developing and maintaining software, or who will in fact destroy more value than they contribute in the long run.

It's safe to say that developing software requires more than the average level of "talent" that is available in the population, and possibly also among the profession.

Re: The programming talent myth

#127
> This belief that programming ability fits into a bi-modal distribution (i.e. U-shaped) is both "dangerous and a myth". This myth sets up a world where you can only program if you are a rock star or a ninja. It is actively harmful in that is keeping people from learning programming, driving people out of programming, and it is preventing "most of the growth and the improvement we'd like to see", he said to a big round of applause.

How does he know that bi-modality is not true? These are questions we should ask and study rather than things we should just assume are myths. Ignorance is not the answer.

Re: The programming talent myth

#128
post #58

My own experience just does not agree with this at all. First, I think we have to distinguish between two ideas here: * The first is the question of whether anyone can learn to program. I think that for the most part everybody can, just like for the most part everybody can learn high school calculus. * The second is the question of whether programming ability is bimodal. This is not related to the first question, and…

I agree with most of what you said, except that perhaps the distribution is a little more complex than bimodal.

Perhaps it's multi-modal, with various discernible leaps in performance. (There's a big gap between "Green", "Good" and "Rock Star", so I think that there's at least 3)

Re: The programming talent myth

#129
post #58

My own experience just does not agree with this at all. First, I think we have to distinguish between two ideas here: * The first is the question of whether anyone can learn to program. I think that for the most part everybody can, just like for the most part everybody can learn high school calculus. * The second is the question of whether programming ability is bimodal. This is not related to the first question, and…

Is speed really the most important metric?

Speed in every industry, including programming, is part of the sauce not the special ingrediant as far as I've seen.

All the way to working a line in a factory, the speed of the line is constant but the accuracy on top of speed is what sets the best apart.

Anyone can go fast and make mistakes, those who have figured out a method that works for themselves and keeps up with the pace (or keeps ahead) and puts out a high quality product at minimal mistakes is what stands out.

Re: The programming talent myth

#130
>But that would mean that programming skill is somehow distributed on a U-shaped curve. Most people are at one end or the other, which doesn't make much sense.

But this is exactly the case! It's why Fizz Buzz exists: to determine if you're on the left leg or the right of the U-curve. (Or similar curve wherein people "suck at programming" or that they "rock at programming", without leaving any room for those in between. Everyone is either an amazing programmer or "a worthless use of a seat" [in a programming job]).

Why can't we accept that this is the nature of progrmaming?

Jobs wasn't a coder, and was on the left side of the U. Wozniak was and was on the right side.

Brian Chesky (airbnb co-founder) can't code, is on the left side of the U. Nathan Blecharczyk (another airbnb co-founder) can.

There is nothing exceptional about this distribution. You can have a ton of vision and product input, design input (as Brian did) without being on the right side of the U as a coder yourself.

On the other hand, perhaps all coders on the right side of the U are all awesome, which is why they command six figure salaries sooner out of college than other professions take to get a terminal degree in their field.

Post reply on HN