Foo Hack » Psychology of Programming http://foohack.com Isaac Schlueter on Web Development Tue, 03 Nov 2015 06:34:16 +0000 http://wordpress.org/?v=2.6.3 en Nerdery http://foohack.com/2008/12/nerdery/ http://foohack.com/2008/12/nerdery/#comments Fri, 05 Dec 2008 18:00:04 +0000 Isaac http://foohack.com/?p=78 ...Read More]]> David Spade will forever have a special place in my heart for what he did in the movie Tommy Boy. I’m not sure if it was his creation, but in that movie, Spade delivered a line that added one of my favorite words to the english language:

My fellow nerds and I will retire to the nerdery with our calculators.

I saw the movie back in high school when it was in the theater. Immediately—I mean, before we had gotten out of our seats—we were using “nerdery” to refer to our pack of nerds [1]. It’s like there was a linguistic void waiting to be filled, one that we had somehow never noticed before, and that term came to our rescue, identifying and defining a concept that we all knew but could never properly articulate.

It’s interesting that he’s clearly talking about a location in the quote, and not necessarily a pack. Nevertheless, the longing for this term is clear in the fact that literally every single person I know has exactly the same concept of what it means [2], despite having grown up in different parts of the world. That’s pretty rare for a concept so squishy, even if the term is only 13 years old.

ζῷον πολιτικὸν

Nerds are humans, and humans travel in tribes. Nerds may fail at popularity, but the human qua πολιτικὸν phenomenon is inescapable. We are social creatures, by our nature. You can’t keep up with it all on your own, which is why your lazyweb is smarter than google.

It’s kind of easy bait to just say that nerds fail at people, but to stop there is missing the point [3]. The lack of popularity doesn’t change the need for polis; it simply changes the types of people that nerds tend to associate with. Given the right conditions, we clump together, and form nerderies.

If nerds didn’t need people, we wouldn’t clump. We’d all be loners. And really, deep down, we’re not, no matter what we may tell ourselves.

You can do things with a nerdery that you can’t do alone. Hacking on your own can be fun, but no matter what it is, projects really take the fuck off when a few heads are working together. That’s how you get explosive momentum. No matter how smart or driven you are, you cannot do it alone. The genius of the future stands on the shoulders of everyone.

Connecticut

In high school, I was a part of a quality nerdery. We were the kids who sat in the back of the class in AP Calculus, who stopped doing homework so we could study harder and get a 5/5 on The Test. We made web pages and played dungeons and dragons. We ran with the artists and freaks.

But it was high school. Things were awkward and weird. We knew each other too well, and yet not at all. After graduation, I fell out of touch with most of those guys. Maybe there was a really strong tribe there, and I was just never quite in it. Or maybe we just grew up, and our interests diverged.

In college, I lived in Neff Hall, the designated geek dorm. It really was. The top two floors were even preferentially assigned to Honors College students. In my second year, we reached Critical Mass. We were a tribe, Tre Neff. We had a call. We organized acts of benevolent mischief. A decade later, I follow a bunch of them on twitter, and comment on their blogs. I moved to California with one of them, and we all know each other, an extended family of sorts.

California

Connecticut is beautiful, and great for a lot of things. I’m glad to have grown up there, and I would recommend that anyone spend their college years in New Haven. But it’s a terrible place to be a grown-up hacker. When I moved out to San Diego, I was sans-nerdery. Lone wolves catch no caribou.

Transporting my tribe to California was a pleasant fantasy, but not realistic. They all had their own lives. Some of them moved to Boston. Others were still in school in New Haven or elsewhere. Wasn’t gonna happen. Even if we were all local, we’d grown up, and we weren’t into the same things any longer. We were still friends, but not a nerdery.

So, that meant building a new one. When I got a job at a little windows shop, I thought Well, a nerdery just kinda happened in high school, and another one just kinda happened in college, seems reasonable that I’ll find one at a software company. Lotta geeks there. Ha. How very naïve. My god, we do fail at people.

There were about 30 people at that company, and I did meet more nerds there. A few became friends and are still. But somehow, it lacked cohesion.

After a few years, that job wasn’t doing it for me anymore. I focused all my time and energy on learning the latest in web development. PHP, CSS, Javascript, semantic markup, XML, and so on. I started writing a blog, reading blogs, commenting, conversing, everything I could do to tap into this tribe and be one of its members.

