Sunday, September 28, 2008

The Bellic School of Management Training

I haven't been blogging much this summer. Mostly it's because all my free time has been spent engaged in an important research project called "What Would Niko Bellic Do?" I've been enrolled in a high-quality Management Scenario Simulator with the unconventional name "Grand Theft Auto IV", probably some sort of inside joke, and I've been going through all its Developer Management training courses.

You know how these corporate training videos go, right? They set up some contrived scenario with actors you're supposed to identify with, and the actors have inane discussions about sexual harrassment or bribing government officials or stealing company equipment, and then you're asked to answer questions about whether it was OK for Bob to grab Sue's ass in that particular edge-case scenario.

Seriously, I just took one of these courses at work. You'd think they're a joke, but no, they're considered Important Employee Training.

Well, this Niko Bellic course isn't much different, just more fun. I finished the final management training session a couple weeks ago. And by truly amazing coincidence, right after I finished the final training mission, my blog made it into the Top 100 Blogs for Development Managers (Q3 2008).

I personally thought that was a little weird, seeing as I've never written explicitly about software development management. Unless of course you count that one time where I wrote about how you don't need them.

BUT, now that I've finished all the Niko Bellic Advanced Management Training courses, I'm officially a Certified Expert Dev Manager, capable of not only handling unforseen tricky management situations, but also teaching others about them! So now I think my blog being in that list is totally justified.

All the training in the simulator was top-notch. A lot of it was ground I'd covered before in my days as an actual dev manager. I already knew how to react, for example, when my mafia boss told me he'd been betrayed by my previous manager, and I had to take him out. I'd already gone through stuff like that at Amazon dozens of times, so I breezed through those missions.

But even though a lot of the training was pretty obvious stuff, which you come to expect from these corporate training courses, I was pretty impressed by the final Management Training Mission, in which I had to make an Important Management Decision about an employee in my care. I'm sure many of you have also completed this course.

In the missions leading up to the finale mission, the "Grand Theft Auto" training software gradually unfolds a background story in which you and this other employee used to work together but had a disagreement that never fully reached closure. You have some trouble arranging a meeting with the employee to discuss it. But as luck would have it, after doing some especially fine work for one of your internal customers, they manage to convince the employee to meet with you, by gagging and handcuffing him and stuffing him on a plane in St. Petersburg and dropping him off at the docks in Liberty City. I had to admit, the simulator really nailed the value of building strong relationships with internal customers.

You can imagine how hard it is to write an online corporate training seminar — I mean, you have to get all this material across but keep it entertaining so people actually remember the lessons. The fine folks at the consulting firm "Rockstar" have done an admirable job of presenting the content. They cover all of the HR-sensitive topics an aspiring manager needs to know about: conflicts of interest, employee drug abuse, bribery, sexual harassment, stealing company property, I mean the list goes on and on. It's amazingly thorough. These guys clearly have real-world software industry experience.

And they managed to make it fun! They did this by using certain metaphorical devices, purely for dramatic effect. For instance, in the final mission, you're given a choice: you can either let the employee walk away, allowing bygones to be bygones, or you can execute him by shooting him in the head as he begs for his life. This playful enactment is obviously a metaphor for deciding whether to take the "next step" in dealing with a problem employee: whether or not to put him on a Performance Improvement Plan, or if that's already failed, whether or not to terminate employment. By generalizing it to a back-alley execution scenario, they've given you a way to apply the lesson across many similar situations. It's actually quite brilliant, and I'm sure other firms offering management training courses will take note.

As you know, in many management situations there's no "right answer": it's a personal decision, and different managers will make different choices. Hence, the final mission, unlike all the other missions, has no "success" outcome: you just pick a course of action and you have to live with it, just like in real life. Regardless of whether you choose to forgive him for displaying a moment of weakness, showing that you understand he's human like the rest of us, or you pop a cap in his motherfucking partner-betraying ass, you goddamn mother fucker *blam* *blam* *blam* *blam* *BLAM* *click* *click* *click*, the other actors will empathize with you and feel your pain, since no tough decision comes without a few regrets.

As it happens, the simulation software is remarkably open-ended. When I did the mission, I decided to let the employee walk, but then I accidentally ran him over with an 18-wheeler as I was driving out of the parking lot, killing him instantly. Oopsie! I confess I may not have been paying strict attention to some of the simulator's more obscure traffic rules by the end of the training sessions. Fortunately they weren't grading me on little driving slip-ups.

