Von Neumann’s Apprentice: Welcome

The day was January 11, 2007.  I had just turned nineteen years old and Apple had just announced the first iteration of iPhone.  I was skeptical about the idea of a smartphone made by Apple, but as a recently converted Mac user, the idea made sense – and made me salivate.  It was years before I would pick up my first iPhone, but much more pertinently to my then-current situation, I was starting a journey I had longed to take for much of my adolescence: I was starting to learn how to program.

Seventeen years later, the memory remains.

I have loved computers for as long as I can remember.  When I was a child, I found myself entranced by the idea of a device that did whatever you told it – and, equally, by the fact that you could tell it to do anything.  The early Macintoshes that were my first foray into computing – owned by the elementary school I attended – were magical-looking devices, even by the standards of Apple’s mid-90s design language.

A Macintosh Performa 550, very similar to the LC 575 I used as a child.

Not only was the LC 575 my first brush with any kind of optical media, but it was also my first gateway to the Internet in 1997 or 1998.  I learned to type on an LC 575, I learned to navigate a WIMP interface on an LC 575, and I learned basic word-processing and image manipulation on an LC 575.  Even without learning to program – and even without giving much thought to the origin of the programs I used, for that matter – I found the computer a fascinating machine to try to tame.  Moreover, I took to it eminently easily, finding a comfort and ease with technology that my peers often didn’t – and that I seldom ever found in other people.

I first encountered programming at age 10 on my grandmother’s old 286 computer, which ran MS-DOS 5.0.  Its stark white-on-black command line interface was a far cry from the sophisticated GUI of the Macintosh – and her computer didn’t even have a mouse or the means to run Windows.  Nonetheless, I found myself taken with writing QBasic programs based on code I had found in old computer books that she had given me.  The dialect of Basic in those books didn’t mirror what I had to feed the DOS machine, but it more or less worked – in the same kinda-sorta fashion I’m now intimately familiar with as a computing veteran – and I filed the experience away in the back of mind to revisit later in life.

That opportunity came in 2007.  I had tentatively messed around with a C compiler, but after getting about as far as my first printf statement, I shelved the matter again, focused on high school math and language courses that I needed for college.  In that context, programming was an afterthought, a curiosity, something that I might pursue as a hobby.

But the itch in me began to grow to a level I could no longer ignore.  And so it was that in May 2011, I finished my bachelor’s degree in computer science.  It was a tough battle, one made even tougher by the state of my mental health and the unsupportive learning environment I was met with at the university.  I was lost, my difficult classes made me feel even more lost, and only in one of my very last courses did it all come together and I found the esprit de corps that I had sought for so long.  That made me pine after what might have been, but by then it was too late – I accepted what had been, moving on into a job search that ultimately took me seven years – before I decided to go back to school and change career goals.

Now the itch has started to come back, and there are a few key differences between now and then:

  • I’ve seen the material before.
  • I’m more motivated to learn it this time.
  • I have access to every resource I could possibly need that doesn’t require me to enroll at a university.
  • I have a platform for sharing my learning journey and everything it’s going to entail.

Computing is what this site is about.  It’s in the domain name, it’s in the title of the website, and it’s in the site’s (private) mission statement.  I hope to write here about matters germane to self-instruction in computer science, matters of great relevance to any autodidact regardless of what they study, and occasionally matters of relevance to no one but me.

Join me in my great journey of rediscovery.