One day, a woman named Amy emailed me about a position at Yahoo. I interviewed, and an invitation to the technopolis fell into my lap. 3 years later, I’m still here, and my unwillingness to leave has even attracted some attention, temporary though it may be.

Stars and Nets

I’ve met a lot more high quality nerds here at this company, more than I can link to in one sentence. Since moving to Silicon Valley, I’ve also found other hacker groups and interest meetups and so on.

For whatever reason, it seems like only about 10% of the people we meet have friend potential, and only maybe 10% of those fall into the right blend of coincidence to actually result in any kind of useful relationship. Maybe these numbers are skewed down by the fact that I’m talking specifically about nerds, but I suspect that, for anyone, the vast majority of acquaintances and colleagues never make it to “friends”. There are only so many hours in the day, and relating takes time. We are limitful creatures.

When it comes to functional groups, size matters. A lot. The ideal size for a nerdery seems to be about 7 people, and it needs the right balance of skills.

Nevertheless, that 1% turns out to be quite enough, if you’ve got access to a big enough population. It’s quite helpful to start out at a large software company or a college that attracts technical talent. It’s easy to meet a few like-minded friends if you are exposed to a few hundred likely contacts. I didn’t realize at the time that the difference between college and that first software company was mostly scale; 30 employees vs 30,000 students. (It was a state university—at a place like MIT or Stanford, the pool would probably not need to be so large.)

Cohesion happens in the progression from “star” to “net”. star vs net (i win at art!) In this extremely technical diagram, the red dots are people, and the blue lines are relationships between them. A person’s group of friends and associates starts out as a star. We relate to people who might not relate much with one another, and who have associations with other people outside the group, that we don’t know.

The ideal net is where each of the points interacts with all or most of the others. That’s where the good stuff happens. We can spend less time relating, and get more value from it. See how all the blue lines cross over one another? Ideas flow across those channels, and they pollute one another as they bounce around. Conversations produce accidental ideas, and the more collisions, the more accidents are liable to occur. Nets tighten. Things get caught in nets. Tasty things.

I suspect that a functional group also can’t really be without a function. It has to start as bonding over some purpose, or else it just doesn’t get there. It’s hard to organically attract the right blend of skills without some need for those skills.

The way to get from star to net is just to get bigger. Meet more people, stick with the ones that seem the most interesting. As the star grows more dense, the spokes bump into one another, and it collapses in gradual steps. At some point, it’s ripe for being drawn together by some unifying project or task, and the right members join together to make it happen. Some pieces fly off, and the rest is pulled into the new shape.

The best communities organize themselves.

Footnotes

  1. For the sake of brevity, I’ve skipped the tired and boring “nerd vs geek” semantic hair-splitting. They mean roughly the same thing, depending on who you ask, and that’s not what this is really about, anyhow. #back
  2. A friend of mine pointed out that “nerdery” is like “club”, in that it can both refer to the location where the group congregates, as well as the group that congregates in the location. Seems reasonable. #back
  3. It is not my intention to imply that Paul Graham’s nerds essay misses any kind of point. He does some very good analysis of the reasons behind the phenomenon. #back
]]>
http://foohack.com/2008/12/nerdery/feed/
The Haiku OOO Email http://foohack.com/2008/11/the-haiku-ooo-email/ http://foohack.com/2008/11/the-haiku-ooo-email/#comments Mon, 03 Nov 2008 17:00:35 +0000 Isaac http://foohack.com/?p=79 ...Read More]]> When I started at Yahoo on the Games team, there was a custom that resonated deeply with me, which was started by Dean Yu.

All “work from home” emails or “out of office” emails had to be sent in the form of a haiku. This rule was not enforced, but it’s the kind of thing that one person does, and then a few others pick up. Once someone starts doing it, they rarely stop.

Here are some examples:

Sick on an airplane.
Second carry-on: virus.
Infect passengers.
OS API:
Sadly, not writing itself.
Avoid distractions.
Roommate needs his car.
Internet works in new place.
May as well use it!
Nothing in iCal:
Must take advantage of this.
Work in pajamas.
Still not feeling well
Resting and working from home
Please ping or call me
Have suffered relapse
To this weekend's brief illness
So I work from home
Sneezing mightily
Wish not to infect colleagues
Thus working from home

A couplet for my recent vacation:

