When I learned to code, I was not very good at math and didn’t like it much. I had just started pre-algebra and struggled to make sense of abstract equations and abitrary rules that seemed to serve no purpose and were disconnected from my real world. I didn’t care to discover answers that were already known to imaginary word problems that some textbook writer made up.
If someone had told me that I needed to be good at math to be good at programming, maybe I would have avoided learning to code. Instead, when I was 12 years old, I sat down with a BASIC manual and an Apple II and taught myself to code for fun.
Earlier this week, President Obama called on every American to learn to code. His message is spot on, mostly. Unfortunately, he said “No one’s born a computer scientist, but with a little hard work and some math and science, just about anyone can become one.”
Perhaps some colleges require advanced math for a Computer Science degree, that wasn’t true in 1990 at Brown University. I did end up learning a lot of math and science. After I learned to code and struggled through algebra at school, it all started to click with geometry. Maybe it was the shapes and a connection to art and the real world, maybe computer programming actually helped me understand mathematics. I went on to study Calculus in high school and Linear Algebra in college. At the university level, I studied computer graphics, which does require math. In my first startup, where we invented the software program After Effects, we used math to let artists create video special effects. In both cases, it was mostly geometry and matrix math, which is technically part of linear algebra, but the equations I needed for graphics were no more complex than what I was doing in high school geometry. For most software development, especially these days as a web developer, you would be fine with elementary school math.
Of course everyone should learn math and science — those are just not directly related to most computer programming. Yesterday I recorded a short video message, a public service announcement, to help clarify this for parents and educators.