Maths or Computer Science. Running into the Wall.
Or why as a teenager you should do doing things that scare you.
I was 19 years old. It was a warm November afternoon. I couldn’t figure out how to answer the question staring back at me from the paper. It wasn’t that I hadn’t studied for the exam, it was just that the problem in front of me was asking me to do something different. Use basic principles to answer a question that we hadn’t really thought about.
It was the first time I ran headfirst into the wall.
Our Introduction to Computer Science instructor, twenty two year old Abdul Wadood, had crafted a 6 hour long open book midterm exam focused entirely on algorithmic problem solving. Other than talk to a class mate you could refer to any textbook, look up any resource and take as much time as you needed to finish the exam. His exam paper took the materials we had studied, twisted them into something bordering exotic and then asked us to answer a simple challenge that required us to think and write code. In thirteen years of formal education it was the first time someone had asked me to freely apply my mind beyond the boundaries I had defined for myself. That day I understood that while I didn’t know jack about the subject, despite studying it for a year, if I could figure it out it would be a lot of fun.
Nineteen was a fun year because while being a full time computer science student I was also taking actuarial exams on the side. Similar to the challenges I was facing in computer science, the Society of Actuaries paper were doing something equally awkward. Taking materials and concepts I thought I had studied and understood, turning them into applications I hadn’t explored; asking me to answer questions that required me to do things with my neurons I didn’t think were possible.
Applying my mind wasn’t supposed to be difficult. But for the next twenty years I ran into one big bandwidth problem after another. As I scaled one wall, the next one loomed larger. I didn’t scale all of them, failed miserably at quite a few of them but it did wonders for my capacity to think, function and solve problems. And my self-image. Over the years scaling all these walls, I grew into someone who could look at a numerical or computational problems, think about how to crack them with code and crack them.
To a large extent two focuses in life were responsible for this shift. Mathematics and Computer Science. Mathematics taught me how to solve problems, how to break them down and frame them in bite sized pieces that could then be attacked in meaningful ways. Before I struggled with Pascal I had to wrestle with Thomas and Finney and multivariate integral calculus. I used less than 10% of the Thomas and Finney text book in my professional life but banging my head against three dimensional calculus problems is where I learned to push my brain cells beyond the walls I had built for myself.
For six semesters in college I did something that was incredibly hard at that time. In a world without Internet, Google, Khan Academy and MIT Open Courseware, I took the full course load for Computer Science and failed two actuarial exams every year. Most people loath failing. Hate doesn’t even begin to describe my relationship with failure.
While calculus was fun, linear algebra awkward, discrete mathematics impossible, by my third year, computer science had turned into my first love. We were essentially taking applied mathematics and using it to do things with our hands in dimensions that really didn’t exist for the rest of the world. Taking vectors and matrices and transforming them into neural networks; set theory and Venn diagrams into Structured Query Language. Math showed me the promise of logic, but it was computer science that taught me how to dance with it on the ball room floor.
By 1992 the year I graduated I could no longer relate to my pre computer science school and college class mates because I had begun to speak a different language and live in a different world. While the domain could still be recognized, this new landscape was essentially alien and intriguing.
I have always wondered, what was it? What drove me to my many adventures in later years? Was it Mathematics or computer science? Rationality would have never allow me to take the risks I took. Yet it was the desire to model, to transform the world into something different, the infection for which there is no vaccination that took me from the shores of my city to three different continents and back. Always a combination of mathematics and computer science that helped me crack a challenge, that helped me scale the wall. Together.
The fact that I had scaled so many walls in the past, somehow made the next big challenge just a wee bit smaller. Tall enough to be imposing but small enough to be scaled.
Two years ago I ran into a delightful crossing of fates. I taught computer science as a subject to a group of 12 and 15 year old students in grade 7 – 9 at a local school in Karachi. I used Scratch, MIT Media Lab’s gift to children everywhere in the world. We worked with a range of problems. From calculating prime numbers and factorials to designing Pacman from the ground up. Pacman was a great problem to solve because it required you to solve the optimal path problem. What is the shortest path to the objective considering the distance between two points on a grid? You did it while figuring out ghosts, grids, game levels and object detection. To do it well you had to balance logic, mathematics, design and algorithms. It wasn’t just a wall; it was walls after walls for my teenage students.
But at that school, next to the beach off Arabian Sea, I witnessed something truly breath taking. There is nothing more beautiful than seeing a mind open up and grasp a concept that it wasn’t aware of before. As a teacher I have seen it happen with my graduate students when they crack the Black Scholes equation or simulate pricing an option in Excel. The Aha moment. But this was the first time I saw 12 years old reach out to the future and change it. They climbed the wall with Scratch.
Every now and then kids ask me about career choices. Computer Science or Mathematics. And I wonder every time what the right answer should be. Mathematics or Computer science. I finally figured it out last night.
There is no or. Only and.
It would be incredibly hard, like running the 800m in less than two minutes. If you don’t give up and keep on training at some point in time your endurance would go critical. You would brush past the barrier and leave the world behind. In all of Karachi there may be two individuals who could run it faster; three dozen nationwide. Imagine a fifteen year old being one of them.
Let them scale the wall. Make it tall enough to be imposing but small enough to be scaled. There could be no greater gift. Not or, just and.