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.
Itotally agree. Having studied and worked in computing for 30 years I have come to the conclusion that to require math for computer programming is “conventional wisdom” that is unchallenged and unconfirmed. Back in the early days of computing in education computers were used solely by scientific University departments and I believe it is these people who paralleled the formal language of mathematics with programming – electrical circuits needed maths some early languages such as ALGOL, FORTRAN were created. Thank goodness for Grace Hopper’s efforts to create COBOL as something readable. In order to start to program you need to be able to break down a problem into component parts and analyse each part to describe it. This parallels the ability to write a good structured essay about a subject in any human language. It is not just a mathematical skill. Out in the real world, 90% of computing is not mathematical, is is database related. We also need skills in design and human-computer interaction especially in e-commerce where so many shoppers are women.
I agree with you that math does not need to be a starting point for programming. Yet the process of learning to code is often so entrenched in math as the examples and materials are also frequently math driven. I dove in to the language Processing in an attempt to learn coding in a different manner, but was never quite thrilled with the outcomes. I really wish there were more materials to learn/teach coding from a different perspective. If you know any it would be great to share.