Quick bio - The difference between As in, the difference between your brain and your computers CPU. The difference between how you think and speak and interact, and how your computer does. The difference between languages, be they interpreted or compiled, object oriented or procedural. This first chapter will hopefully assist in the process of the first few days after the moment where it first occurs to you that you want to learn how to develop software, be they games or business or iPhone apps. The real difference for me was the the one between what I thought the process was going to be and what it's actually turned out to be.
The moment occurred for me in a car. I had bought an iPhone a few months after it first came out. It was the first such early adopter move that I'd made, technologically speaking. I knew as soon as I started screwing around with it that this was a tool that could really help you get your life organized, something that I'd managed to get around doing for the previous 30 years. All of the built in applications that Apple provided for their first tier of users were most helpful in that task - email everywhere, calendar, internet, maps, oh yeah, and a phone. The real fun didn't begin for me until they (Apple) released the 2.0 software update. This was the update that heralded the opening of the AppStore, where there were now hundreds of apps available from 3rd party developers that could extend the usefulness of your phone. Anyway, to make a long story no less long, the first long car ride I took after updating my phone was the one where the real potential of mobile computing dawned on me.
I came home that weekend determined to figure out what it would take to learn the art and craft of building my own applications, as this was clearly a vast and uncharted territory for creative people to make things that could affect the lives of huge numbers of people (and maybe even make a living doing it).
I got home that week and started Googling. A search on Computer Programming turned up a mountain of information that was so staggeringly huge as to be almost useless. I did learn a few things - Wikipedia can be your best friend; there are many different ways to program computers; there are endless amounts of information on programming computers, most of it written by computer programmers with no conversational or literary ability whatsoever.
I was able to discern a few important pieces, however. One was something called "compilation". I wasn't sure what this was or why it was important, but hey. Another was that if you're going to develop software, and you're used to working in a more or less standard Windows environment, you're in for a ride. Another was that there was something called Object Oriented programming, that supposedly is some kind of elevated way to program. iPhone apps are written in an OO manner. Oh, and if you really want to develop apps for the iPhone, you have to buy a Mac. That's some clever marketing, and the push over the cliff that I'd been waiting for for years. The bonus was that once you bought the Mac, all of the tools to develop apps, as well as an enormous user community was there to help, for free. Step 1.preface Chapter1b