Live data from Hacker News

The programming talent myth

lwn.net

161–170 of 354 posts

Re: The programming talent myth

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

That's pretty much my story too, although I didn't dig too deep because I got bored. Programming was so "trivial" for me I skipped on a Computer Science major and went with Electrical Engineering so I could learn something I didn't already know.

You think folks who can't solve "trivial" problems are afraid. I disagree. They just "don't see it" the way we do. It's the difference having talent gives you.

Re: The programming talent myth

#162
It seems plausible to me that the distribution of innate programming ability is a bell curve, but the distribution of programming effectiveness is bimodal. The missing ingredient of course is experience and education. It's similar to an athletic skill, such as the high jump. If you plotted the maximum height that a random assortment of individuals could jump, the resulting graph would be bimodal: the top clump would be those who can do the Fosbury flop and the bottom clump would be everyone else. The innate ability to jump follows a bell curve distribution, but unless you know that trick, you'll end up on the lower clump.

Re: The programming talent myth

#163
post #162

It seems plausible to me that the distribution of innate programming ability is a bell curve, but the distribution of programming effectiveness is bimodal. The missing ingredient of course is experience and education. It's similar to an athletic skill, such as the high jump. If you plotted the maximum height that a random assortment of individuals could jump, the resulting graph would be bimodal: the top clump would…

That would be true if programming were just one thing.

Re: The programming talent myth

#164
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)

I think there's also an in-between for Green and Good, which is Effective... There are a lot of tasks that don't need an elegant solution, only a working one. If your solutions are broken up pretty well, where a given piece can be updated or rewritten without having to refactor everything, it makes that easier, and makes a project work better with multiple developers of varying skill.

Re: The programming talent myth

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

The problem with relying on personal anecdotal evidence is that it is inherently biased. The only way to truly answer the question is find a way to reliable measure coding skill. Otherwise you find yourself making the same mistake you think Jacob is making. Using faulty data to back up an assumption.

Part of the thrust of Jacob's talk was that there is probably a whole class of developers out there who would be just as good as the rest of us but they can't get entry due to an assumption that Coding is an innate skill and not a learned one. He even gives examples like the lady who had written a working distributed GIS processing pipeline but didn't think she was a Coder.

I'm a little like Jacob in that people automatically assume I'm a 10x coder. I have a pedigree from Google. My github and bitbucket accounts are full of small libs and projects I've played around with. My code has been used by CouchDB and the list of languages I have at least surface knowledge about is huge. There is exactly one reason for all these qualifications though. I've been in the industry for more than 10 years and I was a hobbiest programmer for several decades before I was in industry. When I started learning I was doing gw Basic. My first "real" programming languages was VB6. I was a stereotypical below average programmer. I didn't know a linked list from a hashtable. All I needed to turn into the "ninja" people see when they look at me now was time.

I've met a lot of people who could absolutely reach this same level. And 90% of those people with potential resist trying because they think "I'm not really a coder". The myth really does need to die.

Re: The programming talent myth

#166
post #69

Earlier quoted context omitted.

Is speed really the most important metric?

It's not just speed. It's everything. They're not just faster -- their code is cleaner, faster, more elegant, and better according to most metrics you could think up.

A measure of the elegance and cleanliness of code is so arbitrary in our industry that it's useless as a metric.

Faster is concrete enough to be useful though.

Re: The programming talent myth

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

It's all very interesting. I believe programming is less obscure, less challenging for the senses thus easier to make progress in. In the end not everyone will be able to invent a new paradigm, or even solve hard problems in code.

I still don't understand music, but I've been through long plateau followed by big insights. Same as in programming, some ideas were out of reach for a long time.

Doing things in time is already music. What most people want is a tiny bit of complexity, overlaying melodies and rhythmic patterns to tickle our senses. But to my deepest understanding, it is mostly the state of flow where you feel locked into the invisible energy of music. Maybe it's a high sensitivity between your interactions and the actual waves caused by your instrument, and an inner knowledge of how to keep that vibration moving without choking (think taking successive perfect curves with a car).

Re: The programming talent myth

#168
post #152

I've been at this twenty years, and I have no doubt that most people can learn to do it, and some people are just radically better at it. I'm not sure why those should be either mutually exclusive or controversial points of view. Where the passion part comes in is that most people, the vast majority I would think, just don't want to do this for a living and never will. We're a little like medical doctors in that resp…

> To be a full-stack developer these days requires so much more than the ability to create a working program. The big picture is very big, it takes many years to get a really sound grasp of it This is a major point that tends to be overlooked by a lot of people. There's a big difference between just "coding" something to make a little feature work, and actually building an architecture that can support many kinds of…

> Many people can't seem to make the jump to the "bigger picture" version of programming

TBH I am not sure there is even a viable "smaller picture" version of programming. Sure you can write some simple scripts and compile some C++ or Java or run some python. But I have to think 99.99% of what you could actually make a living doing would require knowing a stack at least from the database up to the browser or desktop.

Re: The programming talent myth

#169

Earlier quoted context omitted.

From personal experience, speed has very little to do with productivity. Productivity is a function of knowledge and experience. The most productive programmers I've met almost always had enough experience in what not to use. They have a clear focus on the simplicity of their code and their ability to reason about it. They understand the problem and the hardware as well as the language in a very detailed manner. They…

> They pick the wrong data structures, think about code first and data is an afterthought. It makes me so happy to read this. Data in the grand scheme of things is vastly more important than code. "picking" data structures is a luxury in many cases and thus data structure often dictates the structure and expectations of your code. Data usually outlives the code. Data is effectively the earth in your code farm. Take c…

According to SICP data and code are the same! Interesting concept anyway.

http://stackoverflow.com/questions/355406/concepts-that-surp...

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html...

Re: The programming talent myth

#170
The story mentioning the woman who did not consider herself a "real programmer" is obviously disturbing. But that is not the consequence of believing in a bi-modal distribution of programming talent. Rather, it is the consequence of believing in a bi-modal distribution AND believing that gender also fits that distribution.

The bi-modal distribution of talent is not a myth nor is it intrinsically harmful. However, it can be extremely harmful when misinterpreted to mean gender, race, etc. The author is subtly conflating the two and in the process doing more harm than good. This does not help women, minorities or other under represented groups.

Post reply on HN