Been a busy year.
No vacations since ’06
Burnt out: Do not want.

Visit with old friends.
New England trees in autumn.
Rejuvenation.

Having worked on a bunch of teams, I’ve taken this custom with me as much as possible, to the Brand Universe team, and the Buzz team, and most recently the YAP team. There’s no proselytizing involved. I just send a haiku I’m working from home. Some people think it’s fun, and play a round of “speaking in poetry” via email. Some people adopt the custom, and it sticks. Others, for whatever reason, never get involved.

I’m not sure why some seem to instinctively carry it on, and others instead prefer just the subject of “wfh” or “ooo” with no message body. I’ve been told that there are other teams at Yahoo and elsewhere that this custom has spread. In Games, it’s all but gone, now that Dean has moved on.

Like the Twitter of the Edo Period, haiku (then called haikai) used terse imagery to elevate the normal and mundane to the deep and meaningful.

Most people learn in grade school that a haiku is 3 lines, with syllables numbering 5/7/5. While this is the typical standard, it’s not just about fitting into the right number of syllables.

The goal of haiku is to find powerful expression in a small intense dose, to elicit an “AH HA!” experience by virtue of succinctly expressing meaning via simple language and powerful imagery.

Limitation—whether 5/7/5 or 140 characters—is part of the equation. Because the limits are so draconian, the writer is forced to be clear. Squeezing ideas into uncomfortably small packages shaves off the excess. When the excess is removed, enlightenment remains.

Like Twitter, haiku can be terribly inane and useless. That is bad haiku. Truth be told, most WFH emails basically are expressing a single sentiment, and the form adds little to the composition. It’s just fun.

Good programming is like good poetry. The best programmers I’ve known are obsessively minimalist in their code, and do tremendously powerful things with simple logic and short functions. The same can be said for all levels of design: a simple business model, a straightforward user flow, a clean visual treatment.

Less is more. Like the kendō master who practices calligraphy, or the actor who studies yoga, the pursuit of excellence in one area can balance and ready the mind for one’s primary activity.

The next time you have to send an email to your team telling them that you’ll be out of the office for some reason, put it in the form of a haiku. Don’t explain it or call attention to it. It will be your gift. Watch how it is received.

In case you’ve never hit them organically: 404 401 403 410

]]>
http://foohack.com/2008/11/the-haiku-ooo-email/feed/
Why I’m Not Working on My Startup (Yet) http://foohack.com/2008/08/why-im-not-working-on-my-startup-yet/ http://foohack.com/2008/08/why-im-not-working-on-my-startup-yet/#comments Mon, 04 Aug 2008 17:00:11 +0000 Isaac http://foohack.com/?p=74 ...Read More]]> I’m not sure if it’s nature or nurture, but either way, the savvy gambler will bet that I’m going to run my own company at some point. I grew up in an entrepreneurial house. I share a Y-chromosome with a guy who built up a company and made it work with the (un)usual combination of moxie and dedication and wit that makes any business work. And, he did so with two small children. No small feat.

I’ve always planned on starting my own company. I’ve been a fan of Paul Graham’s writing ever since I discovered it. I live in Silicon Valley, and the startup vibe is in the air. I work as a web developer, and I’m good at what I do. I am very interested in the business of software, and have a lot of ideas about how things could be done in new and better ways. It’s not so much “if”, but “how” and “when”.

I’ve worked at Yahoo for 2.5 years now, already about 6 months longer than I’d initially expected to. Compared with working at a small company, it has many advantages. I’ve had the opportunity to be a part of several different projects, and Yahoo can afford to pay quite a bit more than my former employer ever could. I’ve been able to talk to and work with some of the most gifted hackers I could ever hope for. When I got the job, it was really a dream come true, and I’m still proud to be one of the cogs in this engine. It’s been even more satisfying than I’d thought it would be.

But there are drawbacks as well. In a company of Yahoo’s size, bureaucracy creeps in. Decisions are sometimes made very far from the code, and even further from the users. Despite Jerry’s and Ari’s best intentions—and sternest directives—when they talk about Open Initiatives, the “not invented here” syndrome can cause big problems. I don’t think I coined the term, but I’ve taken to referring to the malaise as the “purple cloud”, a stifling and noxious gas that obscures reason and reduces visibility. No doubt about it: that part of the job sucks.