The game chose to interpret my accidental crushing of the employee beneath the wheels of my semi as intentional termination. I like to think of it as modeling the "passive-aggressive" approach, in which you don't fire the employee personally; you have someone else do it, such as HR, or perhaps your boss. Some managers prefer the passive-aggressive approach.

To illustrate why it's popular, I'll use an analogy from the restaurant industry. Have you ever noticed that at restaurants, your waiter doesn't bring your food? Other waiters always bring out your food, during which time your waiter is nowhere to be seen. This is so that if you become infuriated because you specifically ordered tartar sauce on the side, and after a 45-minute wait the chef seems to have emptied the entire bottle of tartar sauce on your fish sandwich in some sort of twisted artistico-culinary attempt to make it look like he threw up on it, then you don't blame your waiter. Instead, you unwittingly direct your anger at the person who brought your food, who makes sympathetic noises ("Gosh, I'm so sorry - I can't believe they messed that up!") and runs away, never to be seen again. After it's eventually resolved (by still other people bringing replacements out), your waiter finally rematerializes and apologizes for the kitchen screwup.

Studies have shown that this yields higher tipping on average. That's why your waiter doesn't bring your food. Now you know.

The passive-aggressive employee-discipline approach is a bit unusual, but some managers feel it's better to have the employee mad at "the company", since then the manager will then get better manager reviews from the employee. I'll write more about this technique in my upcoming "How to Be an Evil Manager" handbook. Should be quite popular! Maybe it'll even bump me up the Top 100 list.

Obliviating

Now that I've finished those training courses, I have all these half-written blogs I need to finish up. Tons of cool stuff to talk about. Unfortunately they're all stalled in various stages because I spent the summer playing video games and doing a lot of bike rides. Sometimes you've just gotta do that, you know.

GTA IV was a really good game, so after I finished it (which required some time before I got tired of experimenting with 5- and 6-star warrant levels), I started looking around for an equally good game. GTA IV was basically the best game I'd played since Oblivion, which was two years ago. I don't play games that often (just a few each year), so I figured there must be something good out there.

I looked and looked, and by golly, the best game out there was still Oblivion. Not only that, but in the intervening 2 years it's sprouted all sorts of mods and expansions like the "Knights of the Nine" and the "Shivering Isles". Neat.

So after lots of searching (and not finding) a good follow-up to GTA IV, I stumbled on a used copy of the Game of the Year edition. Since nothing else out there today looked anywhere near as good, I started playing Oblivion again.

Remember how a few months ago I finally turned off my last Windows box? (I switched 100% to using Mac clients and Linux servers: at home, at work, and on the road.) Well, technically to restart Oblivion where I left off, I was going to have to turn my XBox 360 back on, which felt like cheating. But the used Game of the Year edition I found was for the PS/3.

Decisions, decisions...

Actually it wasn't much of a decision at all. I'm on a low-Microsoft Diet, meaning I avoid Windows whenever I possibly can. Given that I'd gone for 3 or 4 months or so without interacting with a single Windows installation, I really didn't want to turn on my XBox. Plus it's summer and I don't need a space heater yet.

So I went for it. Even though my previous character had finished the main quest and was waiting for her imperial dragon armor, I decided to start from scratch and play the whole thing over again on the PS/3, but this time continue on to the expansions after finishing the main quest.

I tell ya: if Oblivion had come out today rather than 2+ years ago, it would still win the Game of the Year. It's just the best game, period.

To be honest, I kind of miss Morrowind (the previous game in the series). I find myself missing it even when I'm playing Oblivion. I think it may have actually had more personality than Oblivion. But I'm into the Shivering Isles expansion now, and it's way better than Oblivion on personality; I'm enjoying it even more than the main game.

I still find it weird that they don't re-make classic games. Don't you? I mean, they re-make classic movies, so why not games? Sure, we've got game franchises like Zelda and Mario and Donkey Kong — Nintendo is awesome at building character brands. But even Nintendo doesn't re-make great old games; they just carry forward characters and ideas and themes. But that just makes me miss the old games!

