Programming: Then and Now
I’ve been programming since age 12. That was 34 years ago (holy crap). I would wait for my issue of Creative Computing to show up and type in every program line by line into my Dad’s homemade PDP-11. Later I would do the same with our home built Apple ][ with wooden case and detached keyboard (man, I wish I still had this). I knew all through High School this is what I wanted to do, so I went to college and got through in 3.5 years with only 0.5 credits over what I needed to graduate.
My first job was at WordPerfect programming the Apple IIGS and NeXT versions. I remember the hardcover Apple II GS programming manuals. We devoured every word in them. Now looking back, it’s incredible we were able to do what we did with the resources we had. I look at my programming workflow now compared to then. How frustrating would it be today to only have just a book and no internet resources to get the job done? Could I even get anything done? Our devices seem pretty much useless without an internet connection.
Back then Apple had a support bbs (I think this was on AppleLink — the precursor to AOL). We got help from the guys at Apple (Dave Lyons and Matt Deatherage come to mind). But there was little community beyond going to conferences and talking to people there and the beginnings of newsgroups. You had to figure out problems with your core team. And when you figured out a solution, there was no real way to contribute back to the community.
What would I do if I couldn’t go to Google and type in the exact output from a compile error and find 10 people with the same problem? But has this made me a lazy programmer? Have I gotten in the copy/paste mode without understanding the real problem? I think not, but I think that has to do with my years of experience and recognizing issues and resolutions. If I was a new programmer, yes… I’d be worried that I was just getting into a code-stealing mode and not really understanding the issue. Today I feel like I can quickly recognize whether a solution I find is just a hack or well thought out (although I do admit to “stealing” the hacked version in time crunch mode sometimes — and usually end up paying the price and refactoring). I find myself frustrated in the iPhone development forums when I see developers just wanting someone to write a piece of code for them and not really wanting to understand the problem or core concepts.
Lately I’ve been using Cocos2d a lot more. Although the documentation is really lacking (I’ve seen better javadoc!), the amount of people blogging and screen-casting about it is unbelievable. It’s a great community (let’s hope Zynga doesn’t screw that up). The fact that I can watch someone else in XCode demonstrating a concept or technique is invaluable. It’s paired programming at it’s best. There is no better way to learn programming then to watch someone else doing it. How many times have I been watching someone at work and go “wait… what did you just hit to do that? brilliant!”?
So I’m pretty glad I was born in the era I was. I feel like I got the best of both worlds. I experienced enough early on to enforce a learning ethic, but toiled enough to appreciate the plethora of information available to me today. I use to count the cycles my Apple II assembly code was taking (you had to at 1MHz). I don’t feel like this is something a college graduate now days has experienced. I wonder what things will be like in another 34 years? Will just searching for a resolution seem archaic? Perhaps. But then again… I remember back in the 80s when everyone predicted we’d just be buying off the shelf software components and wiring them up and that there would be no need for programmers anymore.
Next week I’m hoping to post some gameplay video of my new game. Until then!