Live data from Hacker News

The programming talent myth

lwn.net

131–140 of 354 posts

Re: The programming talent myth

#131
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…

One strong indication that programming talent is not bimodal is only bad engineers (programmers in the solder language) see the world as strictly binary. As I get older and gain more experience its astounding how much of the world does not operate in a simplistic pass/fail manner instead has an optimum operating point at "muddle thru mode". Or another way of putting it is only a really bad architect/designer relies on eternal perfection, or attempting to see the world thru those very limiting glasses leads to lots of fail.

An interesting literary or fine arts comparison is the assumption that the quicker something is made, the better or more valuable it is. Obviously a xeroxed page from a Hello Kitty coloring book is inherently better than an original dutch masters painting.

Re: The programming talent myth

#132

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…

What is the point of stating that though? It's pretty hard to know ahead of time and talent is rarely worth more than sheer effort. Not only that but I would say technical lead of a software team that revolutionizes the industry requires many other skills besides writing the best code. In fact, people skills probably are far more important.

> What is the point of stating that though?

That, contrary to positions that portray programming as a skill only valuable to those who would be able to use it to become the equivalent of an exceptional artist, that the number of people who could derive benefits (professional/financial -- not to consider other personal benefits that might accrue) from learning programming is quite large.

> It's pretty hard to know ahead of time and talent is rarely worth more than sheer effort.

I'm not sure that there is a clear line between talent for a particular task and the ability to maintain concentrated effort directed at it, nor do I think that it is easy to pull apart the effects of each. But, sure, I'd agree that you can't know who can benefit the most from lots of things (programming included) ahead of them trying it.

Which is another strike, IMO, against those who would dismiss efforts at universalizing exposure.

Re: The programming talent myth

#133
> The truth is that programming isn't a passion or a talent, it is just a bunch of skills that can be learned

I think people who makes these statements are usually misguided by their lack of perspective: talented people have a hard time understanding how someone else can't do it when "it's so easy"

One example of this is Bill Gates driving Microsoft to commoditize programming ("I can do it, it's easy, therefore anybody should be able to do it").

Re: The programming talent myth

#134
post #94
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…

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…

"or that 10x chef"

I like the chef example. I know from past discussions here that there is a large contingent of HN posters who are terrified of their own kitchen, which is a shame.

Re: The programming talent myth

#135

I couldn't agree more. When I first started out studying CS I was constantly afraid that I wouldn't be able to cut it because I didn't always immediately see how to solve algorithmic problems or write code that would work. I got bogged down in thinking about programming as a problem of learning syntax, and missed 'obvious' things. I couldn't reverse a string or write FizzBuzz and in fact part of the reason for that w…

>Most of the 'bad' programmers many of us come into contact with are just farther behind on their journey to being great software developers, and may only be as bad as they are because of fear to ask questions and be judged by those who think there are only 2 types of programmers.

In my experience I'm not so sure about that. I've meet (and worked with!) bad programmers very much my senior. After working with them I know why they are bad - they don't learn. Even with asking tons of questions and having their work critiqued constructively. I don't know why this is but I've observed it a few times. It seems some small subset of people, no matter how much they do something just don't get better at it. They spend 20-30 years writing software like an amateur who just learning. Someone I know said about this - "experience isn't a measure of time spent doing something."

Re: The programming talent myth

#136
I think in small organization you might need a lot of talent, but once organizations (or projects) get bigger, you need process over talent and that, well, also means good management. There are things you can do with a small group and things you can only do with a bigger group. I guess Django is at a point where it's big enough that it can take advantage also from the less talented coders. Maybe, and I am wild guessing here, part of the issue comes when startups grow and still look for the 0.1% talents, when at that size that can easily live with the 40-50%.

Re: The programming talent myth

#137
post #46

I couldn't agree more. When I first started out studying CS I was constantly afraid that I wouldn't be able to cut it because I didn't always immediately see how to solve algorithmic problems or write code that would work. I got bogged down in thinking about programming as a problem of learning syntax, and missed 'obvious' things. I couldn't reverse a string or write FizzBuzz and in fact part of the reason for that w…

On magical ability: there's a joke image going around which tells you how you can easily learn to draw an owl. http://knowyourmeme.com/memes/how-to-draw-an-owl 1. Draw two circles. 2. Draw the rest of the owl. This is a common problem in art, music, sport and programming - you have an expert trying to teach newbies, and they say " just do this". The newbies have no idea how to begin to do it and the expert knows it s…

I find that it's commonly best to learn from someone not too far past your own ability.

My father is a very talented pool player, but he was not the best teacher until my own skill became pretty considerable.

He's so far removed from the things that are important to beginners. He says "you have to hit that shot with a medium-power, really good draw stroke." They have no real idea what medium power is, and no idea what a stroke really is, and possibly can't draw the ball.

It's possible he's just a poor instructor--that's probably not very related to his own playing ability. Some people can convey complex ideas in a very simple manner, and I think they make the best teachers.

Re: The programming talent myth

#138

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

Especially if one don't even define what is the exact quantity measured. IQ is a normal distribution by definition, (IQ-100)^(1/3) is "bi-modal", it's just a simple transformation and both quantity correlates (supposedly) with the vague term "intelligence".

The question is not in bi-modality though, it's whether you can go from the left side to the right or the middle over time or you should have been born as a rock star.

Re: The programming talent myth

#139
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…

> 99% of people can learn to program

A good sixth of people are nearly functionally illiterate. I'd say well less than a third of people could ever write a real program.

Re: The programming talent myth

#140
Programming talent isn't bimodal, in fact it isn't a question of traditional talent at all.

There are only two levels of programming ability: "Bad" and "Good Enough". In all but the rarest of edge cases, everything else is a matter of preference. You think that someone's code is elegant, simple, clean, optimized, etc? That's great, but only other programmers might care about those things. The only question that the majority of people care about is, "Does it work?"

Obviously code can be written so poorly that it causes noticeable performance problems, or doesn't work at a scale past the initial requirements. But that falls under the "Does it work?" question. Basically if I'm using it and it isn't annoyingly slow, whoever wrote it was "Good Enough". I don't care if they were a l33t 10X rock star ninja or some guy who just finished a "$language For Dummies" book.

It is genuinely cool to see code that is well designed and well written. And doing that consistently does require the innate talent of a special mind. But let's not confuse elegance with doing the job. Doing the day in day out work of programming is like being a journalist: the most important thing is getting the facts straight, not writing something pretty. The truly talented can do it with the rhetorical flourish of a poet, which is awesome, but not required.

All that most people ask of code is that it's good enough to do whatever it's supposed to do. If we want to turn it into a poetry contest then it's definitely a bimodal distribution, and most of us will end up on the wrong end of the curve.

Post reply on HN