When I began studying computer science in the 80s at Berkeley, I found the first quarter of my studies incredibly challenging. Evening after evening, I spent time in a basement computer lab, creating Fortran punch-cards in order to run programs. We created these cards by hand on one machine before submitting them to another machine for testing, at which point we’d learn if our program worked or if we had to debug them, which involved creating more punch-cards. In those days, computer programming involved quite a bit of manual labor!
It was lonely and uninspiring work, and I wasn’t very happy. I spent quite a bit of time questioning whether or not I had chosen to study the right thing. Especially surrounded mostly by men, I didn’t have a lot of people with whom to talk to about my frustrations. Not only new to the school, I’d only been in the country for a few years, too, and computer science itself as a field of study was so fresh and new at the time that there weren’t role models to which we could turn for advice. Without such examples, I found it hard to see how my lonely work making, testing, and debugging punch-cards could translate into a meaningful or inspiring career.
Seeking advice, I approached my father. He had urged me to study CS, while my mother wanted me to be a doctor. In fact, every time I became frustrated with my CS studies, she’d urge me to study more chemistry. (I really didn’t like chemistry.) To keep me motivated, my father gave me a classic set of computer science books that showcased concepts beyond those covered in my introductory class. With the ability to see beyond my immediate, lonely punch-card work, and knowing that I wouldn’t drop the class, I chose to power through. With the basics of programming under my belt, things quickly started looking more interesting.
My “a-ha!” moment came in the following quarter as I took the next set of CS classes, which related to discrete math. A prerequisite for certain CS classes at the time, discrete math is a lot like solving puzzles. I’ve written before of my love for and skill at chess, and, finally, I found a hook for my interest in CS that felt much like that familiar enthusiasm for chess. Relating to computer science through math and seeing patterns with which I was familiar, I felt more confident.
It’s long been my belief that good computer science requires good visualization -- that good programmers can visualize good code like one might visualize moves in a chess game. I’m good at that, and I began to enjoy CS quite a bit with that connection made. And it helped that my future classes no longer involved punch cards as we moved on to interactive terminals. Classes also got a bit more competitive as the program progressed, and competition is something that always has motivated me to do my best work.
Also, that same semester, we learned about Turing machines, which totally fascinated me. From books, I had heard of Enigma, the machine that Turing build to crack the Nazi crypto-codes during WWII. With more context, I began to have an appreciation for the power, beauty, and elegance of Alan Turing’s invention, which lies at the foundational principles of modern computers. The ongoing centrality of Turing’s model to computational complexity theory is something I’m glad I came to understand before the evolution of modern technology.
I look back on the lessons of my early days in CS often -- really, anytime I start something new. The beginning may not be exciting. As time goes by, however, I get more excited about learning deeply via the “outliers” method, Malcolm Gladwell’s theory that you have to put in 10,000 hours to get really good at something, especially if you’re going to be a trailblazer in it. If you get through the basics and if you have confidence in yourself and in your choices, you’ll go much farther than you will if you allow your focus to be on speed. Rather, when you start something new, give it time to gestate. Stick with things. Persist. Work hard. Find your connection, and foster it so that it deepens. Anything worth building a career in is going to require commitment to develop richly. If you make that commitment resolutely, you’ll reach a point from which you won’t look back.
The Moment I Knew I Could STEAM Ahead is a new blog series geared towards encouraging the next generation of leaders in science, tech, engineering, art, and mathematics (STEAM). When did you achieve confidence in your ability to master a discipline in STEAM? Let us know at email@example.com.