Becoming an expert through deliberate practice
bakadesuyo.com
bakadesuyo.com
These insights extrapolate to some current-day fields -- but not everything. Not by a long shot. It doesn't take 10,000 hours of deliberate practice to get great at a lot of newer areas where standards are being defined on the fly. Newcomers with boldness and originality can go a lot further in such situations.
IMHO software's problem is not that it doesn't take 10,000 hours of practice - it is that it takes much, much more. It can be months (or years!) before you receive feedback on your decisions. Given this, boldness and originality can go far not because it's easy to be an expert, but rather because almost no-one is an expert.
You can go to a pool and master all four swimming strokes: backstroke, breaststroke, butterfly, and freestyle in about a year but you would not be a Michael Phelps. However you would be able to swim better than at least 80% of all of humanity and be considered a master.
The word master needs to be better defined. You can quickly master many things in a year or less.
Nobody considers what their weaknesses in programming are, invents a program of exercises to remedy that specific weakness and then does those exercises every day for a year. That's what deliberate practice is.
The book was about 10,000 hours of deliberate practice. As long as nobody in software does that, it's simply not applicable to software.
Now that I'm a veteran, I find that at work I spend most of my time at work solving problems I already know how to solve. I spend some of my spare time on pet projects doing things that are new to me, but unless they find a cure for the need to sleep, I'll never have 20 hours a week to spare for this again.
Sitting down and playing scales / etudes / method books every day is very hard, but it's the only way to get better at a quick pace. You can't really pay attention at that level for more than 4 hours (or, rather, I and most other humans can't).
Similarly, I've made concerted efforts to refactor procedural code into functional code, and while that is very difficult conceptually (for me, maybe not you) it felt very much the same way as doing scales.
Deliberate practice is not the same as just doing work, and just doing work doesn't make you better as quickly or in the same ways as deliberately practicing.
>But hardly anybody in software does deliberate practice
I sure do, and you should, too. Every time I write a bug that gets released to customers, I ask myself, "how did that happen, and how can I prevent it in the future?"As a result of doing this for many years, by now I rarely have bugs in code that gets released.
As a largely self-taught programmer, I've struggled for a long time with certain algorithms and certain data structures. I got sick of it about a year ago, and decided to do something about it.
Since that time, I've come a long way using a "kata" technique for algorithms and data structures. Each morning (at least, ideally each morning), I worked on a group of related algorithms: trees on Monday, sorting Tuesday, graphs Wednesday, etc. And by "worked", I specifically mean that I would memorize algorithms related to the topic I was working on, and then each day re-write it from scratch. Often, I didn't fully understand the algorithm in the beginning, but after multiple days of re-writing it, I'd begin to understand it. After several months of this, I'd gained a much better understanding of all the areas I was working on.
I got busy and stopped a few months ago, but when I was doing it daily, I found I was gaining significant insight into the algorithms, and was able to then apply them in new and innovative (to me) manners. In fact, I started doing them again a few weeks ago because I noticed I was losing some of the insight I had gained. Reading this article has only reinforced my resolve.
So these "katas" I do are really nothing more than deliberate practice. And I know that I'm far from the only one doing these. They seem to be quite popular among some programmers.
I feel competitive gaming is one of those areas where the new stuff can make you the best in a field in a few weeks. But if you look at the really best players you find that they continue to learn even when they have reached the top. Then they compete with the other top players to find new ways and optimize the existing ways even a little more.
Here is some more up to date research and information on his theories:
This recent special issue of Intelligence critiques Ericsson's work: http://www.sciencedirect.com/science/journal/01602896/45
The 10,000 hour rule has been pretty refuted in my opinion. There are so many exceptions to the rule that it's not really a valid rule.
In fact, one of the articles in that special issue is a meta-analysis that found no evidence for the 10,000 hour rule. Here's a summary: http://www.smithsonianmag.com/smart-news/10000-hour-rule-not...
If by expert you mean someone better than 90% of all humanity at some task X, then the time to get to this level could be orders of magnitide smaller than a 95%, which itself is orders of magnitude smaller than 99.9% i.e. (pro/olympic athletes, concert pianists, etc).
If you don't agree please offer a counter example. Besides all sports, lets consider juggling. Here, 1-2 hours can make you better than about 80% of the population, but becoming a passable street juggler will take months, and a proffesional artists who can innovate as a juggler probably many years.
Essentially, my hypothesis is that improvements in a task X decrease exponentially over time.
>This blog has 1058 pages of material. How?
He probably spent 10,000 hours at it. I'm just guessing though.For example, if you're making a song, your thinking should be "I can't wait until people hear this song!", not "I can't wait to slightly increase my skill".
I can't say I'm a fan of the domain name, though. There are certain connotations you raise in people's minds when you use incredibly common/trite Japanese phrases within a given subculture for a domain names, especially one that sounds like "I'm retarded dur dur."
It's explained here: http://us5.campaign-archive1.com/?u=b083212130155b748c778508..., and kind of seems to make sense, be somewhat funny, and not match your vague accusations of triteness.
"Baakaa" is "Barker," which can alternatively be romanized as "Ba-ka-" or "Bākā." It's never "Baka," whether written or spoken.
The vowel length completely changes the word into a name and either one is recognizable at a glance to someone who knows Japanese. Someone who deliberately chooses "baka" despite knowing some Japanese is also deliberately choosing to play on words that people with a passing familiarity with Japanese or anime will mistake for "idiot."
It's not an innocent or clever choice.
Some people would say "but you write different code at programming contests"! It's somewhat true - I feel that different parts of my brain are engaged when working on a "right" edit to a massive codebase. On the other hand, from time to time there are problems that require writing few hundreds/thousands of quite dense, relatively greenfield code and then I feel that "Topcoder" parts of my brain are engaged.
Yes, Topcoder and things like that can be deliberate practice, but deliberate practice is not limited to such things. And those who are successful, really successful, don't limit deliberate practice to such events.
Would anyone like to discuss any particularly effective ways of visualizing programs or data? Approaches you have found effective?
Draw little boxes for each variable, for pointers, for the stack, whatever. Change each value only when the execution gets there. Resist the urge to just skip over -- "this section does such-and-such."
I'm fairly certain it's the only reason I made an A in my assembly language courses.
Doing this manually with a pencil and paper is arguably even better for learning purposes, although significantly more arduous. I should try it.
You can think of bits as coins HTHTT vs 10100, and enumerated types as gears.
Personally, I find side projects one of the least efficient ways to improve. I already spend 8+ hours a day "doing" at work. In contrast I spend less than 30 minutes a day at work learning and understanding theory, new concepts, and different approaches to a problem.
So I get a lot more value from focusing my "free time" on the latter.
"This is compared to us developers learning to touch-type or learning the keyboard shortcuts of our IDEs."
No. Deliberate practice for programmers is not limited to just touch-typing or keyboard shortcuts. It's actively learning to use new tools and environments, learning new languages, and learning different ways to program, such as functional or object-oriented programming. It's practicing coding in ways like coding katas.
It's digging into code that isn't yours and making the software do new things, and issuing a pull request upstream.
Deliberate practice isn't just "practicing." It isn't just mechanical. It's challenging, it's hard, and it improves you.
If you think deliberate practice is just practicing mechanics, you are ignorant on the subject.
2 - some people are order of magnitude more talented better than others at some things. Maths or music come to mind. My personal experience: it took me years of hard working to get decent rhythmic abilities. On the other hand, my sister (who is a professional musician) had a innate sense of rhythm. She doesn't even understand how that could be an issue.
Maybe it's more accurate to say that after 10000 hours, one can get close to its full potential, which varies tremendously among people.
100 hours should be enough for most people to pass a driving exam, not to become an expert driver.
I'd say that's driving competence, not driving expertise. Formula 1 drivers, for example, usually start out driving go-karts as kids. By the time they get to Formula 1 through all the junior racing categories and feeder series they've been practicing their driving for at least a decade.
>She doesn't even understand how that could be an issue.
Sounds like you two haven't put much thought into understanding the issue.Even if I do practice the same amount as them, I expect the difference between me and someone without the head start would go down significantly over time.
So innate talent is a real thing but it's consistent with 10,000 hours.
That is not deliberate practice. Merely spending 10 years writing online is not deliberate practice. Doing something every day is not deliberate practice.
> genetically endowed talents to succeed.
No. You are not born with the ability to write. Mozart was not a naturally born musician. Tiger Woods did not one day suddenly become a golf pro.
> As someone who has spent 10 years writing online with little to nothing to show for it, this does not work.
Spending 10 years writing does not mean you spent 10 years deliberately practicing. It merely means you spent 10 years writing.
>How does one 'deliberately practice' writing?
1) Write something, then look at what you wrote, and try to figure out how it can be improved2) Read works from great writers, figure out what they did that made them great
3) There are plenty of good books that will help you improve quickly when you are first starting. The key here is to work on improving, not just doing.
4) You really have to work at it. Stephen King suggested that aspiring authors should be working at improving their writing eight hours a day.
Some sample books to improve your writing skill:
http://amazon.com/dp/0312010443
Ben Franklin is an interesting story in how one can deliberately improve their writing.
https://www.linkedin.com/pulse/20140820222906-7374576-ben-fr...
But it occurs to me you are equating success in writing skill with success in becoming a popular writer. One can be an excellent writer and still not be financially success or massively popular.
10 years of writing doesn't mean much. What do you mean when you say you spent 10 years writing? What have you done?
I imagine a big part of it is actually not writing but reading. That is, reading things from people who you would like to write like and trying to emulate what they do.
I guess even better would be to write something and have one of those people look it over and give feedback.
> It's not like the most successful writers or writings are the most complicated
It's been said already but this article is about mastery and you seem to be concerned with success which are two very different things.
See Venkatesh Rao's Quora answer: https://www.quora.com/What-are-some-tips-for-advanced-writer...
“Writing is a skill like any other, and the famous 10,000 hour rule should apply, and it does, but not in the way you might assume. A prolific writer can usually churn out about 1000 reasonably decent words in an hour, so if you count in words, it might seem like 10 million words would be enough. Or at 4 hours a day, 250 days a year, about 10 years.
The problem is everybody writes. And yes, things like emails count. So any idiot can clock that many words in 10 years even if they only do a lot of casual/work email and texting. ...
What matters is not how much you write, but how much you rewrite. ...
The HUGE difference between everyday writing that everybody does and serious writing is the proportion that is re-writing. I'd estimate that for non-writers, rewriting accounts for maybe 10-20% of their writing.
For serious writers, it accounts for anywhere between 50-90% depending on how critical the particular piece is. ...”
I suspect, though, that it has a lot to do with taste, specifically as to what it is you enjoy about other people's writing -- not to make your writing more like theirs, but to have a better eye for one's own.
In the same way that many musicians have insisted to me that missing out on opportunity to practice music as a child or a young adult needn't be an obstacle to becoming a serious musician later in life; it's vastly more important, they say, that you listen to music, and develop good taste -- rather than worry so much about "talent" or lost opportunities.
[Maybe it's]... finding the optimal linear regression of what people want.
But this, I think, is definitely not where it's at.
Though we should of course always be aware of hour others are perceiving what we create, ultimately it's not the job of the artist to survey the crowd for what they already know and "what", and give them more of it (though no doubt many artists get by on exactly this modus operandi, and some go on to achieve a great deal of notional success with it).
Rather -- the artist's job is to create experiences their audiences didn't know they wanted, or perhaps even thought they hated (or just didn't like so much) -- but because you've cast it in a new light, you've forced them to look at it differently. And this, necessarily, involves risk along with the near certainty of failure and rejection.
And because so many artists are afraid to cross that threshold -- sticking always either to what they think people will like (but which isn't their own creation), or to something that is their own creation (based on a few early successes), but never veering from that mold or trying anything really new -- we wouldn't say that makes them "fail" as artists, but they do tend to stop growing, and often never become as great as they once thought they could be.
If there are more writers than there are slots for successful writing careers in the world, things like connections and luck are the type of thing that put you ahead in the competition for those careers. The best writers don't automatically get those careers.
Based on your comment history, your writing would be improved with better organization. Learn to use paragraphs with a topic sentence and supporting sentences. Organizing your thoughts like this will improve the readability, structure, and power of your writing.
If you merely write without trying to improve, then your writing will not improve much. If you play chess without actively remedying your faults, then you could actually get worse at chess, despite playing many games. You need to actively try to improve if you really want to get good.