1) Inspiration followed by Realisation followed by Ambition. I started messing around in Microsoft Frontpage age 11 (2000ish). I was shown how to make a simple VB6 program by my father (2002). Here I came to understand logic and how GUI's make stuff happen on computers. I wrote trolling/phishing tools for AOL for about a year making use of more complicated hooks written by other people (2003). I then turned back to the web with PHP, since it was a more accessible way to get my things into the hands of people (2004). I played computer games back when you could mod them - I wrote scripts, made 3d models and textures. This is where ambition set in. My first PHP real project when I thought I'd learnt what I was doing was a messaging app with login / registration (2005). I found MySQL doing this. I had a MySQL book which I referred to but it was the only book I really used to learn. My peers found security holes in my app, the login had a redirect which included the user id in a get argument, which you could simply change (true story). This taught me the importance of considering how people will attack my code. This was a critical factor in helping me learn to code When you consider from another perspective, you more deeply understand what it is you're doing. I continued with PHP and MySQL and the front end stack, I kept pushing myself, starting ambitious projects (hell, I can build Facebook) that ultimately I'd never finished. I got bored quickly, I was always doing something new. Back to PHP, Zend Framework (my first framework) provided another giant leap in my understanding (2006). I delved into it, I realised how much I can learn from others. I learnt the benefit of going into the code and understanding it. I learnt design patterns, I learnt what good software looked like, I began to write software, rather than 'web pages'. I dropped out of college and got my first job as a web developer writing PHP websites and doing sys admin for hundreds of clients, alone (2007, age 18). I started to get good at what I did professionally. I began looking harder at other languages, but only a little. I wouldn't start projects with new languages, just appreciate them from afar. Ruby, Python, Go, C#, Java. I realised that databases, other software, tools, services and api's are all just components or tools, nothing to fear and held new and potentially better ideas than I had at the moment. MongoDB, CouchDB, Redis, zeromq, RabbitMQ, memcache. I carried on focussing on few languages but becoming far more capable and adaptable for the next 4/5 years. In 2011 I started to become interested in JavaScript and doing that properly, because it'd always been taken for granted with jQuery being such a great API.
2013 I'm writing browser-based apps and apis. You can ask me to do anything and I'll probably be pretty good.
Slacker at school, College drop out, in full time employment since the age of 18. Now a multi-skilled contractor at 25. I'm not really a programmer but more of a problem solver. Programming is one of the secondary tools I use, my brain is my primary tool. You don't need formal training to achieve it.
Timeline:
1988: Born
2000: Frontpage
2002: Introduced to VB6
2003: Wrote AOL hacks
2004: PHP, modding computer games
2005: Started building PHP apps, dropped out of (UK) college
2006: Discovered Frameworks and learnt good practices
2007: Got a developer job (PHP)
2008: Got better at my job
2009-2010: Had a few different jobs, diversifying, becoming adaptable, learning new tech
2011: Found confidence
2012: Naturally leading dev teams
2013: Contracting, multi-talented
2014: Who knows
Slacker at school, College drop out, in full time employment since the age of 18. Now a multi-skilled contractor at 25. I'm not really a programmer but more of a problem solver. Programming is one of the secondary tools I use, my brain is my primary tool. You don't need formal training to achieve it.
Timeline: