A year ago I attempted to learn Rust, a new systems programming language created by the Mozilla Foundation. I learn new computer languages not because I get any practical utility out of them, but rather because I find computer languages to be inherently fascinating. Studying a new language is like reading a profound work of philosophy. It makes your mind expand with the possibilities and stretches you to think in new ways. At my job in ProcessMaker, Inc., I occasionally learn a new trick or two from reading PHP and JavaScript code, but those languages no longer stretch the horizons of what I already know.
On the other hand, I still fondly recall how my mind was blown by the concepts I learned when I first learned programming. It was my senior year in college and I picked up the book, the New C Primer Plus, 2nd Ed. by Mitchell Waite and Stephen Prata while Christmas shopping in 1995. I stumbled across it in Circuit City on the bottom shelf below all the shrink-wrapped software. I recall that it was sitting all alone on the shelf–all the other things around it had been snatched up by the Christmas rush. It was a throw-back to the time when learning how to use a computer still meant learning how to program it, but most people rushing through Circuit City had overlooked it. At the time, people told me to learn a newer language like Java or Visual Basic, but I had become fascinated by how computers work, and wanted to learn the gritty details of a low-level language like C. I spent the next 3 weeks reading 700 pages of code examples in utter fascination. The book taught me dozens of new concepts. At the end of each chapter, there were exercises to do as homework. Since I didn’t have a C compiler, I wrote out my code examples with pencil and paper, not really knowing if they worked or not, but simply enjoying what I was learning.
Continue reading