I studied Statistics and Computer Science at Harvard University, and then spent 4+ years working as a software engineer at Square and Uber. Last year, I shifted my focus to teaching because I really believe that the skills outlined above are critically important and too often ignored, but, more personally, because I wish that I had learned them much earlier in life.
I left my first computer science class feeling like it was too challenging for me. At 18, I could carry out formulaic solutions pretty well, but I had almost no experence actually generating them. This made the open-ended problems in computer science extremely intimidating and discouraging.
Systematically approaching hard problems makes them less stressful and more interesting. I eventually developed this skill and applied it to the classes I'd once thought were too hard for me, but I really wish I had started that process 10 years sooner.
Learning to code comes with a lot of wonderful, highly-emphasized, economic opportunities. These get the most attention, but they shouldn't be the top priority for kids. More important, but relatively ignored, are the ways that coding teaches you how to think and therefore how to learn.
My goal isn't to generate job-ready kids or to fill up their future resumes. It's to develop habits and confidence that will lead to a lifetime of clear thinking, curiosity, and enthusiasm about learning. I've written more about these habits, and why coding is a good way to practice them, here: [Why Learn to Code?] .
In short, coding is especially powerful because it wraps the crucial skills of experimentation, debugging, precision, and systematic thinking in something that's also fun and empowering.
With the right amount of guidance and a thoughtful structure, typed coding languages can be accessible to kids as young as 7. Skipping the typical "coding for kids" tools sets the tone that students are fully capable of solving the hard problems that they'll inevitably encounter. This also allows us to work on a wider range of projects, tailored to students' interests.