Peter Seebach: How I learned C
I wish this had been my back story.  Maybe someone here can help me out, or maybe I'm just a terminal under-achiever.I never learned a lick of programming until I hit school.  I tried, using the limited resources I had at my disposal.  But I lived in a small remote town of 6000 people, and that was the major urban center for well over 200km.  Being Canada, we had no access to any of the major online services, and any services available in Canada were long distance.  My parents only had one phone line, so I never got to explore the one bbs that was available in the town.Around 1992, I was 13, my parents finally got a computer.  MS-DOS/Windows based.  I was familiar with computers, having become addicted to many games at friends' houses.  But, being DOS, getting games to run forced me to learn the hard way. Mostly this involved destroying things and reinstalling them. I wish I'd known anything about unix/linux, but I'd never heard of it.  Dos was the only thing I had seen or knew.  I didn't even know anyone with an amiga.I tried to do things with basic, but I could find no documentation, and the basics were beyond me.  I tried modifying things, the odd bit of hex hacking (my crowning achievement was modifying Civ to give me extra gold when I negotiated -- but only because it was stored as plain text in the dialogue files).I knew programming -- and especially games -- held interest for me, but I could not penetrate it myself.  In 1997 I finished high school and went off to an overpriced game programming school which shall remain nameless.  I left with not a lick of programming ability.I learned fast, and with just the first few weeks of C courses, and a couple hints on how to draw a bitmap, I set off like a rocket, and was whipping out games before anyone else.  Programming just clicked for me.  I graduated with one of the highest marks (and turned almost every assignment 
in to a playable game of some sort in the process).Fast forward nearly 12 years, and I am a successful and decent coder.  I know a bunch of languages, I can learn any new one in a few hours of puttering around (often without a book, though I do like having reference manuals), I've done web stuff, and windows apps, but mostly just games.But in reality, I have done very little outside of work.  I'm good at what I do, I have my pick of companies any time I want, my last two games were Assassin's Creed 1 and 2, responsible primarily for the combat systems. I am apparently good at it but I've never felt like a great programmer.This is never more obvious than when I try and do personal projects.  My harddrives and perforce depots are a wasteland of started and abandoned projects.  I hit a technical challenge and I don't have that drive I did when I was a kid. I'm not really happy with my job, I don't find it as satisfying as I once did, and I want to do things on my own, but, somehow it just doesn't click for me.Often I just chalk it up to being addicted to big development -- I'm used to having a massive support team for art, level design, etc.  And I'm not multi-disciplinary.  I can't do any art at all.  Even placeholder, it's just horrible.  I can do design, and I can do code, and most other things are beyond me.But I feel this is just an excuse I use to avoid actually working on my own projects.  I'm pretty sure I have the ability, but I can't really find the focus.I guess this has been rambling, but I do hope maybe someone can give me some pointers as to what my problem is.  Like I said, maybe I'm just a terminal underachiever when it comes to my personal projects.