This post is specifically about programming, but is applicable to a lot of skills.

I taught myself to code circa age 17, and my poison of choice was PHP. I chose it mainly because it’d been the language used in the rewrite of the then-huge forums, and Scott–the webmaster of said site–was the only guy I knew who was anything approaching a Real Life Certified Professional Geek. My previous coding experience mainly consisted of looking at forum code and making HTML tweaks buried in the echo lines, and I was pretty good at that, so I thought actually writing something myself wouldn’t be too hard.

I did have a project in mind: I wanted to write a weblog.

Don’t all laugh at once.

Remember, this was the early ’00s. LiveJournal and Blogger had only just launched, and though I had accounts on both services, I thought having my own homebrew script would be much cooler.

So I opened a tutorial, sat myself down, and decided to start with a login box.

About half an hour later I was literally in tears–actually bawling my eyes out in my study–because I couldn’t do it. I didn’t even know where to start. And, suddenly, the project seemed so insurmountable, the hill so impossibly steep…

I turned to Google: php login form. That lead me to someone else’s code, which–eyes still red from tears–I picked apart and reassembled for my own ends. Then, cookies conquered, I moved onto the basic blog post CRUD, and was pleased to find it easy.

I never looked back, after that; nowadays, I can and have written pretty much anything in PHP I’ve wanted to, from schematic mapping interfaces to RSS data aggregators to one script that logged itself into LiveJournal.

But I’ll never forget sitting in front of my very first <?php, tears running down my cheeks. Those first few steps were difficult. But I had a project. And I made it in the end.