News for hackers. Stuff that matters.
Re:Why Do Some People Learn Faster? by tpatke on Thursday February 23, 2012 @11:31AM (#3625513)
I think about Spolsky's post on programmer productivity quite often [1]. I think the most interesting part of the post is when he says, "The mediocre talent just never hits the high notes that the top talent hits all the time." Obviously, I wonder if I am a programmer who can hit the high notes and, if not, what it will take to get there.

When I read a post like this, I try to apply it to making myself a better programmer in the "high note" sense. Trouble is - it just doesn't apply (and I am a huge fan of Dweck's work). This article is one for the masses - not people who are trying to create the next Google. Motivation, hard work and an ability to learn from mistakes are all necessary, but ultimately not sufficient for our craft.

If I had to guess what the missing ingredient is, I would say creativity.

Heck - we are programmers. We get immediate feedback on our mistakes all day long and anyone reading this post has most likely gotten really really good and learning from those mistakes. ...but, how many of us are hitting those high notes?

[1] http://www.joelonsoftware.com/articles/HighNotes.html

Re:Why Do Some People Learn Faster? by kevinalexbrown on Thursday February 23, 2012 @01:26PM (#3626054)
EDIT: So I got a coke and thought about this a bit. I like your point, but I feel like maybe the high-noters are high-noters precisely because they're ruthlessly self-critical and growth-minded. Ever see someone who was really good at something cringe after what you thought was an amazing performance, because they missed, e.g. the f6 in Mozart's Queen of the Night? They're better (honest?) at seeing their mistakes, and they're better at addressing them. Maybe that's the natural talent?

Aside from the tone, maybe, this article is not 'one for the masses.'

Jony Ive didn't just sit down and whip up the iPod, to use Spolsky's example. We don't see the blood/sweat/tears that goes into it. From Ive:

One of the hallmarks of our team is this sense of looking to be wrong ... It’s about being excited to be wrong because then you’ve discovered something new.

Obviously Ive has the creative ingredient. And some are going to be predisposed with talent. Michael Jordan may have had his famous "4am club" where he hit the court every morning to just drill, but so did Scotty Pippen, and he never hit the Jordan high note clutch performances that make my jaw drop watching 20-year-old replays. So I see your point, that talent matters. But the other way to look at it is that Jordan was just better at learning from his mistakes in those 4am practices.

So no, this is not some pedestrian piece of feel-good soup. Great work, in programming, design, anything, is about repeatedly pushing a boundary, recognizing where you messed up, fixing it, and repeating that all over again. The people who do this best are the people who believe that by iterating they can get better. This works even as you get all the way up into the stratosphere of a field.

[1] http://www.dailymail.co.uk/home/moslive/article-1367481/Appl...

Re:Why Do Some People Learn Faster? by jimbokun on Thursday February 23, 2012 @10:20PM (#3627866)
And Scottie Pippen only became maybe one of the top 20 basketball players of all time.

So maybe there is something to being part of a "4am" club.

Re:Why Do Some People Learn Faster? by pheaduch on Thursday February 23, 2012 @11:59PM (#3628097)
What is this 4am club? I'm a big Jordan fan and I haven't heard about any of this and a quick Google search comes up nothing about Jordan practicing at 4am.
Re:Why Do Some People Learn Faster? by argumentum on Friday February 24, 2012 @01:17AM (#3628227)
It was actually termed "breakfast club":

http://www.maxpreps.com/news/WpxTIZzCckWkptFeAcuDrw/how-mich...

Don't know if it was actually at 4AM or not.

Re:Why Do Some People Learn Faster? by literalusername on Friday February 24, 2012 @02:14AM (#3628333)
According to your link it was 7:30AM.
Re:Why Do Some People Learn Faster? by aik on Thursday February 23, 2012 @07:08PM (#3627357)
>>Maybe that's the natural talent?

It could partially be natural talent, however much of it is nurture. Carol Dweck has proven that the growth-mindset can be taught. Parents, friends, communities, media and school systems alike can promote "fixed" mindset thinking through various means, thus limiting learning from mistakes. It's incredible how much harm someone can do by steering someone off the growth-mindset path.

Re:Why Do Some People Learn Faster? by jackpirate on Thursday February 23, 2012 @11:45AM (#3625591)
It's very easy for us to forget about variance and standard deviation of programmer productivity when all other factors are equal. Let's imagine we have 1000 of the world's best programmers working for a year on creative projects. All of them will try something innovative. Only some of them, however, will succeed.

Who succeeds is a function of what projects they were working on. And that, is almost purely random and a result of circumstances. We like to think that Sergey and Larey were more brilliant than anyone else, for example, but the truth is they just stumbled into the right thing at the right time.

Don't discredit yourself as a programmer for not yet having a huge stroke of luck.

Re:Why Do Some People Learn Faster? by argumentum on Friday February 24, 2012 @12:23AM (#3628139)
The problem here is that you're segregating the "world's best programmers" without explaining how you selected them. The more relevant question here is what makes someone the "best" at something.

You're also using a limited angle of success (Larry and Sergey's business success via google). Many of the other "best programmers" on your 1000 person list may have non-commercial success (their creative project leads to a highly cited paper for example).

If you just took the top 1000 programmers (again assuming you could) in 2003, it's unlikely that Mark Zuckerberg would have been one of them. Not that he wasn't a great hacker, but what metric could have demonstrated his creative/business abilities as an undergraduate?

Of course luck is involved in anything. Einstein was "lucky" that he happened to be obsessed with the relative speed of light to different parties at a time when we knew a bit about how light/gravity etc worked. Perhaps if he'd been born in Newton's time, his style of intellect would not have had the same impact. Nonetheless we can, in hindsight, only measure someone's achievement, not his/her luck.

No doubt hyper-achievement (like Einsteins' or Zuckerbergs') is evidence that the achiever possesses a high degree of work ethic AND talent with at least a bit luck thrown in. No doubt that you would agree Hyper-achievers are a subset of "Potential Hyper-achievers" (those with talent & work ethic) and someone's level of achievement will roughly correspond to his/her personal characteristics.

In a particular poker game, it's mostly luck whether you come out ahead, but over time (as in life) those who practice harder and play smarter will (usually) come out on top.

Re:Why Do Some People Learn Faster? by megaman821 on Thursday February 23, 2012 @01:55PM (#3626171)
People attribute almost everything to luck to feel better about their own lack of success. Luck plays a minor role. Intelligence and tenacity are much more important. If luck was the main factor nearly all successful programmers would come from China or India since they have the most entrants in the "lottery" for successful programmers.
Re:Why Do Some People Learn Faster? by franticpedantic on Thursday February 23, 2012 @02:24PM (#3626311)
You argue that intelligence and tenacity are more important than luck, but then it follows that since China and India have the most entrants, the only explanation for their lack of proportional success is lack of intellence and tenacity relative to Americans(I'm not saying you think this, I'm just noting it follows from your argument).

I would argue luck does play a big role, and that they weren't lucky enough to be born into a country with the standard of living, educational resources, and number of tech jobs that Americans have is the major differentiating factor.

Re:Why Do Some People Learn Faster? by megaman821 on Thursday February 23, 2012 @03:26PM (#3626584)
I didn't mean to provide an exhaustive list successful characteristics.

Also it is a bit of a logical fallacy to say just because luck is not the main factor in success that being unsuccessful means you are lazy or dumb rather than unlucky.

You can take the luck argument too far though. You were lucky to be born as the you that you know because there were millions of other sperm competing to fertilize your mother's egg.

Re:Why Do Some People Learn Faster? by _delirium on Thursday February 23, 2012 @04:25PM (#3626855)
You can take it too far, but I think at a macro-level "luck", by which I mean random factors beyond your control, is by far the dominant factor. I do fairly well for myself, among the top 0.5% by world income, but I'm quite sure this is not because I am among the top 0.5% in world intelligence+tenacity. I like to think I'm fairly smart, especially when it comes to reading widely, in an interdisciplinary way, and making unexpected connections between different domains.

But honestly, I came pretty close to "winning" by the time I was 10 years old. I was born in one of the richest countries of the world, to well-off parents who were science/technology-minded, attending a good school district, etc. I also happen to have computer science as one of my strengths from a young age, partly due to foresighted parents who sent me to an after-school Logo program, and partly due to what feels like natural affinity. That pays well, while I could just as easily imagine being gifted in something less-lucrative, like music or history (I'm personally completely in awe of people who have perfect pitch and what seems like an innate sense of rhythm). I had to do relatively little on top of all that to succeed, at least compared to what other people would've had to do to succeed similarly. Basically had to not completely fuck it up. (And I assure you I am lazy as shit compared to a lot of people doing less well.)

Re:Why Do Some People Learn Faster? by le_isms on Thursday February 23, 2012 @03:08PM (#3626507)
intelligence, tenacity and opportunity?
Re:Why Do Some People Learn Faster? by jaredmck on Thursday February 23, 2012 @02:46PM (#3626400)
Successful people attribute almost everything to their own intelligence, willpower or hard work to feel better about themselves. Luck is extremely important for any individual trial - once you get up to a large sample size, sure, your traits will win out - but many people will never reach such a sample size in their entire life.

When I see "fail fast", what I really think is: "increase your sample size".

Re:Why Do Some People Learn Faster? by timwiseman on Thursday February 23, 2012 @03:12PM (#3626517)
This does not match my experience. While certainly some successful people like to take all the credit, most of the successful ones I know acknowledge either luck, fortune, or God's blessing played a huge roll in their success. Machievelli in particular talked about it at length in the Prince and other works.

But you can't directly control luck. You can directly influence the other factors, and while luck does play an important role, so do other factors. To borrow a quote, "The harder I work, the luckier I get."

Re:Why Do Some People Learn Faster? by rhizome on Thursday February 23, 2012 @03:41PM (#3626651)
That is the Fundamental Attribution Error, that success derives from the person more than it does from circumstances.
Re:Why Do Some People Learn Faster? by bored on Thursday February 23, 2012 @01:29PM (#3626068)
And the very best just seem to be "luckier" than the rest...
Re:Why Do Some People Learn Faster? by Afton on Thursday February 23, 2012 @01:55PM (#3626169)
Sounds like you're putting the cart before the horse. How are you identifying 'the very best' but by their successes? The argument is that you need both to 'succeed'. So, sure, if you only look at the ones that were both hard-working/relentless/growth-oriented AND lucky, then boy howdy does it look like luck isn't a factor.
Re:Why Do Some People Learn Faster? by WalterBright on Thursday February 23, 2012 @01:51PM (#3626155)
The difference between lucky people and unlucky ones is that the lucky ones were able to recognize opportunity better. I've seen some research on this, but don't have a link handy.
Re:Why Do Some People Learn Faster? by simon_weber on Thursday February 23, 2012 @04:24PM (#3626848)
I prefer the idea that the lucky ones "made their own luck" by increasing luck surface area.

In this view, the lucky may not have recognized opportunity better, just created better opportunities for themselves (through hard work). Even if this notion isn't completely correct, I like how it incentivises working rather than waiting.

Re:Why Do Some People Learn Faster? by ryanmolden on Friday February 24, 2012 @03:49AM (#3628493)
Nassim Taleb talks about this, I think in Fooled by Randomness. He couched it in terms of increasing exposure to chance (serendipitous) occurrences via being more social, studying across disciplines, keeping friends whose views differ from yours, etc...

Edit: corrected my phone's overzealous auto-correct.

Re:Why Do Some People Learn Faster? by mkramlich on Thursday February 23, 2012 @04:31PM (#3626882)
i've come to view luck as preparation + opportunity. You can't directly make yourself "lucky" but you do have control over how much you prepare (study, practice, exercise, think, train, drill, paying attention to surroundings, planning for future, etc) and you can expose yourself to more opportunities by meeting more people, being more ambient, being social as well as analytical, watching community and industry news, etc.

ps. huge fan of Empire! thank you sir for working on that game. i think Sid Meier cited it as a design influence for Civilization as well.

Re:Why Do Some People Learn Faster? by lurker17 on Wednesday February 29, 2012 @06:48PM (#3650310)
https://en.wikiquote.org/wiki/Louis_Pasteur

"In the fields of observation chance favors only the prepared mind."

Re:Why Do Some People Learn Faster? by jimbokun on Thursday February 23, 2012 @10:29PM (#3627895)
Preparation + opportunity, would be a great title for the Jeremy Lin story.
Re:Why Do Some People Learn Faster? by aristus on Thursday February 23, 2012 @12:21PM (#3625763)
I've thought a lot about creativity by watching the people around me in art and science. I suspect that an important, perhaps defining characteristic of highly creative people is their ability to change their mind at will. (Similar to how a good scientist develops the ability to change his mind utterly when confronted with solid evidence, and change it back when that evidence is refuted.)

A factor in that is developing a strong associative memory. This means seeking out many many kinds of knowledge and experiences and constantly trying to connect them together. It's not banging "random" ideas together, because your associative memory filtera it down.

Re:Why Do Some People Learn Faster? by jilebedev on Thursday February 23, 2012 @12:50PM (#3625897)
Article: > unless we experience the unpleasant symptoms of being wrong — that surge of Pe activity a few hundred milliseconds after the error, directing our attention to the very thing we’d like to ignore — the mind will never revise its models

tpatke: > it just doesn't apply (and I am a huge fan on Dweck's work). This article is one for the masses - not people who are trying to create the next Google

aristus: > defining characteristic of highly creative people is their ability to change their mind at will. ... A factor in that is developing a strong associative memory ... seeking out many many kinds of knowledge and experiences and constantly trying to connect them together

Being wrong, persisting, and trying to learn from the mistake takes effort. It's difficult, and I suspect as difficult as (if not directly linked to) exerting self-control. Connecting thought is here: http://psr.sagepub.com/content/11/4/303.short

A good question for Moser/Dweck would be: is the physiological response of a child to a mistake a function of their blood glucose levels? I suspect that it is: anecdotally, people are a lot more optimistic and willing to explore an issue instead of yielding to to surface obstacles if they're on a sugar high.

Re:Why Do Some People Learn Faster? by MattGrommes on Thursday February 23, 2012 @03:31PM (#3626611)
The book 'Thinking: Fast & Slow' has a section on 'ego depletion' that may have some insight into your question. Basically when you think hard on a problem, make difficult choices, or work hard physically, you suffer from 'ego depletion' that makes further work even harder. This has a measurable impact on brain glucose levels. People given a glucose supplement don't suffer from the same drop-off in performance as those given a fake-sugar drink.

I hadn't thought about it in terms of Dweck's work on open-mindedness but it seems like accepting failures and persisting probably fall into the category of tasks that cause ego depletion. Very interesting.

Re:Why Do Some People Learn Faster? by invalidOrTaken on Thursday February 23, 2012 @01:29PM (#3626063)
| A good question for Moser/Dweck would be: is the physiological response of a child to a mistake a function of their blood glucose levels? I suspect that it is: | anecdotally, people are a lot more optimistic and willing to explore an issue instead of yielding to to surface obstacles if they're on a sugar high.

I wondered this as well. Even if it's not necessarily glucose-focused, there are a ton of angles. Depression? The two ends of manic/depressives? Sleep -> mood -> mistake response? Talking to an attractive member of the opposite sex and having it go well/not well?

Re:Why Do Some People Learn Faster? by jilebedev on Thursday February 23, 2012 @01:41PM (#3626116)
Yet another question for Moser/Dweck: does the almost-immediate negative response to making mistakes diminish if the subject is in a state of flow? From personal experience, a state of flow while performing an intellectually engaging activity diminishes any and all negative feelings I may have. Positive and calm feelings remain, but when I encounter an obstacle or an error, I simply adapt to it like water flowing down a mountain.

I suspect that Moser/Dweck would find that programmers in a state of flow encountering a compile/runtime exception would exhibit significantly lower amplitude signal associated with immediate negative response.

Re:Why Do Some People Learn Faster? by KingMob on Thursday February 23, 2012 @04:11PM (#3626789)
For error-related negativity (ERN), "negative" refers to the direction of voltage change, not the person's attitude.

Since ERN amplitude is associated with better learning, it might be the other way around, that people in flow are producing stronger ERN's and correcting their mistakes faster.

Re:Why Do Some People Learn Faster? by einhverfr on Friday February 24, 2012 @05:32AM (#3628726)
First as a disclaimer. I have ADD and will never be a great C programmer (I can hack, but my ADD makes it extremely difficult to get the consistency in results that C demands when doing bulk coding, but that's a topic for another time). I have done some C programming and I will do some more. However there are hard limits for me that a lot of other people don't have.

Now this being said, in the environments where I work, I have met a lot of top-notch programmers and a much larger number of mediocre programmers who crank out huge quantities of unmaintainable code. And of course unmaintainable code is contagious: if you work with it, the quality of your own code suffers.

And so I have come to a contrarian perspective on a lot of this.

The difference I think is that the top notch programmers tend to be interested in improving. There is nothing worse than reading through the SQL-Ledger codebase and realizing that despite some modest improvements in security over the years (though not enough IMO) the coding style has never improved (\%$form? Really? Still? And no 'use strict?' what will it take?). Instead they make up for a lack of self-improvement with extra brute force effort in things like testing and debugging.

So this leads me to conclude there are two fundamental types of programmers out there: brute force programmers (the majority), and those programmers who substitute quality of effort for quantity of effort.

The majority of programmers are mediocre and never hit high notes because they believe that what matters is how much time and effort they put into programming. The other programmers spend less time and effort coding, and more time and effort thinking about coding. They recognize that this is where the key investment lies, and that time spent here saves a lot of effort elsewhere.

One problem with programming is that you rarely get immediate feedback on the mistakes that matter---areas like style, clarity, maintainability, and elegance of design. It's only if you go back and question your ability in these areas can you improve. But time spent thinking about these things, going over past efforts and critiquing them, is time that is not spent programming.

I sometimes think programming should be learned first through an apprenticeship, then through journeyman programs where an individual learns from many accomplished programmers, and finally certified to take on students.

Re:Why Do Some People Learn Faster? by ohyes on Thursday February 23, 2012 @11:51AM (#3625628)
I think the point of this article is that it doesn't matter if you are top talent. It is detrimental to your growth think that you are. It is better to approach learning anything from a position of humility and interest rather thank thinking that you are hot shit.
Re:Why Do Some People Learn Faster? by jongraehl on Thursday February 23, 2012 @05:44PM (#3627163)
Beware drawing conclusions about causes in the top decile based on averaged effects over the whole distribution. And adults based on studies of kids, etc.

But sure, it's suggestive of what you say.

Re:Why Do Some People Learn Faster? by mburney on Thursday February 23, 2012 @11:38AM (#3625549)
I have seen programmers make the same avoidable mistakes over and over again without learning much from them. Sure, they learn from syntactical errors and perhaps how to avoid specific kinds of errors. But how many programmers will actually re-model their entire coding paradigm in order to improve?
Re:Why Do Some People Learn Faster? by mekoka on Thursday February 23, 2012 @12:24PM (#3625777)
In order to learn from a "mistake" there needs to be some sort of feedback. Many programmers make the same mistake over and over because it hasn't yet come back to seriously bite them in the ass, or because the evidence of it isn't clear. Only then is the mistake corrected and the lesson learnt.

For example, in this day and age of fast processors, abundant memory, large hard-drives, you can't expect a novice to put much emphasis on efficiency. He'll code and will run his program just to see the output appear almost instantly. A veteran will look at it and shake her head, but that's because she knows that back in her days, code this inefficient guaranteed that you'd spend the day in the lab just waiting to see the first letter of the output. Don't expect the newbie to learn that lesson any time soon, with his blazingly fast laptop, on which he's working comfortably from his bedroom. Now, hand him one of those snail computers at his next internship and watch the transformation operate.

Re:Why Do Some People Learn Faster? by commanda on Thursday February 23, 2012 @12:42PM (#3625865)
If it never comes back to bite you (or anyone else) in the ass, was it really a mistake?
Re:Why Do Some People Learn Faster? by jerf on Thursday February 23, 2012 @01:44PM (#3626129)
Taking your question literally and in isolation, no.

But the manifestation more relevant to the real world is not having the experience base to realize it's biting you in the ass. Specifically, even though X is working, it could be working better, for less effort. Or another common case is X is not working and you misidentify why ("lazy developers not willing to do the work" instead of "used the wrong paradigm for the job", for instance).

Re:Why Do Some People Learn Faster? by Splines on Thursday February 23, 2012 @12:53PM (#3625908)
True enough, needless optimization is often unnecessary.

The difference is that an expert will be able to make a good decision about that trade-off. A novice is restricted to the tools and practices they are familiar with - they might come to the same conclusion, but not for the same reasons.

Re:Why Do Some People Learn Faster? by msg on Thursday February 23, 2012 @12:39PM (#3625849)
I'm not a zealot for it, but test driven development does shorten the feedback loop in significant ways. You get specific feedback for problems and avoid making the same mistakes twice.

When I'm working with code that doesn't have it, runtime errors significantly lengthen the time between insights, as I hunt for the root cause of some bug.

The general point is that you do better work in small increments and revisions than you do, like Coleridge, getting high and watching masterpieces spill out of you, like Kubla Khan. You will be less sensitive to small things destroying your work, like Coleridge's visitor. Truish story.

Re:Why Do Some People Learn Faster? by ak39 on Friday February 24, 2012 @12:49PM (#3630080)
Spolsky is a wanker.

High notes, low notes who cares? The test of the acceptable programmer is in the works he/she creates. And to judge that requires answering the following:

1. Does the software do what it's supposed to do? 2. Does it do what it does efficiently?

That's it.

Forget wanting to belong to the legions of hallowed programmers who use the latest/best programming languages or frameworks.

No programmer hits a low note ... unless they want to. Those are not programmers but itenerant workers just filling in for the time-being. (Which could last 30 years. :) )

Ciao

Re:Why Do Some People Learn Faster? by EricDeb on Friday February 24, 2012 @01:27PM (#3630264)
Another thing to consider with Spolsky's student example is that there are a wide variety of experience levels in a programming class IME. I just finished 5 years of CS school (3 years undergrad, 2 grad), and I would attribute the variety in time it takes to complete a project mainly due to experience with the language/project type/etc.

There could be kids in the class with 2 years internship experience with the exact language on similar projects and those that have never programmed before.

Comparing professionals would be much more useful.