For instance, Zelda 64: Ocarina of Time — my God, that was a fantastic game. One of the best ever. Ditto for Final Fantasy X. You could argue that was the best game ever, and I wouldn't try to pop a cap in your motherffffffffffff — sorry, sorry, management training getting the better of me. Let's just say I wouldn't try to argue with you. It was a uniquely great game.

But both of those games, great as they were, could stand a make-over: updated graphics, updated game physics and mechanics, updated for newer platforms, etc. They'd be playable and (presumably?) popular today, and it would surely be a lot easier than trying to design a new game from scratch, so studios could release these remakes in "dry spells" between flagship game releases for extra revenue.

It seems like it'd be better than releasing crap games that they know suck. Which is most of them.

I don't know. Maybe people just prefer new games, and that's that. Maybe I'm different. But nearly 40 years as a gamer has convinced me that truly great games only come along every few years, and the rest are all just filler. I'd rather go back and re-play a favorite game, and get that rush of nostalgia, than fill the void by playing crap.

Ultima IV — now there was a game. Once or twice a decade a truly extraordinary, groundbreaking game comes along, and I remember when Ultima IV was that game. I would love to play it again, except this time without having to swap the City Disk with the Wilderness Disk and listen to my Commodore 64 crunch away for minutes on end.

One of the really key elements to the overall atmosphere of a game is the music, and most great games were great — in large part, I think — due to their music. Zelda 64, Final Fantasy X, Kingdom Hearts, Ultima IV, they all had great music. Sometimes the composer was limited by the sound system - in Ultima IV's case, very limited. But I have all of Ultima IV's music on my iPhone, converted from MIDI files. Dead serious. I love those tunes. They remind me of the old Quest for the Avatar days, back in the Navy when my 3 roommates and I manned the console 24 hours a day in shifts, trying to find mandrake root.

Someone please make an updated Ultima IV! I want IV back, dammit. The sequels never even came close.

Not likely, though. Maybe in a generation or two. It's usually at least a few decades before they remake a classic movie, so maybe I'm just not waiting long enough.

If they remake a classic game, I think it's really important to have the same music. This is where remakes (if you can call 'em that — they're usually either sequels or unrelated new games with similar elements) tend to screw things up. The music should be updated by a competent composer, but it should be the original themes. The Mario franchise does a pretty good job of this, actually. Zelda, not so much. I haven't heard the "Gerudo Valley" theme in any Zelda game since Z64, which came out ten years ago, and along with the title theme it's one of the two best Zelda themes ever.

Remember Metroid? It had really cool music all around. I didn't play any of the Metroid franchise after that, until last year when I played Metroid: Prime on the Wii. The music sucked! Actually the game kinda sucked too. The controls were phenomenal, and made me want to play all games like that, but the game was boring. Sigh.

It's also kind of important that remakes Not Suck. I guess franchise sequels aren't really remakes, though, so apparently it's OK if they suck. That seems to be the standard. There are exceptions. Mario Galaxy's music was Top 5 of all time. But if you can't afford that Japanese guy, it's OK to reuse old music! I'm serious! I give you my explicit permission!

Anyway, I'll probably keep playing Oblivion until New Castle Wolfenstein comes out. I just don't see anything else all that compelling on the horizon. Just counting the weeks until Bethesday's next Elder Scrolls release, I guess. Morrowind to Oblivion was a 5-year wait, so I'm gonna have to find something to do for the next 3 years.

Excuses aside, I should really blog more often. I was pretty amazed at how much email my last entry received. To be perfectly on the up-and-up, I haven't read the comments. I'm sorry, but I've been too busy trying to find a Daedric Katana to enchant. Priorities first!

But I checked my GMail account on Friday and it was completely swamped with dozens and dozens of new emails, many more than usual. People seemed to feel it made us buddies, which meant they could email me just to say "hi", and ask if I wanted to "hook up." I don't know if that's good or not, but I tried to answer all their mail.

Oh wait, that was Niko's account in the Corporate Email Training simulator. My bad.

Anyway, today's blog entry was just procrastination. I'm supposed to be getting some work done, so I'll get back to it. Maybe this bandit will have a katana.

Wednesday, September 10, 2008

Programming's Dirtiest Little Secret

 "And as for this non-college bullshit I got two words for that: learn to fuckin' type"
