Two Approaches to Learning Programming: Top-Down and Bottom-Up - <AUTHOR> http://www.programmingforbeginnersbook.com/blog/top-down-bottom-up-approaches-to-learning-programming/ <comment><USER2> Most of the engineers I know learned to program via "top-down", as did I (though I'm a designer).

Whenever anyone asks me how to get started in programming, I tell them to forget about buying any of those "Dummies Guide" books and instead just pick a problem they're really passionate about and Google anything they need to learn to make the idea happen.

Such an approach certainly doesn't teach you a lot of the most important thing about programming (garbage collection, what types of objects to use and when to use them, etc.) but it does get the job done.

And that's the thing I think matters most for those just starting out: if you try to learn bottom-up and get all the fundamentals, you're going to burn out.

Of course such advice goes right out the window if your goal is to actually become a real, breathing, programmer. Because you can't afford to make mistakes and the foundational stuff ensures you're less likely to do so.

Whereas just Googling how to put together a project will likely leave you with a functional project, yes, but also less-than-ideal code.

<comment><USER3> This is why I say that JavaScript is a great first language. Not because it teaches you how to write good code, or be a good developer, but because the barrier to entry is so low to get started; with a text editor and a web browser that everyone has on their system, you can start making something that has a tangible (visible) result. That's powerful.

Once a person has a handle on things like how code is structured and interpreted, syntax, objects, etc. then you can introduce them to the terminal and start teaching them Python if you want. But nothing comes close to driving interest like making a button on a screen that moves stuff around.

<comment><USER4> Ditto. I suggest JS => python => *

And I very much dislike JS for actual professional use.

</comment></comment></comment><comment><USER5> I find it mostly depends on your personal motivation. If you somehow are magically motivated to slog through a huge amount of crap that seems meaningless and pointless to everyone else, bottom up is preferable. You'll end up in a better place in the end. But... it only works because you see the meaning and point of investing a large effort before the tangible payoff. Bonus points if you find the slog to be fun in and of itself.

Naturally, a lot of professors and highly talented experts tout this as the only way to go. It worked great for them and they don't see the point of any other path.

But, in my observation, "talent" is usually a false explanation of someone who is highly motivated by something I'm not aware of. Most "talented" people I've known were actually putting in a huge amount of work in the area.

On the other end... if the return on investment isn't clear. If the path to the payoff is branchy, windy and foggy. If you are motivated by results, not process. Top down is a good way to determine if it really is worth the effort. In the meantime, investing some extra effort in finding the payoff and the joy in the process would be wise when taking this approach.

<comment><USER6> Bottom up may require a different learning ability. You read something, and you don't have a mental hook to hang it on yet, because you don't have any idea of the overall framework. So you have to be able to leave it hanging in midair for a while, until you learn enough of the higher-level structure to understand how it fits.

I used to be better at that when I was younger...

<comment><USER7> I think you have that backwards. Bottom up is about the composition of already understood pieces into more powerful ones (the utility of which is obvious due to solving limitations/ inconveniences inherent in the previous layer).

</comment></comment></comment><comment><USER8> _Then the teacher tells you that most professionals don't code this way anymore. So you start learning about classes, and instances, and instance variables, and methods, and inheritance, and a whole bunch of other object- oriented programming concepts. Then you try to unlearn the way you originally learned to write code, and learn to write code in the new object-oriented way._

Missing next line: "Then you get a job and your colleague tells you that most professionals don't code this way anymore.

<comment><USER9> Missing next phrase: ", we are still using Java".

</comment></comment><comment><USER10> What about the approach of Middle Out: where you neither build anything beyond copy and pasting code nor learn why doing comparisons on floats is a deal with the devil?

Joking aside, it does seem that a mix of the two is nice. Bottom Up is boring when you just want to get things done and Top Down is magic until you try to leave the playground. The problem arises that each student will have different tolerances of each of those approaches.

Edit: Maybe an interactive book, or app, that lets you see a problem from both angles and let's you pick the problem you want to solve. Here is a problem: "Given this graph data summarize and display it". Bottom Up you learn DFS and Top Down you learn d3. With if you pick one or the other your given a library to fill in the part you don't like. You could always return and do the other part latter as well.

