Live data from Hacker News

The programming talent myth

lwn.net

21–30 of 354 posts

Re: The programming talent myth

#21
>>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 can think of at least 3 formulations of 'talent':

1. A developer who can craft an exquisite solution to a problem using the patterns of the domain and/or the idioms of the language.

2. A developer who puts in Heroic efforts to produce a lot of code in a short amount of timing, to meet business objectives.

3. A developer who is 'smart and gets things done'.

One can poke holes into any of these formulations; is the exquisite solution delivered in a reasonable amount of time? Is the quickly delivered code maintainable and extensible or a maintenance nightmare? Does the smart and get things done guy leave a spaghetti trail in his wake?

In the end, I think we've all noticed that some people tend to simply accomplish more, with less issues and drama than others. Is this real? Or simply navel gazing? I tend to think it's real.

Edit: spelling

Re: The programming talent myth

#22
post #6

Earlier quoted context omitted.

99% of the software that actually matters - medical devices, air traffic control, credit card processing, phone switches, you name it - is written by people who work 9-5 and don't think about their jobs outside work. If all the websites programmed by "rock stars" shutdown overnight, the next week everyone would have forgotten they ever existed.

Having worked on several systems like that, I can say there are definitely passionate developers behind any serious code. An "old guy" I know that has lead development on several extremely high volume payment processing systems has the most extensive personal CS library I've ever seen. No one is writing high performance code without deep knowledge of what they're doing.

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.

Re: The programming talent myth

#23

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…

If one thinks he will never excel because there's nothing to be excelled, I doubt anyone would wanna do that.

Re: The programming talent myth

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

It's not inaccurate or offensive to say that some people are more naturally gifted in some areas than other people. It's certainly possible that with 10,000 hours of practice the average person could become competent at just about anything, but there will be outliers on both ends of that spectrum.

Re: The programming talent myth

#25

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…

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

Re: The programming talent myth

#26
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 agree that practice is integral to being successful as a concert pianist (I am a pianist also so I didn't make the comparison casually), but to give a truly inspiring performance (and not just be a human player-piano) requires much more than just memorisation and repetition. It requires creativity and instinct as much as skill.

Programming is similar. If you were to boil programming down to simply "engineer a list of commands to make the computer do X" then sure, most people can do it, with practice and documentation. But to make the computer do X with efficiency, or to make the computer do X in a new and novel way -- or even discover that X is the wrong way to go and the computer really should be doing Y -- also requires creativity and instinct, just like giving a great performance at the piano.

"Greatness does not come from programming by rote."

Re: The programming talent myth

#27

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…

A quote from one of my favorite films sums this up nicely.

"Not everyone can become a great artist; but a great artist can come from anywhere." -Anton Ego from "Ratatouille"[1]

[1] full quote: http://www.imdb.com/title/tt0382932/quotes?item=qt0465220

Re: The programming talent myth

#28
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 was that I was so sure that programming was a magical ability that I didn't have because I compared myself to people who had been writing code since their childhoods, and this created nerves which made it hard to really think about solving these problems instead of feeling helpless when I didn't immediately 'know' their solutions.

I powered through that and ended up doing very well in my CS program at Northwestern, and now am a professional software developer that my peers consider to be a 'rockstar' programmer, although I still contend that I am mediocre and there is always SO much more to learn. At my job I frequently mentor our college interns, and many of them when they come into the job would be laughed out of the room by 'good' programmers, but after a little bit of mentoring and consistent daily practice on the job, in 2 months they emerge 'rockstar' programmers themselves, and in reality they are still probably about average.

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.

Re: The programming talent myth

#29

Earlier quoted context omitted.

Having worked on several systems like that, I can say there are definitely passionate developers behind any serious code. An "old guy" I know that has lead development on several extremely high volume payment processing systems has the most extensive personal CS library I've ever seen. No one is writing high performance code without deep knowledge of what they're doing.

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.

Re: The programming talent myth

#30
post #6

Earlier quoted context omitted.

99% of the software that actually matters - medical devices, air traffic control, credit card processing, phone switches, you name it - is written by people who work 9-5 and don't think about their jobs outside work. If all the websites programmed by "rock stars" shutdown overnight, the next week everyone would have forgotten they ever existed.

Having worked on several systems like that, I can say there are definitely passionate developers behind any serious code. An "old guy" I know that has lead development on several extremely high volume payment processing systems has the most extensive personal CS library I've ever seen. No one is writing high performance code without deep knowledge of what they're doing.

That is true. But also noone is writing critical systems staying up all night drinking Red Bull. Look at other engineering disciplines. Where are the bridge and dam building rockstars? Where are the nuclear power ninjas?

I wonder what "rock stars" are going to do when they discover other uses for their time, hobbies, families, sports, travel and so on. Resign?

Post reply on HN