Feed Your Gut’s Problem-Solving Beastly Appetite, Learn to Code
Exactly 18 years after I completed my first programming class in college, I am completing a certificate in Computer Programming and Software Development at the Community College of Philadelphia. Here’s why:
It is Spring 1999 in Baltimore, Maryland. I am 18 years old and taking “Computer Science I” (CS201) at Loyola College. CS201 covered the basics of the C programming language, a powerful language and one of the more popular programming languages at the time. Before CS201, I had no clue that “code” was a thing that could be learned and that it was possible for any person with access to a computer to use text commands and logic to make a computer basically do whatever you want. How cool! So there I was, 18 years old, with CS201 as my first introduction to coding and Dr. Eastman, this awesome guy, who was basically like this version of Chevy Chase playing the role of computer science professor, to introduce me to it. I absolutely loved it and remember throwing myself into it completely, more than any other academic pursuit previously.
Too much time has passed for me to remember the exact reason why I enrolled in CS201. It might have been because it fulfilled some sort of “core requirement,” but definitely had something to do with befriending this guy named John who lived down the hall from me in my dorm.
John had a habit of sitting in his dorm room, in the dark, in front of a 25-inch Dell CRT monitor all day playing a game called MegaMUD. This was significant for me because he was the first person I had met using a computer to do something other than word processing. So, I was intrigued and began to just sit and watch him play this game, which involved watching him type commands into a command prompt, like you would in any command-line interface.
John had taken an intro to computer programming class with Dr. Eastman and explained how much he enjoyed it. Since Dr. Eastman would be teaching CS201, we both came around to realizing that enrolling in the class would satisfy our now mutual interest in computers with a fun professor to show us the way. (I also have this vague recollection of being motivated to take the course to learn how to run a fake disk formatting program on John’s computer. If John could be convinced that his harddrive were erased, his MegaMUD efforts would be forever lost and necessarily abandoned for a drink at the bar with his new buddy. I actually did this, he fell for it, and the plan worked. John became a lifelong friend, going from dorm friend, to roommate, to officiant of my wedding).
With the help of Dr. Eastman, John and I got through CS201 together with flying colors. It got me so hooked on coding that I enrolled in an Advanced Programming class at Brooklyn College while home over the Summer. When Fall rolled back around, John and I declared ourselves “Computer Scientists.” Practically speaking, this meant that we checked some box on some form in some college office to declare Computer Science our major.
Naturally, as newly-minted “Computer Scientists” we enrolled in Computer Science II (CS202). CS202 introduced more complicated C concepts like “pointers,” an essential component of the C language. I loved CS202 as much as its predecessors and was well on my way to becoming a full-fledged “Computer Scientist.” However, Computer Science at Loyola came with required math courses. So, not everything went as planned and, unfortunately, Calculus II happened…
There’s this funny thing about math, it turns out you actually have to do math problems to learn it. So it came as quite a shock to this relatively smart and savvy college student, that cramming the night before a Calc II exam would not work. That along with all the other temptations of college, like having fun and meeting my future wife, did not make for a successful Calc II experience.
I dropped Calc II and, as a result, my college and professional career meadered down a different path. I went from “Computer Scientist” to other academic titles you can put in quotes, such as: “Political Scientist,” and “Juris Doctor” and “Master of Business Adminstration.” These esteemed titles, of course, bestowed me the privilege to later earn newer titles in quotes like: “Agency Attorney III” and “Web Manager.” Six months ago, I decided to start my own digital product consulting firm so I could choose to put whatever I want in quotes. :)
That CS201 class at Loyola taught me that you can and should do these amazing and potentially limitless things with technology. It also taught me that, although technology is not the solution, if applied correctly, you can solve problems with technology. So, like any other problem I’ve encountered, I never shook it, and knew one day I would have to go back and solve it. Part of that meant I stopped practicing law to pursue a new career in technology, the other was finding Code for Philly, where I started coding a bit, and got hooked, again. Thinking back on this now, it is funny how it took a college-dropout-turned-Philadelphia-tech-leader to remind this college-class-dropper, how accessible coding can be and how much it aligned with my values, even after all these years. (Thanks again, Chris, and, of course, Kat, Lloyd, and Mark). For me, Code for Philly has always been about changing the way you interact with your city and government through technology.
Anyone who knows me really well knows that I struggle with the fact that life is finite. It actually depresses me knowing there are things out there I will never learn or see. Yet, despite this and, perhaps, naively, I push forward learning and doing as much as I can before time runs out. It was only recently, however, that I came to terms with the fact that this urge to learn and do is so deeply and genetically programmed into the fabric of my being — in my heart, in my gut — that it simply cannot be suppressed — and, as it turns out, it shouldn’t.
To suppress such urges would be to supress the very part of my character that makes me worth a lick to anyone — my relentless, unyielding and tireless desire to problem-solve. Once I get wind of something that can and should be addressed, I rarely just let it go. I do not, and cannot, stop until it is fixed.
In a way, coding has been one of those “problems,” for me. It is not going away until I solve it and feel fulfilled enough that I learned all there is to know to feel complete. So, now, 18 years after I sat in CS201 in Baltimore, I am sitting here, at my computer in Philadelphia, replicating Monopoly in Java as an exercise for the Community College of Philadelphia’s CSCI111. Guess what? I am enjoying it as much as I had when I was 18. More importantly, I am taking a break to write this post, really to remind myself but also in hopes that something here resonates with you as well. Particularly, this:
If you like to problem-solve but you are not finding ways in your professional life to do that, try coding. Also, you must follow your gut, you must deflect the naysayers and the advice of previous generations operating on old software. You must do what you find interesting. Seek out things only that motivate you to leave some mark on the world. That is what I am still trying to do, why I never forgot or gave up on coding and why I am doing it again now. Ignorance is for quitters, problem makers and conformists, I am not one and still have much bigger problems left to solve, and I intend to.