<comment><USER11> Middle out is how I learned to program actually.

I started with basic lessons on Codecademy to learn the basic concepts and jumped between reading books and researching concepts and building small projects. I feel like I got the best of both worlds. When I hit a concept I didn't understand or needed clarity on, I went and researched the underlying fundamentals.

I've seen developers that have gone top down and they struggle with basic programming logic because they don't have the fundamental knowledge. On the flip side, I can't imagine studying CS and learning all the CS fundamentals without going ahead and building stuff the whole time.

</comment></comment><comment><USER12> An then there is the SICP approach, a Bottom-up feels like Top-Down that proves that the two approaches need not be mutually exclusive.

<comment><USER13> Yeah it's a false dichotomy.

</comment></comment><comment> Const-me There're no fundamental concepts.

If you'll start with C, there's assembler and machine code underneath.

Underneath there's memory hierarchy, CPU microarchitecture, buses, and other things like USB protocol stack.

Underneath there're logic gates, comparators, summators.

Underneath there's physics, quantum mechanics, electrodynamics.

Each of these abstraction levels is fundamental relative to the upper one.

The level of abstraction that you declare fundamental is arbitrary. You can define your "fundamental level" threshold much higher, e.g. JVM or S-Expressions, and start bottom up from that arbitrary level.

The level a median developer believes is fundamental drifts upwards over time.

70 years ago it was impossible to be a programmer without knowing about logic gates. The majority of modern software developers can't design stuff from logic gates, they don't even know much higher-level USB protocol stack, and yet they are able to do their jobs just fine.

</comment><comment><USER14> I have thought quite a bit about how useful a course with theoretical and practical elements from silicon atom to HTTP request would be. You start building an AND gate from MOSFETs, an adder from 4000 series ICs, a simple processor on a FPGA, you write Tetris for your simple processor, and then you switch over to a real computer, operating system fundamentals, data structures, algorithms, protocols, ...

That is certainly a lot of information to process, but if designed well it could be like one big project where you regularly end up with a result and then continue building the next layer on top of what you already have. There would be a clear path to follow in order to not get lost in any layer but if you wanted to, you could also keep exploring a layer for a while before moving on.

Not sure if that would actually be a good idea or not, but at least retrospectively that looks like an awesome way to really learn how to code.

<comment><USER15> This doesn't go quite that far, but takes a generally-similar approach: [http://www.nand2tetris.org/](http://www.nand2tetris.org/)

</comment></comment><comment><USER16> Better would be the DSL approach: Express the problem in an easy to understand, natural-looking DSL and then implement the DSL. This is both top- down (describe problem) and bottom-up (implenent DSL words) at the same time.

In common OOP languages (i.e. Java), the mechanisms of OOP can be used as an ersatz DSL, albeit a bit limited.

</comment><comment><USER17> Nowadays, programming is much more complex than it used to be (unless you consider toy programming languages). For me, visual feedback was always a key factor in the things that I made. When I started, there was no top down or bottom up. You just started programming, and you actually understood what was happening because it was not that complicated.

Let me give you an example. QBasic is the first language that I learned. Suppose you want to draw a white pixel in the left upper corner on the screen. To do this, you can do: SCREEN 13 PSET (0, 0), 15

If you understand this and for-loops it is trivial to fill the screen with a color. Then the next step is to make the color of the pixel dependent on the position. I made some wonderful graphical stuff with this (rotozoomers, plasma, fire effects...).

Now, if I want to do this in C(++), I probably can, but it will take me at least an hour of research. Same thing for C#, Java, Haskell, and so on.

This is not a completely fair comparison since QBasic ran in DOS and there was no need to summon a window, but that is exactly my point: things keep getting more complex. To plot a colored pixel on the screen in QBasic, you have to know about pixels, screens and colors. To do this in a more modern environment, chances are you have to pick the right API and understand all abstractions it introduces (probably including windows, graphical contexts, buffers...). The trend seems to be to ever more abstract, complex, and powerful frameworks.

If you are already a programmer, this is a gradual progress and it is feasible to keep track of everything, but for new programmers it takes a looooong time to get up to date with all the new abstractions that people have come up with (and I think are not always that important to start programming).