On an almost daily basis, I’m tempted to quit and strike out on my own. Yahoo is an unusually good employer. But despite the perks, as long as I work at Yahoo, I don’t work for Isaac. I might love the company, love what we’re doing, love the opportunities it affords, but there is a definite lack of control and lack of ownership that leaves me unsatisfied sometimes. Being a manager wouldn’t solve the problem; it would make it much much worse. At least as a hacker, I fully own the code I write. If I can’t be on the top, I’d rather be as close to the code as possible. (Best would be both at once, of course.)

So Why Not Leave?

I’ve been reading a lot of articles recently with titles like Why you should quit your job and start a company and Why you should keep your day job and work on your startup at night. I know my hacking rhythm pretty well by this point.

What I’ve gathered from these resources and my own introspection is:

  1. It’s incredibly hard to focus on a startup and also have a separate full-time job.
  2. It’s even harder to focus on a startup and not pay rent or eat.
  3. If I spend less than 50 hours a week working, I’ll go crazy.
  4. If I spend more than 30 hours a week working on something I don’t love, I’ll go crazy.
  5. If I’m working on something I love, and I’m not working on it all the time, I’ll go crazy.

Going crazy is not an option. This isn’t the fun crazy with mania and interesting delusions; more like the super-depressed, hate-my-life, stop-communicating-with-other-humans kind of crazy. I’ve been there before. Life’s too short for that.

The “8+2″ workday wouldn’t work for me. I’ve tried it. I hated it, with a burning passion. I’ve always had side projects, but they remain on the side (like this blog.) I go through phases of being very interested and working hard on them, and completely ignore them at other times. If I had to focus on them enough to turn them into something that users would pay money for, it would have to turn into a full-time gig. My ventures into paying side-projects were tremendous failures for that reason.

Even more importantly, I can’t work just 8 hours a day. Either you ride the biorhythm, with its highs and lows, and capitalize on every bit of go-time that your brain gives you, or you crank out boring hours for your handful of dimes. “Healthy work-life balance” is for bank tellers. An artist doesn’t stop being an artist when he goes home.

I love what I do at Yahoo, and I care enough about what we create that I want to focus all my energy on creating value for users. It’s good practice. But as long as I work at this job, I won’t have enough left over at the end of the day to seriously invest in anything else. Some people can find a middle ground there; I’ve learned that I can’t, and I’m ok with that.

I also really hate worrying about bills. One joy of working for Yahoo is that I get paid enough that I don’t know exactly how much a cup of coffee costs. In poorer times in my life, I was acutely aware of every nickel increase in the cost of a pack of cigarettes. That sucks. Living economically is just good sense; deciding whether your last $10 should be spent on gas or dinner seriously gets in the way of enjoying life.

Having My Cake…

Here’s my plan: keep working at Yahoo for the next 2-3 years or so. Pare down my expenses as much as possible during that time, and sock away as much money as I can. When I have enough saved to live for at least a year without a job, I’ll quit my job and work on whatever idea seems the most promising at that time.

You see, the idea is the cheapest part. Ideas are so plentiful once you learn how to cultivate them, they may as well be falling from the sky. And my ideas have tended to be at least good enough, even if they’re not exactly earth-shattering. In the last year, I’ve seen two startups execute on ideas I’d had, and they seem to be having some success, which I find extremely comforting. I’m not trying to claim that I could have had the same success, but clearly, “finding an idea” isn’t a limiting factor.

So, assuming that my idea will be there when I’m ready to work on it, I’m saving up to buy myself a year off to work on it, whatever it ends up being. I’ve considered getting a part-time job when the date rolls around, just to bring in enough of a baseline income to pay a few bills without sapping my creativity too much. In a way, it’s a bit like creating an angel investor, one who believes in me 100% and is 100% committed to my success like no one else ever could be.

I realize that this plan is a bit risky. The risk is laziness. A dream without execution has a funny way of staying a dream forever. But I’ve made plans like this in the past, and have managed to be ready when the time came to act. That’s how I got to California, after all.

The real challenge is that I’m really not sure exactly what a year costs. I can sit down and crunch numbers, but everything seems way off. I don’t have nearly enough hard data about my lifestyle, and even less about what it could be. Depending on how I spin my estimates, the range ends up being about ±50% or so, which is useless.