Mr. Pink


This is another one I've wanted to write forever. Man, I've tried a bunch of times. No ruck. Not Rucky. Once again I'm stuck feeling so strongly about something that I'm tripping over myself trying to get my point across.

So! Only one thing left to try: bust open a bottle of wine and see if that gets the ol' creative juices flowing all over my keyboard. Rather than top-down, which is boring, let's go bottoms-up.

Once upon a time...

...in, uh, let's see... it was about 1982. Yeah. A looooong time ago. This is practically a fairy tale.

Once upon a time in '82, there was this completely hypothetical fictitious made-up dorky 12-year-old kid named Yeev Staigey, who was enduring his sophomore year at Paradise High School in Paradise, California. Yeev had skipped 3rd, 7th and 8th grades and entered high school at age 11, in a heroic and largely successful effort to become socially inept for the rest of his life.

Boy, I could tell you all sorts of stories about little Yeev at that age. He was even lamer and more pathetic than you're probably already imagining.

However, our story today concerns Yeev's need to take a, um, an... elective of some sort. I'm not sure what they called it, but at Yeev's school, you couldn't just take math and science and languages and history and all that boring stuff. No! Yeev was being educated in the United States of America, so he had to take "electives", which were loosely defined as "Classes Taught by the Football Coach because Some Law Said that Football Coaches Had to Teach A Course Other Than Football."

These "electives" (which you could "elect" not to take, in which case they would "elect" not to graduate you) were the kinds of courses that put the "Red" in Red-Blooded American. These were courses like Wood Shop, Metal Shop, Auto Shop, and of course that perennial favorite, Just Chop Your Hand Off For Five Credits Shop.

At the time our story begins, our pathetic hero Yeev is peering through his giant scratched bifocal goggles at the electives list, trying to find one that doesn't involve grease and sparks and teachers screaming for a medic, can anyone here make a tourniquet, help help help oh god my pension, and all that manly American stuff you find in Shop class.

Yeev noticed that one of the electives, surely placed there by mistake, was Typing. Like, on a typewriter. Yeev thought this seemed, in the grand scheme of things, relatively harmless. The worst that could happen was maybe getting your fingers jammed in an electric typewriter just as lightning hit the building, causing you to jerk wildly in such a way that your pants accidentally fall down around your ankles and everyone laughs loudly at the Mervyn's white briefs your mom bought you. That would be mildly embarrassing, yes, but in a few years almost nobody would remember, except when they saw you.

Despite this potential pitfall, Typing definitely sounded more appealing than Tourniquet Shop.

Yeev checked, and sure enough, the school's football coach was actually teaching the class. For real. Seeing as this was going to be the closest Yeev would ever get to a football field during his educational career, Yeev decided to go for it.

Yeev didn't know it at the time, but they say coaches make the best teachers. You know. "Them." "They" say it. It's got some truth to it, actually. Coaches have to get a bunch of complicated information through to people with the attention spans of hungry billy goats. That takes mad skilz, as "they" also say.

Have you ever noticed how on NFL Prime Time, the ex-coach commentators and coached ex-player commentators always have big, beefy hands, and they wave them at you as they talk, riveting your attention on the speaker? It's because your reptilian brain is thinking "that dude is about to hit me." Coaches know how to get your attention. They know how to teach.

So Yeev was pretty fortunate in getting a coach. It wasn't all roses, mind you. He was unfortunate in the sense that he was living in 1982, he had little to no experience with computers, and the school was so backwards that by 2008 they still wouldn't have a fugging website, apparently. And back in 1982 they could only afford budget for half the typerwriters to be electric; the rest were the old, manual, horse-drawn kind of typewriter.

It would have been better if Yeev had been learning to type today. Today they have fast keyboards, and smart programs that can show you your exact progress, and so on.

I feel almost jealous of people who need to learn to type today. Don't you?

But in 1982, little bifocaled Yeev had no software training programs, so he had to learn from a football coach.

And all things considered, this was pretty rucky.

Let me tell you how it went down...

Learning Licks

Have you ever watched a professional concert musician practicing? I'm talking about those those world-class ones, the kinds of musicians that were trained in academies in China and Russia and have all the technique of Japanese robots combined with all the musical soul of, well, Japanese robots.

