Live data from Hacker News

The programming talent myth

lwn.net

51–60 of 354 posts

Re: The programming talent myth

#51

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…

I normally stay out of these debates, but as a teacher, you may be in a unique situation to appreciate this view point: How about "learn to code"=="learn to play the piano" == "learn to paint"?

I don't think that you learn to code "just in case." I learned because it let me automate some things and later, let me make my own games. It turned out I've been good enough to get paid for my level of "talent," but I'd still be happy I learned, besides the joy of the mental excercises, I've also been able to automate alot of (ussually self imposed) challenges in my life.

I also learned to play the piano in my teens. I'm a sucky digital-artist as well. It was obvious I'd never be a concert pianist or master painter or even get paid for either. It baffles me that people can go through life without being able to play an instroment or paint, but I didn't learn "just in case"; I've been making use of both for my own enjoyment and unpaid sharing with others.

I think a great many of your students who lack talent will get great use out of the ability to automate processes on a computer and maybe gain life long enjoyment, even if they don't have the presupposed talent.

Re: The programming talent myth

#52

Earlier quoted context omitted.

I don't think it is much of a stretch to assert that the vast majority of code in the world that accomplishes important business goals is not "high performance" and in most cases doesn't need to be "high performance". So this is not really addressing the main point of the comment it is replying to.

> medical devices, air traffic control, credit card processing, phone switches Those are all high performance areas of coding that would require great skill to execute correctly. Aside from medical devices, they all require a lot of concurrency and real-time processing in the case of air traffic control and phone switches. They are practically the definition of high performance programming.

No, if there is a definition of "high performance" in colloquial use, it's number crunching on a supercomputer e.g. weather forecasting and so on. Guess what, thats a very important application of computing, and once again, rock stars are notable only for their absence.

Re: The programming talent myth

#53

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…

> 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 learn to become the technical lead of a software firm that revolutionizes the industry" or "anyone can learn to be an Olympic sprinter" or "anyone can learn to be professional novelist".

But programming is, IMO, a bit like writing (though certainly not as foundational) in that you don't have to be a professional programmer to get professional benefit from having some understanding of programming, just as one doesn't need to be a professional writer to get professional benefit from writing (even piano is a bit like this, though the domain in which it is beneficial is somewhat narrower and definitely centered in a different place than where programming is beneficial.)

Re: The programming talent myth

#54
post #31

>>Part of the problem there is the lack of a way to even measure coding ability. "We are infants in figuring out how to measure our ability to produce software", he said. What are our metrics? Lines of code—what does that measure? Story points? "What even is a story point?", he wondered. Indeed, what is programming talent? What is a 'good' programmer? What is a 10x rock star? These notions are similarly ill defined.…

I suspect it will always be a largely subjective measure mostly determined by the respect or accolades of one's peers or the satisfaction of one's target audience/customers. I think StackExchange's "reputation" system is probably the most accurate discrete measure available.

Reputation on SE is very, very dependent on the amount of time you put in and your choice of which questions to answer. It's also somewhat zero-sum in a crowded field, as you need attention to get upvotes.

(I should know, I'm one of the 50 people on electronics.stackexchange with more than 10k rep, and no formal qualifications in electronics)

Re: The programming talent myth

#56
post #49

Earlier quoted context omitted.

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

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

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

Re: The programming talent myth

#57

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

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

Re: The programming talent myth

#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 confusing the two questions is a significant error. It is entirely possible that programming talent is strongly bimodal and that 99% of people can learn to program.

I've been programming since I was 11 and have interacted with other programmers all through high school, college, and now working life, and at every single point of my career -- both academic and professional -- I have seen that some people are drastically faster and better at programming than others (but the others are still capable of learning). In introductory programming courses at college, I've done labs with very smart people who took 10x longer to figure out the lab than some others. They figured it out, but they struggled a lot compared to others, despite being very distinguished undergraduates (Goldwater fellow, etc.).

At work, we've brought on people with 10 years of experience who were 10x slower than someone else with 2 years of experience.

At school, there were master's degree candidates who were significantly worse than many undergraduates despite working just as hard and longer.

I could go on and on and on with examples. From my own life the evidence is simply overwhelming that programming talent is bimodal.

Re: The programming talent myth

#59
post #32

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…

>> 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." So learning to code is equivalent to being a master painter or concert pianist? Which both are amongst the top 1% of their field probably. Anyone can learn how to paint or play a piano, the level they'll achieve won't be the same everyone, but anyone can do…

I can't speak for the painting side of things, but no, not everyone can learn how to play a piano. For one thing, left-hand / right-hand independence isn't a universal trait, and isn't something that can always be "learned" (there's a reason why chord / melody books are so popular). Finger independence is even trickier. Sight reading, relative (or even perfect) pitch -- these are _talents_ that make a good performance possible that often can't be learned by those who lack the talent.

Designing algorithms, debugging, interfacing with hardware, finding efficiency -- the myriad of things that go with programming, these things can be done by a layperson the same way a wealthy hobbyist pianist can plunk out "Music Box Dancer" on their $10,000 grand piano -- but will they be done well? Will the hobbyist pianist give a great performance? They might be happy with it, and that's fine. But will they get to Carnegie Hall? No?

I'm not saying the hobbyist pianist shouldn't try any more than I'd say anyone who wants to write a program shouldn't try -- but the article suggests there's no real benefit to "talent" and that's just silly. There _are_ rockstar programmers, and we should acknowledge them, just as there are great concert pianists. And everyone should be encouraged to try both piano and programming. But not everyone will be successful at either or both of them.

Re: The programming talent myth

#60

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…

The bimodal distribution that people talk about seems like a dramatic simplification of a series of continually developing sub-competencies.

So, the only real weakness I've found is when someone considers themselves to be done learning. At that point, they are basically done being a "programmer".

Post reply on HN