I used to stay up from midnight until 2am many nights a week for at least a couple of years writing Flash actionscript code. I didn’t do it because I wanted to create anything – I did it, because I wanted to learn how to write code. Charlie told me that the way to become a good coder was to code between midnight and 2am. …In hindsight, I think I took him a little too literally… But his point was a good one: In order to write code, you’ve got to write code. There’s no other way around it.
You can only learn to drive a car by driving a car.
You can’t learn to write code from a book in the same way you can’t learn to drive from a book. Sure, you can learn where the gas pedal is and where the brake pedal is, but the only way to understand how to pull out into an intersection is to do it. Same with writing code. Put down the books, take out your computer and code something (anything, really). Write some html if that’s where you are at – see if you can break it! See if you can add an animated gif if that’s your thing. Have a WordPress site? Log into FTP and see if you can add your logo to the header. Go wild – it’s your site, and doing is the only way you’ll learn.
You can only learn to cook by tasting your food as you cook it.
One surprising thing that comes up in every single episode of Kitchen Nightmares is that, for one reason or another, the cooks don’t taste their food. You can’t cook good things unless you taste your food – and if Gordon Ramsay has taught us anything: you’ve gotta be opinionated in your tastes! You are better off offending some people with too much taragon than offending nobody – At least the taragon people will love you! If you create bland food and offend nobody, you’ll find that nobody wants to eat your food at all – not even you!
So as you write code, be opinionated. Build the contact manager of your dreams using WordPress and give a middle finger to all those people coding in [insert new new code library here]. Sure those people will think you suck and that you’ve made a horrible decision, but the WordPress people will LOVE you for it!
Write bad code.
I recently helped my son learn how to ride a bike. His Star Wars bike is way too small for him, but he loves it. He doesn’t even know it’s too small for him – he just loves that it’s Star Wars. His riding was like my coding when I first got started – messy, illogical, and oftentimes it crashed. That didn’t deter him, and it didn’t deter me. You can only experience great joy after you’ve experienced great failure after great failure. Falling sucks every time, but keep in mind that joy is joyful every time – And the deeper you get and the more experienced you get, the more you will fail, but the joy is still there if you stick it out a bit longer.
The best skateboarder of my generation, Tony Hawk, recently became the first skater to ride a cyclone ramp. The video documenting his learning process is eye-opening in that it shows how sucky he was at cyclone ramps before he finally beat succeeded (He fell a lot and got lots of cuts and bruises during his cyclone learning process). After 15 years, I still fall all the time when writing code. The work I’m doing is more complex than it was 15 years ago – but that’s the point. Joy will always be waiting for us on the horizon after spending 8 hours banging our head against the wall trying to figure out that little code thing – A moment of joy is our reward.