Now I'm not saying that we should not introduce abstractions or frameworks or implying that DOS graphics were better than today's system with windows. I'm just saying that these advances come at a high cost, and I don't know if there is a solution.

<comment> Const-me Why don't new programmers start with stuff like this? [https://processing.org/overview/](https://processing.org/overview/)

</comment></comment><comment><USER18> I tried the top-down method but I figured out that I was a type of person who should learn the basics first and then develop knowledge from that.

I think that the Bottom-up method is better overall.

</comment><comment><USER19> That's an excellent advice and it works because people are motivated and have a tight feedback loop ("is this what I wanted?"). Arguably this is the best way to learn if you follow it with some deeper reading on the subject once you have a working solution to close gaps in your understanding.

</comment><comment><USER20> I usually start with Top Down to get a big picture quickly, then I do Bottom Up to dive deeper in details.</comment>


Python's CleverCSS - <AUTHOR> http://sandbox.pocoo.org/clevercss/ <comment><USER2> I like clevercss a lot, but there are some annoying bugs in the official release. I have a patched version here: <http://github.com/dziegler/clevercss/tree/master>

Also, check out <http://code.google.com/p/django-css/> for easy integration with Django.

</comment><comment><USER3> "Inspired by Python" or inspired by Sass? <http://haml.hamptoncatlin.com/docs/rdoc/classes/Sass.html>

<comment><USER4> margin-right: 5px (CleverCSS) vs. :margin-right 5px (Sass)

But it is nice to see a Python implementation of such an excellent tool.

<comment><USER5> You can also write margin-right: 5px in SASS. CleverCSS is really very similar, not only its syntax.

But that's a good thing, seeing other solutions emerge which get rid of those bloated CSS files.

<comment><USER6> i think SASS is a little more featureful. i was looking at this recently and found no way to include other (clever)css files within a clevercss file, but sass has a way.

something i didn't find in either language is a way to embed literal css (useful for writing ugly hacks that sometimes rely on css parser errors in the browser)

</comment></comment></comment></comment><comment><USER7> Sounds nice. I especially welcome the variable mechanism for colours so that I don't have to write the hex value of today's favourite color (or its highlighted or shaded variant) everywhere I use it.

I'm not sure yet if I'm happy with the lazily evaluated variables, though. In makefiles, I tend to prefer := assignment (eager evaluation) to = assignment (lazy evaluation) when possible to avoid surprises.

</comment><comment><USER8> I love Python and CSS as much as the next person, but I always thought Sass was an overengineered solution to a problem that doesn't really exist. Expert CSS coders will _always_ get better results.

<comment><USER9> It doesn't seem like it's about getting a better result. As far as I can see it's allowing people to get a result in less time.

Imagine if CSS made you style every element individually, so you had to specify the full path through the DOM before applying each style. It's still the same language because you could get the same results - it's just a lot more typing.

It seems to be a similar thing happening with CSS frameworks, although there's less inefficiency to remove than with my exaggerated example.

Adding variables and arithmetic to the mix also has the potential to make things more maintainable if used correctly - if you're setting the same number multiple times or setting a number as the result of a calculation an expert CSS coder will have to remember to update everything (and/or) redo the calcuations every time they want to make a change.

It's a medium sized win but I'm willing to take a look.

</comment></comment><comment><USER10> So, Sass + object-orientation?

<comment><USER11> And no @import sass awesomeness.</comment></comment>


New Study Contradicts Malcolm Gladwell's 10,000 Rule - <AUTHOR> http://www.businessinsider.com/new-study-destroys-malcolm-gladwells-10000-rule-2014-7?utm_source=hootsuite&utm_campaign=hootsuite <comment><USER5> This article suggests that Johansson is confusing commercial success with mastery of a skill.

Mastery of a skill does not guarantee commercial or financial success, nor does a lack of mastery guarantee failure. We see this in our own trade - <USER2> because you're a mega awesome super-ninja rockstar software developer, it doesn't mean the software you develop is actually worth billions. Summly, when it was acquired by Yahoo, came in for a lot of criticism for being equivalent to a crappy weekend project, but it made Nick D'Aloisio a heap of cash. I doubt that he was master of his craft at the time.

