This is a story for those aspiring entrepreneurs blessed with thoughts and pep, and who just itch to pick up the brush and freaking paint their hearts and minds out -- Jackson Pollock style.
"The spread of computers and the Internet will put jobs in two categories: People who tell computers what to do, and people who are told by computers what to do."
Our prelude is this Nostradamus-like prediction from the almighty Marc Andreessen. At the University of Pennsylvania, I used to be one of those guys who'd have try to get engineers to build things with or for him. I've learned that if you're not too arrogant but you're loud enough, you'll find someone to be your lovie-techie. But then comes the famous "choose 2" moment. All freshmen are told: "School, friends, sleep -- choose 2." Now add a very-likely-to-fail-startup-that's-not-even-my-idea and it's not surprising that even the steamiest college power-horse nerds flake on new ventures. The simple conclusion that slapped my cheek really hard: when it's your brainchild, you'll be the fieriest, most strident-voiced mother hen. So just learn how to code. A year ago I was a virgin.
Here's how I lost the card.
1 - Start with the right book
I like books, not online video lectures, because you can go through books at your own pace. We're lucky Lukes. Programming manuals just like web development languages are undergoing favorable natural selection: they're getting friendlier for beginners.
In my case, the masterpiece was Michael Hartl's now über famous Ruby on Rails tutorial. It's fun, comprehensive and keeps you building. End product: a cute little chirping Twitter clone.
2 - Do, and build what you've been aching to build.
Hartl's Twitter exercise is the perfect type of immediate gratification we're all addicted to. If you're not reading lines of code but making your startup dream baby, you'll keep Champollioning through the cryptic hieroglyphs. Psychologists call it "expectancy theory."
Give yourself a project. Mine was useless, but made me happy enough: a web application that shows you random YouTube trailers as you hit next -- with Facebook login as the whipped cream. Simple base, and you can either build on top later or move on to your next learning enterprise.
3 - Show some cojones: take a programming class
One thing I quickly learned at UPenn as a touching little business and arts student: engineering is for the Samurai. Math and coding -- scary. They're very French: great sense of humor if you can shovel deep enough.
I signed up for an intermediate level Java class with no prior experience and self-studied to get ready, but knew I was in for it. And I was. Six classes, but Señor Java was as needy as the five other combined. It was worth it. It gets you thinking like a coder, even if it's not about building websites or apps.
4 - Hackathons are good
They're really are nonpareil learning environments. Everyone's yelling and sweating in their hoodies and overusing bathrooms because of the Red Bull Jello shots, but you build and ship something in 24 hours.
As soon as you're not totally lost, jump in and join a team. You won't be the top coder, and people might scream at you if you're lucky enough to be given the chance to mess up. You'll learn a semester's worth.
5 - Apply for internships you're not good enough for
Or barely. Hussle a lil'. Mention your other skills and show your energy -- make them believe you'll learn on the job -- because it's true. If you work with just half-hackathonian intensity, you'll build some great stuff for your employers.
Perhaps you once pitched yourself as a Don Draper personage, but you really just can't down Manhattans all day at Google till a new wee creative revelation is sent in to your office, you need hard skills to get on par with everyone. The rest will make you special.
6 - Get to know where to go when you get stuck
You'll meet tech superstars on the road to geekdom. Stay in touch if you hit it off and see if you can collaborate on a few side projects.
"Resource" also means documentation for your web dev language. I started with Python but quickly veered to Ruby on Rails. There's always something to fall back on: beautifully written guides, extensive video resources like Ryan Bates' RailsCasts, and plugins for your app, appropriately named "gems" that will solve any issue.
7 - Find a coding buddy
It's one of the great pleasures of entrepreneurship. Your shared raging gauchesque pursuit of Patagonian plains-y freedom will get you learning faster, and you'll build a friendship at par with your grand metaphorical adventures.
Seriously, you'll become bros. Try to code with someone who's at your level -- lessons learned tend to linger more when you come to simultaneous epiphanies.
Just think about it. The nice warm cliché-soup poetry. You can just sit and smack at your keyboard for a few hundred hours and voici-voilà! If you've been writing code and nothing less, your startup is served. Gazpacho. Well chilled.
I know little but I know my story, and would say do it. Do all of it. It's worth the scare.