Well, they practice like this: Fast, Slow, Medium. Fast, Slow, Medium. Over and over.

That's how they practice.

It's kinda like Goldilocks. You remember her, don't you? That little girl in the fairy tale that got eaten by bears? Too hot, too cold, just right. That's how musicians practice.

In classical music, they call difficult hunks of music "passages". In electric guitar music, they call 'em "licks". But it's pretty much the same thing. You want to train your fingers to swipe through those notes like a Cheshire Cat licking its big smile. Llllllick!

Here's how you train your fingers.

You start with a passage. Anything at all. At first it'll just be a single note. Later it'll become a few notes, a phrase, a measure, a couple of measures. Anything you're having trouble with and you want to master.

First you play the lick as fast as possible. You don't care about making mistakes! The goal of this phase is to loosen your fingers up. You want them to know what raw speed feels like. The wind should be rushing through their fingery hair! Yuck!

Next you play it as slow as necessary. In this pass you should use proper technique. That basically means "as proper as you can", because state-of-the-art technique is (a) constantly evolving and (b) always somewhat personal. You pick any discipline, they've got schools of thought around technique. There's no right answer, because our bodies all work a little differently. You just have to pick the technique that you like best and try to do it right.

Eventually you can invent your own technique. Sometimes you're forced to: I'll tell you about that in a little bit. But at first you should learn someone else's tried-and-true technique, and after you've mastered it, then decide if you want to change it. Before you go charging off in your own crazy directions, you need to master your form.

Form is liberating. Believe it. It's what they say, and they say it for sound reasons.

Whatever technique you choose, in the slow pass you don't care about speed AT ALL. You care about accuracy. Perfect practice makes perfect, and all that. You want your fingers to know what it feels like to be correct. Doesn't matter if it takes you 30 seconds per note. Just get it right. If you make a mistake, start over from the beginning, slower.

Finally, you play it "at speed". If you're practicing a musical instrument, you play it at the target tempo. You want your fingers to feel musical. Musicians generally agree that you don't want to make mistakes in this phase, or you're just practicing your mistakes. But realistically, most musicians are probably willing to make a few minor sacrifices here in the third pass, as long as the music shines through beautifully.

Let's call it 5 sacrifices a minute. That's what you're targeting.

Fast, Slow, Medium. Over and over. That's what they do. And it works!

Learning to Type

Yeev's football coach was a very wise man. I don't know if he played a musical instrument, but he sure as heck used classical practice ideas.

Yeev dutifully attended class once a day. First he had to learn the basics of typing. There's not much to it, really. You hold your hands in a certain position on "home row". You keep your wrists off the keyboard. There's a diagram showing which fingers type which keys. You memorize it. You try each key a few times.

Think back to kindergarten, when they had you writing the alphabet. You'd fill a line with "A"s, and then a line with "B"s. Just like that.

Within a day or two, you have the keyboard layout memorized, and given enough time, you can type anything without looking at the keys. Just a day or two, and you're already touch-typing!

After the basics, unsurprisingly, Yeev's class played a lot of Typing Football. This was a game the coach had invented to help making learning how to type fun. It wasn't too hard, since the coach astutely realized that not everyone in the class would have the NFL rule book and playbook memorized. Typing football pretty much involved dividing the class in half and moving the ball down the field by typing better than the other half.

The drills Yeev did in 1982 could be done a lot better today using software. Heck, today they have software that lets you practice typing by shooting zombies. How cool is that?

If there's any secret to learning to type, it's persistence. Yeev's class kept at it. Every day, five days a week for 12 weeks, they typed. They didn't have homework, since it wasn't expected that they'd have typewriters. They just came in, played typing football, and did the fast/slow/medium drills.

Sure, sure, there were nuances. Sometimes they'd practice common letter groupings in their language of choice, which in Yeev's case was English. Groups like "tion", "the" and "ing" had to be practiced until they rolled out with an effortless flick. Sometimes they'd practice stuff with lots of punctuation, or numbers, or odd spacing.

That kind of detail is beyond the scope of our story. It's all handled by typing software these days. You'll see.

So how did it turn out? Well, by the end of the semester, Yeev was typing a healthy 60 words per minute. And he wasn't even the best in the class. It was approximately a 45-day investment of 50 minutes a day.

And it was fun!