Similarly, the number of beautiful autotuned popstars who, without their army of producers and songwriters wouldn't even be fit to grace the stage in the back room of a pub, vs the number of highly skilled musicians whose genre or instrument lacks popular appeal or whose appearance makes them more suited to the radio era, and whose biggest gig is a crowd of 50 in a provincial arts centre.

Sid Vicious was in no way a master of the bass guitar, but his band enjoyed success all the same, due to the intersection of their music and the zeitgeist, and some good publicity work by Malcolm McLaren and Vivienne Westwood.

Richard Branson may now be a master of business, but he's also definitely had his 10K hours. Had he already been masterful in the early days of Virgin Records, perhaps Virgin Group would number 4000 companies by now and Virgin Galactic would already be planning trips to Mars from their well-established moon base. Who knows?

</comment><comment><USER6> I never took his rule too literally. I always thought of it as an explanation for how people become the best at something: practice. I still believe it is true. Though you can't study entrepreneurship, practicing (i.e. gaining experience) makes you better at running companies. The same can be applied to other activities which don't involve rigid structure which can be learned.

<comment><USER7> The article is about the degree to which deliberate practice helps you in various fields, it's not actually about the specific 10,000 hour rule. The thesis of the article is that, essentially, deliberate practice does not have a large effect on your effectiveness in fields which do not have unchanging, rigid structures (like games whose rules don't change).

As a rule, I reserve judgement about any "new study", but also as a rule I think that anything Malcolm Gladwell says is bullshit, so I'm torn on this one.

<comment><USER8> False versus False?

Gladwell's paper was so explicit that I thought it couldn't possibly be true, despite the niceties of "We'd like practice to be important"

The best programmers (and martial artists, and runners, and basketball players) I personally know are the ones who practiced the most, but I've struggled with causation and correlation. They generally got early head starts, and kept plowing ahead.

<comment><USER9> The direction of causation is key. I think people with natural propensity (what you might call "talent") are more likely to practice hard than those who struggle to see results from their practice.

<comment><USER8> Exactly why it's tough to tease apart.

</comment></comment></comment></comment></comment><comment><USER10> I've been somewhat interestedly following the guy who is very literally putting this to the test by attempting to become a professional golfer after 10,000 hours of practice, having never played a round of golf before he started. He's about halfway through his hours now and has shot a round of 70.

