You don't need to be good at math, but...

I tell new students at Nashville Software School - or even prospective students - that a strong fluency in math is not a requirement for success in software development. I truly believe that.

Now, I said that to tell you a story.

If I'm teaching the client side course for a cohort, which is the initial content students learn, I draw a map for their Learner Experience of the first three months. It looks like this.


The vertical axis is Feels and the horizontal axis is Time, so this charts Feels over Time.

This post is not about the Abyss of Despair, nor the Speedbump of Stress, it's about the Pothole of Panic which is when we start to cover the four basics of object-oriented programming.

  1. Boolean/branching logic with conditionals
  2. Iteration of collections
  3. Functions
  4. Objects

By far, functions are what panics students the most. When they panic, my only comfort for them is "understanding will come with practice, patience, and time". Biology is part of the equation because the brain's neural structure needs to be altered during their Learner Experience. That takes time.

The panic lasts longer for some students than others, and over time I started to notice a pattern, but haven't actually tested whether that pattern exists or not. Students that have a strong background in one of two fields appear to get past functions far quicker than the students who do not.

  1. Math/Algebra
  2. Music

My weakly held belief, because it's not tested... at all, is that algebraic literacy helps with the concept of input 👉🏼 operation 👉🏼 output. General, mathematical literary also rewires the brain to be efficient at pattern recognition.

As for music... 🤷🏼‍♂️

I'm about as ignorant as you can get when it comes to the life and times of a musician. I played the harmonica when I was younger. For a couple of years. I wasn't very good because I didn't practice enough. I can surmise that musicians have extensive experience processing their music with modern equipment, software and synthesizers. Again, input 👉🏼 operation 👉🏼 output.

I also imagine that pattern recognition is incredibly important in a musical life.

I'm positive there are other professions that have people performing this kind of algorithmic mental process daily, but there are many other jobs that do not. My anecdotal observations over the last 4 years suggests that many people don't exercise their Mathematical Intelligence in their day-to-day lives.

When students arrive for their first day of class at NSS, their brains have very different starting points for the logical thought processes and complex mental models that we ask them to build. Unfortunately, we don't teach our citizenry about how their brains work, how learning happens, or metacognitive processes (thinking about how you learn). Because of that, people come to the incorrect conclusion that they are "stupid", or "not cut out for software".

It's a sinister place where fixed mindsets roam freely, building up egos and destroying confidence with lustful abandon.

It also requires a very supportive and empathetic environment that lets students know that it's normal and natural to feel the way they do, and that we will do everything in our power to provide the coaching required to empower them to break through it.

We try to make them understand that they simple have different starting points and they can increase their mathematical intelligence by adopting a growth mindset, and putting in effort with the correct strategies that we've found to be effective. Most students listen to us, but there have been a handul over the years who are unable - or unwilling - to break out of the fixed mindset cycle and don't complete the course.