Musicians do some crazy stuff.
For example, they sit in a room, alone, and play scales: long sequences of notes — up and down, for hours. And they never enjoy it. Anyone who has lived with (or next door to) a musician can attest that these dreaded scales are not songs. They aren’t melodic, interesting, or even pretty. They’re just… scales. 1
Why would musicians do this? Lots of reasons, but here are three big ones:
- Scales make a great warm-up.
- Scales build good technique (aka, “chops”).
- Scales show up in actual music, ALL the time.
Ok, that sounds reasonable; maybe it’s not so crazy after all. And… maybe there are some lessons to be learned from these long-haired hippies and their wacky practice routines, hmm?
Recommended for YouWebcast: The Art of Growth Hacking: Gaining Early Traction by Doing Things that Don't Scale
Scales for hackers
As web developers, we are always doing something for a site. The closest we ever come to “practice” is plowing through some tutorial we found on Google, usually involving the words “Hello World” or “foobar”. The question is, what would we do if we truly wanted to “practice” web development, on a daily basis? What is the developer equivalent to a musical scale?
Well, just like there are lots of difference musical scales, and lots of different ways to play them, I think there are lots of ways to “practice” web development. Any common task that can be done in 30 minutes is fine. For example, “Write an SQL query that gets data from two tables using a left join”, or “Use jQuery to do an autocomplete text field”. (see below for a longer list of suggestions with links to tutorials.)
Each developer is probably most qualified to come up with their own list. But in essence, these should all be things that…
- Warm up the old noggin (digital coffee?)
- Build our chops (the only way to become a “code ninja”)
- Show up in actual projects/sites (and our own Google searches…) ALL the time
Keep in mind that when musicians play scales every day, they’re doing something they’ve done thousands of times before (only a bit faster and more cleanly each time.) By the same token, you don’t have to come up with some brand new thing to practice every day. Go ahead and repeat yourself. It will just get easier and more second-nature with every iteration. You may even have the occasional breakthrough where you figure out a more efficient approach.
So crazy it just might work?
“So,” you say, “you want me to sit down every day and do a little task that doesn’t actually make me any money or contribute to any of my web development projects?”
Sure. Maybe not for the long hours that musicians put in, but 30 minutes a day seems reasonable.
“But,” you continue to complain, “isn’t that what Google is for? I can just grab code snippets whenever the need arises, so why would I need to ‘practice’ them?”
Well I think we all know what Google is really for, but yes, the search giant can also be used to find quick guides and tutorials. That said, don’t underestimate the power of having stuff in your brain. It makes a big difference, and a lot more than just the 5 minutes of googling it saves you. Imagine that you never took the training wheels off your bicycle. Now imagine that you still occasionally ride your bicycle. 2
Get my point?
“But wait,” you demur, “I’m on a strict deadline. I don’t have time for this.”
You may find that it doesn’t slow you down as much as you might think. I guarantee you that every musician at some point has questioned the value of scales, and wished they could just jump right into whatever song they need to learn. Yet, they keep going back to scales. Maybe it’s the “warm-up” benefit that pays off in this area. Sure you have 30 minutes less time to do your normal work, but if the rest of your day is more focused and productive, then everything works out in the end.
“Ok,” you concede, “I am convinced and you win this argument by virtue of your superior logic.”
Life is a stage, even in a cubicle
The reason musicians drill these scales so much is because of the nature of their job. As a performer, when they’re actually “on the clock” up in front of an audience, a musician gets to play each song one time only, and is expected to do so flawlessly, and with a healthy amount of theatrical flair. 3
As developers, things are not so much in the spotlight. But hey, what if they were? 4
If the pressure were on us that intensely, this kind of web development “practice” wouldn’t seem so outlandish. In fact, we’d practice our butts off, and the old “trial and error and google” approach would be abandoned pretty quick. Consequence? We’d develop much faster and we could rattle off all the “best practices” in our sleep.
I’ve always seen job descriptions for developers that specifically list “rockstar” as one of the requirements, but I’ve never been quite sure what that means. I used to suspect it was similar to a “brogrammer”, but now I’m of the opinion that it’s someone who actually practices in this way; someone for whom all the tips, tricks, and tasks of web development are right there in their brain, and not hiding in the Internets; in short, someone who treats web development as if it were a performing art.
So go ahead and hit the practice room, won’t you? See if your web development skills improve. Let me know how it works out!
P.S. I did promise a list of suggestions for “scales”. You probably want to come up with your own, depending on what area/framework/language you specialize in, or what level of experience you have, or even what area you don’t specialize in but want to… but here are some ideas to get you started, along with links to tutorials:
- Use jQuery to do an autocomplete text field
- Backup and restore a MySQL database from the command-line
- Do text-replacement using a regular expression in PHP
- Embed an HTML5 video file that degrades gracefully to Flash
- Use jQuery to turn an unordered list into a timed slideshow
- Install Google Analytics
- Make a page that displays as 1, 2, 3, or 4 columns, depending on the browser/device
- Make a page with Twitter, Facebook, and Google+ sharing widgets.
- Hand-code an HTML form with a variety of types of inputs
- Write a basic Drupal module
- Write a basic WordPress plugin
- Hand code all the SEO metatags a page might need
- Write an SQL query that gets data from two tables using a “left join”
P.P.S. Yes, using copy-paste IS cheating.
1: The Sound of Music tried to make scales fun, with all that talk of female deer, needles pulling thread, and whatnot; but all that really did was disappoint of a lot of kids who thought their music lessons would involve jam and bread…
2: I kid, because I love.
3: Common favorites are pained facial expressions, abnormally raised eyebrows, and well-placed head-bangs.
4: Surely you’ve heard tell of the hot new Bravo reality show, “Web Nightmares”, where a developer tries ineffectually to code a site and then gets called an “e-donkey” by Gordon Ramsay for omitting SEO and using Flash?
[Image: Horian Vorlan]