Nine years ago, at the end of 2012, I decided to teach myself programming.

I’d flailed after college. I craved job security. Although I’d just created my own startup, leading to great adventures in Colorado, sales trips driving across Alaska, and living with a tech team on Leyte Island in Asia, I felt deep financial insecurity. The startup was small, but now that I’d sold the last shares, with payouts set to arrive over the next three years, I had a little money to take a deep breath and reflect. What should I do now?

image Founding another startup daunted me. Startup life is a rollercoaster. Thanks in part to good luck, my first startup had worked. Would the next one? What kind of life would I have in the meantime? Always on the move in the last three years, I had no girlfriend. I had few friends where I was living in Ft. Collins, Colorado. Picking a profession and cultivating a skill — this struck me as the ticket to a normal life.

Normal professions like medicine and law held no appeal. I hated the idea of wasting my time jumping through their hoops. That’s why I’d studied philosophy for a year on my own and become an entrepreneur in the first place. Philosophers, entrepreneurs, writers, artists - deep down these kinds of free and desperado lives appealed to me. For now though, I decided to put these deeper artistic and risk-taking drives on the back burner. I’d focus on developing a skill.

I was in Texas visiting my mom that year, and through a friend I met a programmer. At twenty-six years-old he’d bought his own house and a boat, which we sailed together in Galveston. Now here was a life. Here was a profession. His skills were in demand. If he didn’t like one employer, or one employer didn’t like him, he could switch. I’d fought with every boss I’d had since college — I’d even been fired from a sales job in New York — so this appealed to me. Unlike accounting, programming offered the flexibility to work anywhere in the world. Moreover a programmer is a kind of artist, or at least an artisan. His craftsmanship brings a new (invisible) machine into the world, to perform a function for someone.

To remind himself that life gives all of us a mix of good and bad luck, Winston Churchill recorded a “luck list” his journal. When bad luck hit, he could remind himself about the good. I now had a new stroke of good luck to add to my list. For six months after selecting programming in Texas, I’d woken up at 5am and gone to the Alley Cat Cafe in Ft. Collins and worked my way through CodeAcademy courses. Now I applied to a job as a programmer. Until the day I proved my value, I offered to work for free. The company accepted my offer and two months later, determining that I delivered, they started paying me. I spent the next 1/2 year working there, culminating in joining them at San Francisco’s TechCrunch conference.

The funny thing about luck is that it always is a double-sided coin. Getting fired from my sales job in New York freed me to work on my startup. What first seemed like bad luck became the greatest good luck of my career thus far. If we have the courage to listen to what life is telling us — or even smacking us on the head about — our greatest downfalls can provoke our greatest growth.

The same is true, sadly, in reverse. What first appears to be good luck often plants the seed of a later downfall. My good luck in getting a job as a programmer so fast came easy. I thought I could do anything I set my mind to. This unearned easyness set the stage for my greatest professional downfall, leading to years of pain for employers, colleagues, business partners, clients, mentors, and most of all for myself.

Before the Downfall: Living Without a Math Mind

Many people who knew me well might have questioned whether programming and my personality were a good match. I struggled taking science and math subjects in school. I have an extroverted side, to which computers are curiously indifferent. Computers are relentless. It took me years to learn not to take their error messages personally. The book Weniger Schlecht Programmieren (Program Less Badly) offers a great psychological tip. Are you picturing the computer’s error messages as a friend offering you helpful tips to find the bug, or a bullhorn in your face shouting “you’re stupid”?

For a long time before that, I’d struggled with the limitations being bad at STEM (Science, Technology and Math) placed on my life. Bad grades in STEM had affected my choices for schools, universities, considerations of graduate school, and my career choices. I’d minored in Economics, which required significant math. I’d struggled. I spent hours with generous professors who did their best to help me.

Part of my struggle was emotional. Whenever I faced a STEM problem, in school, work or in life, the accumulated heap of failures from my past reared over me, shouting down at me, “You can never do this kind of stuff. You were born too stupid.” My first years in elementary school were at a school for children with learning disabilities.

One day after college I was alone in the back of a Barnes & Noble. I found a book called Bounce: The Myth of Talent and the Power of Practice, by Matthew Syed, Britain’s former table tennis champion. Syed talks about how he noticed that his success at table tennis occurred in a curious pattern. Many of Britain’s greatest table tennis players were his friends from growing up. In fact, they’d all been playing table tennis together, at first in their basements, and then together on a high school team with a great coach. It wasn’t genetics that had made this widely assorted group great at table tennis. It was practicing together in their basements and excellent training from a dedicated high school coach. Growing up in a community that randomly was obsessed with table tennis and having one of the greatest table tennis coaches in Britain as their coach had, in fact, made them lucky. But it was a kind of luck that we all could invite into our lives: finding ways to practice. In his book, Syed goes around the world finding surprising examples of excellence that at first glance appear to have other causes, but which really boil down to dedicated and smart forms of practice.

Syed’s book had been in the back of my mind for years. It gave me hope. Maybe there was a chance for me to pick up one of these professions that offered more financial security and the path to a normal and stable life. When I decided to learn programming, this book formed the basis of my reasoning.

The Second Reason: We Missed Learning Math Problem-Solving As A Kid

The number one reason that most people fail at STEM is emotional. Many people’s lives, especially the lives of many children around the world, are chaotic. The reason that all the wildly diverse branches of STEM are clumped together is that they all entail in one form or another Problem Solving. Problem Solving requires that you have a chance to slow your mind down, and to really think. Steve Jobs once said, “Everyone should learn how to program, because it will teach you how to think.” In fact this is something that I have taken from programming and find to be true. I now see it in other STEM fields, especially in math, the “queen of the sciences”, and of STEM.

But on top of the emotions — if, say, later in life we are fortunate enough to have more space around them — we might have missed learning the Problem-Solving skills and building blocks of STEM knowledge in our childhood at school. By then it will be too late. We will be able to relearn that stuff. But only at a great painful cost.

All of this leads me to my new project, Baugarten, the World-Building Game for Algebra and Geometry. I want to create a way for people to learn these skills early on in a playful way.