I know that I can live cheaper than I am, but I’m not sure which things ought to be cut, and which things are worth the cost. Maybe coffee is worth $1.46, but not $1.55, when balanced against the PITA of brewing it myself and the joy I get from drinking it, multiplied by the number of cups of coffee I buy. I’m not sure. I do know that, while nicotine is a pleasure I deeply enjoy, there’s really no way to justify the physical and financial cost, and withdrawal will be a serious distraction. So, I’ve been wearing a patch—and breathing easier—since June 1, 2008.

A wise man once said, Never optimize before you profile. Then he said it again and again, because no one seems to listen. When it comes to optimization, our intuitions and guesswork are almost always wrong, and only hard data can be trusted. For the last few months, I’ve been tracking my expenses using mint.com and trying to just “act naturally”. Over the next 6 months, I hope to collect enough information about my habits to make wise adjustments.

The 6 months after that will be spent living-as-if, and trying to strike a workable balance. Considering that I make more than double the national household average, and don’t have any kids, I should be able to save enough within 2 years to be able to coast for at least a year, if I just make a concerted effort to stop pissing away so much of it, even at SFBay prices.

Advice Welcome

This sort of plan flies in the face of the white-knuckle hardcore hacker work ethic that seems so prevalent in the startup culture of Silicon Valley. In a way, this is just a rationalization for wimping out. Why put it off until my 30s when I could take that leap of faith now? The way I see it, if a bus is coming along later, why run?

It strikes me as foolish and irresponsible to throw away the opportunity that Yahoo gives me just because I have a distaste for being an employee. (The fact that I have a non-trivial pile of stocks vesting at the end of next year speaks to the wisdom of procrastination, as well.)

I don’t suspect that Foo Hack really draws in the financial planner crowd, but if anyone has any suggestions or experience that might help in the temporary-retirement project, I’d love to hear it. Is this crazy? Am I going about this all wrong? Have you ever done anything like this?

]]>
http://foohack.com/2008/08/why-im-not-working-on-my-startup-yet/feed/
Birthdays, 10,000 Hours, and the Myth of the Ding http://foohack.com/2008/07/birthdays-10000-hours-and-the-myth-of-the-ding/ http://foohack.com/2008/07/birthdays-10000-hours-and-the-myth-of-the-ding/#comments Tue, 01 Jul 2008 17:00:41 +0000 Isaac http://foohack.com/?p=72 ...Read More]]> My earliest “motion picture” memory is from the afternoon of my 3rd birthday. The footage is shot in a fish-eye lens, and a bit blurry, either because of the age of the memory or because I was always a bit nearsighted. I guess hindsight isn’t always 20/20, eh? It’s only a few seconds long, but there’s a bunch of embedded context attached.

We were sitting at the kitchen table. I was playing with a new toy I’d gotten, some kind of plastic action figure (“dolls” are girl toys), and some lady I didn’t know was talking to my dad. I found myself woefully underwhelmed at the fact that not much seemed to have changed that day.

I’m not sure what I was expecting to happen upon turning 3. Wings? X-ray vision? A car? Something to justify the big deal everyone was making, I guess. I was happy to have gotten toys and to have been the center of attention for a while, but I remember a distinct feeling of disappointment that not much seemed to have “turned” when I “turned 3″. I expected a ding.

The lady stopped talking to my dad and looked at me, saying in that lilting talking-to-a-little-kid voice, “And how old are you today, birthday boy!?” I liked being called birthday boy, because that was a Special Status, but even then, I hated that voice. I remember always being glad that my mom and dad never used that voice when they talked to us, and as an adult, I’ve made a point to never talk to children in that voice.

Aha, I thought (though of course not in these words). An interested adult who will understand and explain this strangeness. What I wanted to say, but didn’t have the vocabulary for, was something along the lines of So, what’s this all about? I’m supposed to be 3 now. Everyone said I’d change, that I’d be a Big Boy now, and nothing changed at all. Did I miss something, or is this “birthday” thing just a very silly custom that makes no real sense? Can you please explain it to me? What I actually did was hold up 3 fingers and say, “3. I just turned it.” and scrunched up my face like I did when something confused me and my mom would explain it to me.

