One of the things that comes to me right now in answer of this question is a few years back when I started to “play” with the lego mindstorms kits. I know that this specific thing may seem a bit un-educational for being part of a required school task, but seeing as it ties into my senior project the relevance can’t be questioned. It was really the second (maybe even first?) of two major exposures I had to computer programming before diving into Apple’s SDKs that eventually have formed the baseline to my senior project.
The initial method of programming in those kits was with software that minimized the entire process of writing code down to a preset number of “code blocks” that you needed to stick within the boundaries of. But it provided a solid starting point for understanding quite completely the basic methodology of modern programming’s components. Things like loops and ifs as well as the idea behind variables for temporary data storage. I’ll admit that I rarely think of it as where I started in terms of computer programming within Cocoa and Cocoa Touch, but in a way it is the start, and that is just simple fact.
The other solid starting point for me with computer programming was equally not-real-programming. This was in beginning to understand how to write solidly complex Applescripts on my Mac. This further solidified some of the basic ideals, and certainly locked down the grasp of basic functions within the higher-level automation for Mac OS X. It represents a “scripting language” where what I write all of Tenseg’s Mac and iPhone applications in is a “programming language”, but between these two ways of getting my feet wet I formed the basic understanding I later grew into a fairly useful skill set.
The firs compilation of real Cocoa code I was exposed to was Eric’s original Fact Triangles source code (which just weeks ago I made obsolete in releasing v1.3 on the Tenseg website as a part of my senior project). But the first code I really wrote comes in the form of a secondary language for the lego mindstorms kits, NQC (or Not-Quite C). Even here I was primarily just copying whole functions and files of code from other sources (versus now where it’s just lines of code from other sources), but once I was able to see in that old code the same basic elements and potential indentations as with my PF Touch source code, I understood just how solid all these things led up to my current understanding of modern computer programming.
All of these were the start of the tendrils that are now wrapped within my major contributions to the work Eric and I have both been doing under Tenseg. Overall it has only been a very short number of years since I first dipped my toes in this hobby/possible career, but as my senior project’s application deliverables stand witness to, I have a good start for my lifetime of this being at least a hobby, maybe to become my career after college.