Programmers don’t typically like to admit that they’re bad at Math. Also, it doesn’t help that most non-programmers have this idea that all programmers are some kind of Math geniuses. Unfortunately for me though, I wasn’t blessed with any Math superpowers. Not by a long shot. In fact, I used to hate Math more than anything else in the world. Just the thought of going to Math class at junior high brings back memories that look something out of a Pink Floyd video.

By the time I got to high school I was convinced that Math was totally beyond me, that I lack that mysterious Math gene and that only people blessed with a mind for numbers can approach the subject and get good at it. I am simply not smart enough, I figured.

Around the same time though, my high school began teaching us Computer Science. Quickly, I found out that I liked it and was even pretty good at it. I was solving the algorithmic problems relatively easy while other classmates were struggling and I seemed to have a knack for it.

After graduating from high school, I was drafted to the army where I managed to get myself into a position of writing computer database applications. As I got better and better at it I wanted to know more. I wanted to truly understand how computers work down to the atoms, learn these more advanced algorithms I keep hearing about, understand how cryptography work, how computer animations are generated and so on. I was enthralled with the possibilities.

So I signed myself up for a remote university course to study for a Computer Science degree. After exactly 4 study periods of introductory Math course, my head was spinning so hard from Set Theory that I dropped out like my life dependent on it and never looked back. I felt like a complete failure and was ashamed to be so incompetent in Math.

After I finished the army, I managed to get a job as a computer programmer. Through diligent self-study of mostly books, I was able to advance my understanding of programming and software and built myself a rather successful career by average standards.

But while this was fine, and my work was paying the bills, my understanding of the subject was on the surface. I lacked the in-depth understanding required to truly master the subject. And I knew it. But each time I tried to penetrate the subject matter on a deeper level, I would inevitably hit a wall. Math seemed to be everywhere.

One day, while minding my own business, I ran into a TED talk given by a man named Sal Khan. Sal, previously a hedge fund analyst, quit his job in 2009 to work on a website he’d created to teach Math — for free — to anyone who wishes to learn the subject. He talked about the trouble in the Public School system: kids are moved through the curriculum in bulk, accumulating gaps in their knowledge due to a one-size-fits-all approach. So by the time they get to the more advanced subjects, their foundation was so shaky that they hit a wall they couldn’t pass. He website, he said was solving this very problem.

His speech really resonated with me. But I was still skeptical. This sounds great in theory. But can I, me, personally, benefit from it? I didn’t know yet.

I signed up and began watching videos and doing the exercises in order from the very beginning. I was literally doing arithmetic. The concepts were explained with crystal clarity and I could watch them again and again. I could also use the built-in exercises to practice these subjects and really drive the concepts home.

Next thing you know, I began tackling more and more advanced subjects which were previously completely occluded from my understanding. And was doing so with success and even ease, now that my mathematical foundation was rock solid.

Today, according to the Khan Academy website, I have mastered over 700 distinct skills. It truly recovered my Math education, my self-esteem and even ignited a real appreciation to the beauty of Mathematics. But maybe even more important than that, it unlocked many doors to understanding my profession and my real passion in life: computer programming.

P.S.

The image you see at the top of this post is a so-called Fractal. Fractals are patterns that are self-similar across different scales (Notice how the flower pattern repeats itself over and over as you zoom in).

They are created by repeating a simple mathematical process over and over rather than describing and encoding every detail. Fractal patterns are extremely familiar, since nature is full of fractals. For instance: trees, rivers, coastlines, mountains, clouds, seashells, hurricanes, etc.