I started learning guitar before my fingers were big enough to form a chord. I found an old acoustic with two strings and starting figuring out how to play the riff to Eric Clapton's "Sunshine of Your Love." I needed to play so bad I would have made my own guitar if I had to. I was like one of those young hackers who scratched out programs on notebook paper so that they could run to the computer lab and see if it would work.
Fourteen years later, and well after college, I had a similar experience when I started teaching myself HTML/CSS, and then eventually Ruby/Rails. Never have two learning processes been so similar, and those similarities have shown me that teaching yourself is the quickest way to find your unique voice.
Hacking on the guitar is an excellent analog to self-taught coding. Hacking is exactly what guitar players do when they start out. When you're learning guitar you're fighting against wood and metal to make a sound. You hack at the neck and strings until you've bent this contraption to your will. It's a lot like installing RVM in a terminal shell for the first time.
But, the best part is that you're making a sound only you can make. No matter how small or sloppy, making that sound is addictive. It's what turns on guitar players and coders alike. It's the payoff for patiently enduring hours and hours of painful failure.
In those breakthrough moments you recognize the power of making something for yourself—a sound that changes the sonic landscape of a room, a line of code that changes what a computer can do.
Your gut often tells you what you need to learn next. Sure, everyone's made a blog, but sometimes you just need to write your own. There's something in the process that you need to understand. When you get excited about the intro lick to The Rolling Stones' "Rocks Off" you can't just enjoy listening to it. You're compelled to learn how to do it.
Because you're self-taught, and learning things the hard way, you start developing strong opinions. You're not advanced enough to articulate your feelings, but you prefer Bob Dylan over Cat Stevens, Ruby over PHP.
I've never learned a scale or chord for the sake of technical knowledge. I've learned because I needed a new tool to play the songs I wanted to play. I formed bands, and we wanted to play new songs. We wanted to write our own songs. I was always hacking, always with others, and always with a real goal in mind—to play a gig or make a recording. It's a great way to learn what matters.
Sure, having a technical foundation for any skill is essential, but that can come later. Thurston Moore of Sonic Youth reimagined the guitar because he didn't know how to tune it properly. By the time he had mastered his instrument, his self-taught approach had matured into a singular style of guitar playing that cleared the path for 90s grunge. He acquired the technical chops he needed in service of his own muse.
Whether you're learning guitar or learning to code, all you need to do is play real music, do it with others, and follow your gut. By teaching yourself, you're already on the fast-track to finding your unique voice.