See here: [http://thedanplan.com/](http://thedanplan.com/)

<comment><USER11> Thanks for the link, I love checking up on his progress from time to time.

Small note, he seems to have downgraded his goals though from "winning a PGA tournament" [1] to "obtaining PGA tour card" [2]. Understandably, since the former would be incredible hard, but still...

[1] [http://www.businessweek.com/magazine/dan- mclaughlins-10000ho...](http://www.businessweek.com/magazine/dan- mclaughlins-10000hour-plan-become-a-pro-golfer-11232011.html) [2] [http://thedanplan.com/about/](http://thedanplan.com/about/)

</comment></comment><comment><USER12> The 10000 hours rule might be bogus, but the examples given are unconvincing. Sid Vicious not being able to play bass well means just that - hes not good at it, probably because he didn't practise. That it didn't matter for him to become successful is a different story.

Slash of G'n R fame practised very hard to get to his level by literally doing nothing else from morning to evening.

<comment><USER13> Yes. This. Sid Vicious was nowhere near world-class at the bass. He may be world-class at playing up to the media and managing social situations. But after seeing that example, I feel it made me believe more in the 10,000 hours!

<comment><USER12> Ironically, he may well have put in the 10,000 hours practicing those skills - fashion, looks and charisma certainly take time to master.

</comment></comment></comment><comment><USER14> The critique of the 10,000 rule is not new and here's what the author himself posted in 2013

[http://www.newyorker.com/online/blogs/sportingscene/2013/08/...](http://www.newyorker.com/online/blogs/sportingscene/2013/08/psychology- ten-thousand-hour-rule-complexity.html)

"I think that it is also a mistake to assume that the ten-thousand-hour idea applies to every domain.

...

The point of Simon and Chase's paper years ago was that cognitively complex activities take many years to master because they require that a very long list of situations and possibilities and scenarios be experienced and processed. There's a reason the Beatles didn't give us "The White Album" when they were teen-agers. And if the surgeon who wants to fuse your spinal cord did some newfangled online accelerated residency, you should probably tell him no. It does not invalidate the ten-thousand-hour principle, however, to point out that in instances where there are not a long list of situations and scenarios and possibilities to master—like jumping really high, running as fast as you can in a straight line, or directing a sharp object at a large, round piece of cork—expertise can be attained a whole lot more quickly."

<comment><USER15> It's asinine to write about and promote such a result as "10,000 hours"[1] when the result was really that it varies a lot from skill to skill. Using some constant number like 10,000 gives _exactly_ the idea that there is some hard-and-fast rule to the amount of time needed to practice in order to attain some skill in some endeavour.

[1] Whether that was the author himself or the various people that that wrote second/third hand articles about it.

<comment><USER16> Does employment in a CS career mean that you must be prescriptive in every aspect of your life?

The 10,000 hours is a rough guide to a general consensus of sporting and professional pursuits.

It is not appplicable to _all_ people in _all_ walks of life.

Sometimes I fear for the sanity of coders; how do you people function without technical specifications telling you what to do??

</comment></comment></comment><comment><USER17> Fulltext: [https://dl.dropboxusercontent.com/u/182368464/2014-macnamara...](https://dl.dropboxusercontent.com/u/182368464/2014-macnamara.pdf)

</comment><comment><USER18> I always thought this "rule" sounded like something pulled completely out of thin air.

Of course practice is necessary to become proficient, and lots of practice is necessary to achieve mastery. But, the amount needed has to vary depending on the person, and some people will never achieve mastery in some areas. There is such a thing as native skill. And the inverse.

<comment><USER16> Native skill is _largely_ a myth.

According to Matthew Syed in Bounce (a very good read) there are numerous fields in which native or genetic skill is considered the norm (sports, chess, math) but no studies support that hypothesis.

Conversely a number of studies actively disprove that native skill exists. Ultimately, barring true genetic freaks (Michael Phelps wingspan for instance) anyone could achieve any level of any pursuit with enought focussed practice and a degree of luck.

<comment><USER19> Matthew Syed's thesis is fundamentally challenged by reality. Certain activities/sports have a clear bias towards certain body types (as a reductive but clear example who would you favour to get an item off a high shelf unaided, the 6 foot 4 inch tall person or the 5 foot 6 inch person?).

It _is_ true that training dominates 'talent'/'genetic biomechanics'. But, at similar levels of training some other factor will play a part in determinnig who is best, and at the elite end everyone is basically at the same levels of training so 'talent'/'genetics' will be the deciding factor. There is a reason why each discipline in pro-athletics seems to attract such a homogeneous collection of body shapes and why the people who 'break the mould' are often the most successful at the sport.

<comment><USER16> It's not challenged by reality at all, you are just misunderstanding it (probably because you have not read the book and probably because of my terrible simplification).

You keep referring to talent. Which does not exist, has never been proven and has been disproven numerous times by taking sportsman out of their chosen sport but into a new sport requiring similar _talent_ and testing their performance which is always sub-par and hovering around average.

The primary example used is table tennis players are famed for having naturally quick reflexes. In every academic study, table tennis players performed no quicker than average in any reflexes test and in some cases performed worse than various random individuals from the street.

There are others but you should read the book before discounting a hypothesis. I have read enough to convince _me_ natural talent is a myth; the equivalent of a rain dance is the reason for rain.

<comment><USER19> This is Syed's stawman, as I state - training is dominant over any innate 'talent' and there isn't anyone seriously engaged in the debate that disagrees with this.

Hard work and dedication will make anyone _good_ at anything - no-one disputes this. But Syed wants to apply this to the _elite_ level as well. The elite level is where outliers live on an everyday basis

The studies he cites goes the wrong way to draw the conclusion that he wants to draw - it's not about saying table tennis players have super quick reflexes that apply generally it's that some people have super quick reflexes of a type that apply to table tennis. So, whilst Table Tennis players' 'quick reflexes' are clearly trained for the specific situation of Table Tennis rather than being the results of having 'talented' generalist quick reflexes there will be, in the pool of all of humanity, people who's natural bio-mechanic disposition makes them have Table Tennis appropriate quick-reflexes. So if that person applies hard work and dedication to Table Tennis then they will be better than someone without the bio-mechanical advantage who puts in the same hard work and dedication. But if they apply hard work and dedication to another discipline that require fast reflexes they won't be any better as their 'talent' doesn't apply.

I follow rugby, rugby is littered with players who were really good but who's body could not take the strain of the training and broke down through the effort. Clearly hard work and dedication alone was not enough for them - <USER3> needed a body that could respond favorably to the punishment they were taking.

<comment><USER16> You need to read the book, you disagreeing with the hypothesis with nothing to back up your assertions other than your opinion.

Do you think human beings with super quick reflexes exist? That does not stand up to scientific scrutiny. I fear we are at an impasse, you have your views and it appears they preclude reading anything that challenges them.

Interestingly, I had similar views before reading the cited studies.

<comment><USER19> No, I am saying that people have physiological maximums. No matter how hard I train I am not going to become taller (or shorter), no matter how hard I train my knee and ankles will only support a certain mount of force and torque I cannot push past that (without suffering repeated and continual injury) - <USER4> is law of the universe stuff.

At the level of becoming very good indeed these limits have no effect on becoming better as you do not reach them, but at the elite level, at becoming the best they do. Do you really believe that the guy who came 2nd to 7th in the 2012 Olympic 100m sprint trained an appreciable, measurable, amount less than Usain Bolt - with less dedication, application and rigour? Do you think, say, Gatlin, Gaye and Bailyey trained in a worse environment less conducive to success than Bolt?

Are you really saying you can go look Donnie MacFadyen in the face and say he just didn't train with enough dedication?

<comment><USER16> You are appealing to emotion.

Elite athletes are already outliers within the human race however within athletics there are extreme outliers like Bolt and Phelps who have astronomically rare genetic advantages. To be representative they need to be discounted. Not even the Olympics is N number of Usain Bolts racing against each other. It is N number + Usain Bolt.

Donnie McFayden may have trained as hard as he thought he could. That does not mean he was in the optimum training environment, he apportioned his time correctly or he trained with focus required to be better than he is. His training habits may have become effective simply too late in his career (Maybe he took training seriously at 8 years old but his competitors (in team and other team) took it seriously at 4. Maybe he is absolutely outstanding but the team failed him.

The factors are numerous. It might just be he is unlucky; his coaches didn't recognise his brilliance or they played him out of position. The point is not why is Donnie not the absolute _best_ in history. It is 'Can _anyone_ with the basic requirements reach the level of playing international rugby with the right focus and training and luck - the answer is yes, yes they can.'

They literally just have to want it enough and have the resources (time, money, family, coaches) in place to achieve it.

Anyone can be a Chess Grandmaster with enough study. Proven by Laszlo who specifically taught his children chess _in order to prove geniuses are made /trained, not born."

[http://www.psychologytoday.com/articles/200506/the- grandmast...](http://www.psychologytoday.com/articles/200506/the-grandmaster- experiment)

[http://en.wikipedia.org/wiki/L%C3%A1szl%C3%B3_Polg%C3%A1r](http://en.wikipedia.org/wiki/L%C3%A1szl%C3%B3_Polg%C3%A1r)

Also proven by the Williams sisters whose father _decided* they would be tennis champions and worked them mercilessly towards that goal using any equipment to hand. Unless your hypothesis is that -

Two genius tennis prodigies were born with the gifts required to be a tennis prodigy and their father just happened to settle on the sport of Tennis? I think those odds are considerably more unlikely than "anyone can be a Tennis champion with the basic requirements and dedication which is what the Williams sisters had."

<comment><USER19> You are literally accepting my premise and then telling me I am wrong.

If you accept that Usain Bolt is a astronomically rare genetic freak (which you just have) then you accept that some people have innate genetic factors that make them better at a sport than others.

Because people exist on a continuum and not in discrete boxes that means for a given subset of people, some people in that group have innate factors that advantage them over others in a particular tasks, just not at the extreme level of Phellps.

That means some people have 'talent', or as I like to say physiological factors that give them greater maximum potential.

<comment><USER16> Not quite. You are focussing on 1 in 6 Billion type athletes and discounting the 99.9999%.

The Olympics is not full of Usain Bolts. It is professional athletes AND Usain Bolt. Unless you think none of the other 100metre runners are professional athletes because they don't reach Bolts performance?

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> God I hate how people parrot that 10,000 hours rule.

I doubt this study will do anything to stop those people though.

</comment><comment><USER21> This article is total bullshit.

"practice accounted for just a 12% difference in performance in various domains" is not contrary to "10,000 hours of deliberate practice are needed to become world-class in any field".

For example, A) 10,000 hours of deliberate practice are needed to become a professional chess player, B) practice accounted for just a 12% difference in performance in professional chess. A and B can both be true at the same time.

<comment><USER17> And yet, (A) is simply not true, see the other mentioned study of chess players in the fulltext, a previous study involving Hambrick which found many top players falling short of 10k and many inferior players exceeding 10k, for a net explained variance of not-that-much.

<comment><USER22> I believe that Gladwell was merely suggesting that talent is not innate and the difference is somebody's ability was due to the amount of time they put into it.

The top players might have spent several hours on a related field, like what futsal is for football.

<comment><USER17> > I believe that Gladwell was merely suggesting that talent is not innate and > the difference is somebody's ability was due to the amount of time they put > into it.

Neither is true. Everything is heritable, as the behavioral geneticists like to say, and increasingly the genetics are being defined and nailed down; and the latter is completely refuted by the OP study and the previous Hambrick study - time spent on a field has only a weak relation with results.

> The top players might have spent several hours on a related field, like what > futsal is for football.

Chess players study chess. There is no related field from which meaningful transfer will happen - at the top levels of chess, the problems are only about chess.

<comment><USER16> Can you give an example of a _" talent"_ that you think is heritable?

I ask because inherited talent is a myth.

<comment><USER23> > Can you give an example of a "talent" that you think is heritable?

Long distance running.

<comment><USER16> Nope.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> The idea is not the 10,000 hours; it is the mastery they represent.

</comment><comment><USER25> does anyone still take Gladwell seriously?

<comment><USER26> He's a writer, and his business is to write books that people want.

I love his work! Similar to Dilbert's Scott Adam's books. After reading them, I don't walk away thinking "you weren't 100% correct, therefore I am going to ignore everything else you've said".

I find both authors highly entertaining. I think both would happily bend the truth if it helped the spirit of the work sound better.

</comment></comment><comment><USER16> It's hardly Gladwell's rule. He just happened to be a writer who popularised it.

</comment><comment><USER27> Meta-analysis is usually suspect.

<comment><USER28> Why?

<comment><USER29> I can think of three main suspicions to keep in mind when evaluating the credibility of a meta-analysis:

1\. Are the studies it analyzes picked with a bias? For example, if you're looking for meta-analyses of the effects of gun control on crime, and one was published by the National Rifle Association and the other came from the Coalition to Stop Gun Violence, then you might as well just throw up your hands and go home, because each will probably have suspiciously convenient criteria for what constitutes a reasonable study worthy of inclusion in their meta-analysis.

2\. Do the studies themselves suffer from publication bias? A meta-analysis purporting to show a positive effect should arouse some suspicion, because negative results often simply don't get published, and can not be included in the meta-analysis due to their nonexistence.

3\. Are the methods of analysis reasonable? There are a horrifying number of ways to pull positive results out of random noise through poor application of statistics.

In this particular case, the authors don't seem to have an axe to grind, their result is negative, and their analysis is very straightforward.</comment></comment></comment>


Shifted to the valley? Advantages? - <AUTHOR>

Are you a start-up that shifted to the valley (or, the founders shifted to the valley to do a startup)? Although a lot has been said about why one should do a startup in the valley, how has your experience been?
A few points you can touch upon:
- Getting early adopters for your startup - Getting angel investor interest in your startup - Bumping into other programmers who are doing good stuff and having a good discussion with them - Acceptance of valley 'natives' to 'outsiders' - How quickly can one settle down and become productive (coding, meeting the 'right' people, selling)
Being a startup in India, and seriously considering moving to the valley, these inputs can be very valuable to us. <comment><USER2> BTW, in the valley, or the rest of the US, you would say "moved" to the valley.

<comment><AUTHOR> Thanks :)</comment></comment>