Realistically, these days, with better software and better keyboards, learning to type is probably more like a 30-day investment of 30 minutes a day.

Today Yeev types about 120 wpm. He entered college still typing around 60-65 wpm, but he decided to practice up after IM'ing with a fellow student named Kelly who typed 120 wpm, using an old Unix program called "talk". Yeev could feel her impatience as they IM'ed. He mentioned it, and she said: "You should see me on a Dvorak keyboard."

Yowza. Yeev was just socially ept enough by then to bite his tongue really hard, and not type anything at all.

But enough about Yeev. The guy's made-up anyway.

Do you need to learn to type?

Well, uh... yeah. You know you do. That's the thing. Even as you make excuses, you know deep down that you need to learn. Typing is how we interact with the whole world today. It doesn't make sense to handicap yourself.

Perhaps you're one of those people who declares: "I'm not rate-limited! I spend all my time in design and almost none of it entering code!" I hear that all the time.

You're wrong, though. Programmers type all day long, even when they're designing. Especially when they're designing, in fact, because they need to have conversations with remote participants.

Here's the industry's dirty secret:


Programmers who don't touch-type fit a profile.


If you're a touch-typist, you know the profile I'm talking about. It's dirty. People don't talk about dirty secrets in polite company. Illtyperacy is the bastard incest child hiding in the industry's basement. I swear, people get really uncomfortable talking about it. We programmers act all enlightened on Reddit, but we can't face our own biggest socio-cultural dirty secret.

Well, see, here's how it is: I'm gonna air out the laundry, whether you like the smell or not.

What's the profile? The profile is this: non-touch-typists have to make sacrifices in order to sustain their productivity.

It's just simple arithmetic. If you spend more time hammering out code, then in order to keep up, you need to spend less time doing something else.

But when it comes to programming, there are only so many things you can sacrifice! You can cut down on your documentation. You can cut down on commenting your code. You can cut down on email conversations and participation in online discussions, preferring group discussions and hallway conversations.

And... well, that's about it.

So guess what non-touch-typists sacrifice? All of it, man. They sacrifice all of it.

Touch typists can spot an illtyperate programmer from a mile away. They don't even have to be in the same room.

For starters, non-typists are almost invisible. They don't leave a footprint in our online community.

When you talk to them 1-on-1, sure, they seem smart. They usually are smart. But non-typists only ever contribute a sentence or two to any online design discussion, or style-guide thread, or outright flamewar, so their online presence is limited.

Heck, it almost seems like they're standoffish, not interested in helping develop the engineering culture. Too good for everyone else!

That's the first part of the profile. They're distant. And that's where their claim that "most of their time is spent in design" completely falls apart, because design involves communicating with other people, and design involves a persistent record of the decision tree. If you're not typing as part of your design, then you're not doing design right.

Next dead-giveaway: non-typist code is... minimalist. They don't go the extra mile to comment things. If their typing skills are really bad, they may opt to comment the code in a second, optional pass. And the ones who essentially type with their elbows? They even sacrifice formatting, which is truly the most horrible sin a programmer can commit. Well, actually, no, scratch that. It's the second worst. The worst is misspelling an identifier, and then not fixing it because it's too much typing. But shotgun formatting is Right Up There.

You know. Shotgun formatting? Where you shove all your letters into a shotgun, point it at the screen, and BLAM! You've Got Code? I knew a dude who coded like that. It was horrible. It was even more horrifying to watch him, because he stared directly downward at his keyboard while he typed, and he'd type with exactly two fingers, whether he needed them both or not, and about once a minute he'd look up at the screen.

During these brief inspections of his output, one of two things would happen. The first possibility was that he'd reach for his mouse, because he had been typing into the wrong window for the past 60 seconds, often with comical results. If he didn't reach for his mouse, he'd reach for the backspace key, which he would press, on average, the same number of times he had pressed other keys.

That dude just may have been CPU bound rather than I/O-bound, though, so I guess I'll cut him some slack.

B-b-b-but REFACTORING *fap* *fap* *fap*

Yeah, yeah. Refaptoring tools make you feel studly. I hear ya. I've heard it plenty of times. The existence of refactoring tools makes typing practically obsolete! A thing of the past! You just press menu buttons all day and collect a paycheck!

