I'm self-taught - when I was in my early teens at high-school, my parents wouldn't let me watch TV or play computer games until the evening. Fiddling with HTML looked enough like school work that I got away with it during the afternoons after school.

I built a bunch of personal websites, and sold my first professional website (static HTML) to a local estate agent when I was 15, back in 2000. I charged £300 - around $500 at the time. I worked for them for a couple of years, updating properties etc.

I studied Law at university, but worked on websites for my college, the student paper and various sports teams. I started my first startup when I was 19 - I wrote a lot of bad PHP and inline MySQL queries whenever I needed data in what we now call "views". There was no test suite, no version control and I often made changes straight into production, because I couldn't get a LAMP environment running consistently on my PC. This repeatedly took the site down for hours at a time. This was back in 2004. The bad old days.

I took a break from coding to join a management consultancy for almost 3 years, although I ended up automating a lot of my work in Visual Basic (through Excel), and went on to teach the Excel course to colleagues.

I started my second company at the start of 2011, during an enforced 3-month period of "gardening leave" between two jobs. I decided that I wanted to learn how to code properly, so I bought "Agile Web Development with Rails", published by Pragmatic Programmers, and worked through it in about 3 or 4 days, non-stop. This was an epiphany - web development all started to make sense, and we launched the first version of our site about 2 weeks later. I knew enough Ruby to be dangerous, but probably not enough to get a job as a professional programmer.

As my co-founder was teaching himself HTML & CSS at the time, we didn't really have expertise in-house, so I spent a lot of time on the #rubyonrails channel on freenode - a wonderful place to get help on anything Rails related. Stack Overflow was also very useful.

By March or April of 2011, we'd been accepted onto Y Combinator and hired our first (extremely capable) engineer, who had a CS degree. This spurred me on to become more technically capable, so I just started devouring programming books. I've mostly steered away from the classics (Gang of Four just didn't make sense from a Ruby point-of-view), but there are often more practical, up-to-date equivalents in the language of your choice. "Design Patterns in Ruby" and "Eloquent Ruby", both by Russ Olsen, stand out for me.

Ruby Koans, and then implementing a bunch of common sorting algorithms have kept me keen to keep learning the more theoretical side of stuff. I've had a little more time on my hands recently, so I've divided into open-source software - I'm currently trying to help out with Resque 2.0 (pull request coming soon, I promise!).

I've recently played around with Clojure and Go, but I'm struggling to get into them without a practical project to spur me on.

I'd say I'm now competent enough to have a good shot at getting most Ruby-based development jobs out there, if that was a path I wanted to take. And it only took 14 years!