It’s been a year since I started learning programming. In that time, I went from not knowing what HTML was to doing machine learning and learning type theory and burning too many hours getting my mail to work in the terminal.
I’m hardly great at programming yet, but in any progress there’s pride, the stubborn pride acquired from exceeding your old self.
I read this quote by Benjamin Cardozo once, and it’s stuck in my head ever since:
In truth, I am nothing but a plodding mediocrity — please observe, a plodding mediocrity — for a mere mediocrity does not go very far, but a plodding one gets quite a distance. There is joy in that success, and a distinction can come from courage, fidelity and industry.
My motivation to learn programming came about for the dumbest of reasons: to win a bet against Leo. I bet that I could write a web app in C in one week. I didn’t win that bet, but out of nothing but pure stubbornness, I signed up for most of the lower-division computer science courses in a single semester, along with 2 upper division math classes. I always claimed that I didn’t care about my GPA, and this ended up being the chance to prove it.
It was so damned hard. I had no idea what I doing for most of it, and I was too stubborn to ask for help. Leo, if you’re reading this, the reason I bugged Alex and Chris for help instead of you was to avoid looking stupid. And now I look way more stupid by publicly announcing it. Hopefully this will inject some humility into me.
What did help was continuing to read about the history of computing, the Unix philosophy, functional programming and the connections to mathematics (this is more because I have a math background), and learning the meanings of terms like expression and statement in great detail until I could figure out how they all differed and why people bothered having concepts of them in the first place.
More than anything, just sort of getting exposed to it by jumping in the deep end helped.
In characteristic fashion, things made total sense precisely two months after I had finished the class for them. So two months too late. But better than never. It was the same way for math. I only really got things after thinking about them properly for a while, which works out to a few months after class is over.
I started programming to win a bet, but I stayed because I found a whole new world. A world that I can spend a lifetime in, and a world that I am convinced will define the world to come.
And when I’m feeling tired or stupid, I pull up this quote from Alan J. Perlis I found it early on, and somehow the hope expressed in it has kept me going.
What you know about computing, other people will learn. Don’t feel as if the key to successful computing is only in your hands. What’s in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it so that you can make it more.
I’m looking forward to see what I learn in the next year.