But this lady didn’t explain it. She made some stupid human noises out of her stupid face hole about how great it was and that I’m such a Big Boy now, and went back to ignoring me. She didn’t get it at all! Either that, or she just didn’t care enough to explain it to me. Frustrated, I resumed working out my existential dilemma alone with my plastic superhero, now faced with the additional oddness that apparently some adults are not all-knowing benevolent gods like mom and dad. That’s where the tape cuts out.

I’ve met other 3 year olds since, and my hindsight tells me that I must have been a pretty weird kid.

Flash Forward 26 Years

Today (July 1, 2008), I turn 29 years old. Usually, a month or two before a birthday, I start thinking of myself as the new number, and reflecting on where I am in my life and how the last year has gone. In the last 26 years, I’ve gotten a bit more used to the fact that it’s pretty much just another day. No wings, no super powers, same empty “turning”. Granted, it’s a day that friends buy me things, and I get to do whatever I want without being hassled, but once you get to be about 20 or so, people tend to stop hassling you about your daily routines anyhow.

In reality, you don’t do all your learning and growing and aging on one day each year; you do it bit by bit every minute you’re alive, and just reserve a day each year to celebrate the process. If a little kid ever makes that scrunchy confused face at me about “turning” a particular age, I’m going to tell them this. It would have saved me a lot of angst that day.

This year, I’ve been busy enough with work and personal matters that I hadn’t really had much time to reflect on it. Today, however, something about it hit me that seemed to coincide in an interesting way with some other recent events.

A few weeks ago, a talk by Malcolm Gladwell floated into the “find cool stuff” network that I’ve built up (a combination of Hacker News, Yahoo! Buzz, and several valued friends and associates, all fed through my twitter stream). The talk was about hiring and the “mismatch problem”, and came around the same time that my manager was working on adding some people to our team at Yahoo. In another synchronous aspect to this story, just prior to seeing this talk, a friend of mine had mentioned Malcolm Gladwell to me, and suggested that I take a look at his work. Impressed by his talk, I found a free podcast of all the talks in the conference, Stories from the Near Future. Definitely worth the download time.

10,000 Hours

I don’t remember if it was in the mismatch talk or in his discussion of genius, but he mentioned a point that I had heard tossed around before. Apparently, in almost any discipline with a significant level of complexity, whether you’re talking about chess masters or black belts or neurosurgeons or tennis pros, it takes about 10,000 hours of practice to become an expert. Doing your day job doesn’t count; those 10k hours only take into consideration diligent focused study, actively working to become better at what you do.

This works out to around 10 years, if you spend an average of about 3 hours per day at it. While our species does seem produce the occasional old style “lightening bolt” genius, to whom inspiration seems to come inexplicably from the ether, most “talent” is just work in disguise. Tiger Woods makes golf look easy because he’s spent so much time training. It’s not magic. If you threw 10,000 hours at the task of becoming a better golfer, and you’re in reasonably good physical shape, you would probably play at his level.

While 10,000 hours is a daunting figure, this is actually encouraging information. Many people go to college, and some time after, pick a career, and more or less stick with it for the rest of their lives. You may end up going in unexpected directions, but the basic skill set, the things that you would be practicing, people don’t tend to switch that. It also means that, with little more than a willingness to practice, anyone can become great at almost anything.

But you do need a willingness to practice. A lot. For 10 years. So it’d better be something your really love, or else you may as well quit now.

Thankfully, it’s not like you’d have to suffer through 10 years of utter n00bish novicehood. David Seah wrote a pretty good break down of rough levels:

  • at 1 hour … you know some basics
  • at 10 hours … you have a pretty good grasp of the basics
  • at 100 hours … you are fairly expert
  • at 1000 hours … you are an experienced expert
  • at 10000 hours … you are a master

Practicing Programming

Recently, Jeff Atwood wrote about “code katas” (reviving the old programming/martial arts analogy that programmers love, since it makes us seem way cooler and less beat-up-able). Back in 2005, Steve Yegge wrote about “practicing programming”. They’re two of my favorite bloggers, so I feel like I’m in pretty good company talking about this subject. Jeff Atwood is kind of like a “Steve Yegge for the masses”. Same basic idea, but more frequent and much shorter, kind of like when a good movie gets repackaged into an equally good but lighter TV series.

Steve Yegge captured the difference between doing and practicing pretty eloquently:

Picture the average amateur guitarist: A teenager. Messy hair. Cheap guitar. Plays alone, or for baked friends in bedroom in parents’ house. Knows a few riffs, a few licks. Can play almost every track on the first two Nirvana CDs. Puts on a good show for an hour, if you’re a forgiving listener.