I got it. Really. I hear ya.

Here's the deal: everyone is laughing at you. Or if they're your close friend, they're just pitying you. Because you suck. If you really think refactoring tools are a substitute for typing, it's like you're telling us that it's OK for you to saw your legs off because you have a car. We're not fucking buying it.

If you are a programmer, or an IT professional working with computers in any capacity, you need to learn to type! I don't know how to put it any more clearly than that. If you refuse to take the time, then you're... you're... an adjective interjection adjective noun, exclamation.

Yeah, I went ahead and redacted that last sentence a bit. It's better this way. I want us to remain friends. You just go ahead and madlib that sucker.

The Good News

Here's the good news, though. Seriously, there's good news. Like, now that you're finally gonna learn to type, I've got good news for you.

And I know you're gonna learn. You know how I know? I'll tell you: it's because you've read this far!

Seriously. The fact that you can actually read sets you apart.

You'd be absolutely astonishedly flabbergasted at how many programmers don't know how to READ. I'm dead serious. You can learn to speed read even faster than you can learn to type, and yet there are tons of programmers out there who are unable to even skim this blog. They try, but unlike speed readers, these folks don't actually pick up the content.

It's the industry's other dirty little secret.

So! Given that you've read this far, you now realize that it's high time you learned to type. You know you can do it. You even know it's not going to be that hard. You know you're just going to have to give up a couple dozen games of Wii Golf, and suddenly you'll be, like, twice as productive without having had to learn so much as a new data structure.

You know. That's why I know you're going to learn.

So I'll tell you the good news: it's frigging easy! Fast, slow, medium! Get some typing software and just learn. We're not talking about dieting here, or quitting smoking. It doesn't matter how old you are, how set in your ways you are: it's still easy. You just need to put in a few dozen hours.

Hell, if you're having trouble, just email me, and I'll give you a personalized pep talk. I can afford it. I type pretty fast. Plus your email will be really short.

In fact, here's a mini pep talk for ya: I didn't know how to touch-type numbers until I'd been out of college for 3 or 4 years. I finally got fed up with the fact that every time I had to type a number, I had to sit up, look down at the keys, and fumble through with a couple of random fingers.

So I finally spent 15 minutes a day for, like, 2 weeks. That's it. You don't have to type numbers very often, as it happens, so after a week or so, every time I needed to type a number I just slowed down and typed it right. After about 2 weeks, I was typing numbers.

That was 15 years ago! 15! 15! 15! I love being able to type that without looking! It's empowering, being able to type almost as fast as you can think. Why would you want it any other way?

C'mon. It's time to bite the bullet and learn.

Where to start?

Well, if it were me, I'd go online and look for free typing software. I'd search for, oh, an hour or two at most, spread over a week or so. I'd try everything out there. If nothing free seemed to be doing it for me, I'd get Mavis Beacon. It's, like, the brand name for typing software. I have no idea if it's good, but I imagine it's a hell of a lot better than a football coach teaching you on an electric typewriter.

I dunno, man. I just can't... I can't understand why professional programmers out there allow themselves to have a career without teaching themselves to type. It doesn't make any sense. It's like being, I dunno, an actor without knowing how to put your clothes on. It's showing up to the game unprepared. It's coming to a meeting without your slides. Going to class without your homework. Swimming in the Olympics wearing a pair of Eddie Bauer Adventurer Shorts.

Let's face it: it's lazy.

There's just no excuse for it. There are no excuses. I have a friend, John, who can only use one of his hands. He types 70 wpm. He invented his own technique for it. He's not making excuses; he's typing circles around people who are making excuses.

Shame on them!

If you have two hands, then 70 wpm, error-free, is easily within your reach. Or faster. It ain't as hard as you think. It's a LOT more useful and liberating than you think.

And since you're Rucky enough to be learning today, you might as well learn on a Dvorak layout. It's a free speed boost. Might as well give yourself a head start!

That's it. That's my article. Please — learn to type. This should be a non-issue, NOT one of the industry's dirty secrets that nobody talks about. Tell your boss you're going to take the time. Get your employer to pay for the software. Have them send you off to a course, if necessary, so you can't weasel out of it.

Do whatever it takes.

Then let me know how it goes. Believe it or not, I want to hear your success stories. Send me mail. It'll make my day!