The point that I think both of them make in their different ways is that, if you are a programmer, and you want to suck as little as possible, you’d better practice. Just doing your job is not enough, unless you want to waste away in anonymity maintaining someone else’s code base and doing one-off features whenever the business people make some new deal.

That’s the other hidden piece of the 10,000 hours message, I think. It’s not enough to put in your 10 years and attain mastery and be done. If you don’t keep practicing, skill will fade over time; the greater the mastery, the faster it fades. I once saw an interview on television with Yo-Yo Ma, where he said, If I don’t practice for 1 day, I notice. If I don’t practice for 2 days, the musicians I perform with will notice. If I don’t practice for 3 days, other musicians will notice. If I don’t practice for 4 days, the whole world will notice.

Clearly Ma was either exaggerating for effect, or he had an absurdly high opinion of the common person’s appreciation of cello mastery—he could probably take a few years off before my ears would detect any change. But the point is valid. Enlightenment is a myth. Every day that you don’t get better, you get a little worse. As you get better at something, this fact increases in relevance, despite the common sense belief that some day, you’ll be “so good that you won’t have to practice any more”.

So, you’d better REALLY love whatever field you pick, because you won’t ever be done training. Even Einstein kept at it.

The Past 10 Years

When I started college, I was a cocky 18 year old who knew almost everything there was to know about programming, and just needed to learn a little more so I could go out and do it. I’d been making web pages for a few years already, and was a whiz with BASIC. I added graphics to DrugWars on my Ti-82. My physics teacher only allowed a 3×5 index card of notes for tests, a rule that I circumvented by writing programs on my calculator for all the relevant equations; I remember finishing one test in about 5 minutes, and getting 100% on it. (She accused me of cheating, but let me by when I pointed out that I’d actually written the program I was using, so clearly knew the material well enough.)

My first programming class only encouraged this hubris. After Programming in C I and II, I could do everything there was to do in C as well as BASIC. I was unstoppable. I had structs and subroutines, I was running code on DOS and Unix and VAX. Sadly, I was also a bit bored. But computers were cool, and there was still a few things that I didn’t quite know how to do yet, so I didn’t change my major. After the next few classes, I’d be able to crank out any program that exists, that much was obvious.

Sophomore year was a humbling dose of reality. We started in on Big O() notation, complex data structures, tree walking algorithms, recursion, strange non-procedural languages, and a bunch of other concepts that were brand new to me. I’ll remember 19 as the year that I actually had to study in order to get good grades. To use Stevie’s analogy, that’s the year I stopped banging out Nirvana songs and started learning to read music.

Two or three years later, I remember reading Peter Norvig’s Teach Yourself Programming in 10 Years, which is still, in my opinion, the best “how to not suck at programming” guide that has ever been written. A lot of it was over my head at the time, but I’ve come back to it every few years or so. It’s brilliant.

No Ding

When I sat down to write about Gladwell and practicing and the 10,000 hours phenomenon, it occurred to me that I’d passed the 10,000 hour mark myself fairly recently. Partly because it’s something I’m just interested in, and partly because I always want to be better, I’ve been practicing for about the last 10 years.

Again, I heard no ding. No wings. No glowy effects to signify the XP bonus at the completion of the quest. Nada. Just more work, more practicing, more gradually finding one thing after another to investigate, more new nuggets that haven’t yet been cracked.

My conclusion is that the ding is a myth, for expertise just as much as for birthdays. 10,000 hours is a very approximate measure of what it takes to be good enough at something that you have to look a little harder to keep being challenged, and you can do a few tricks that impress novices. After 10 years, I still learn new things every day, I still get frustrated sometimes, I still routinely feel that sense of needing to catch up, still looking up to programmers much better than myself.

Even Newton said that he felt like a boy on the shore amused by the next interesting pebble while the great ocean of wisdom lay at his back, and that if he saw any greater distance, it was only by standing on the shoulders of giants. If there was ever a person arrogant enough to claim expertise, or more deserving of such a claim, Newton was it.

There is no ding. Just one day after another, in a gradual progression that hopefully leads in a beneficial direction. So keep practicing.

]]>
http://foohack.com/2008/07/birthdays-10000-hours-and-the-myth-of-the-ding/feed/