The Joy of Teaching Programming
- Life
- July 24, 2023
I started teaching my young kids to code this summer, and was recollecting a bit of my own journey with programming.
The first language I learned was C++, which still remains my favorite. What an absolute joy that language was! Despite the inscrutable and badly designed syntax, ridiculously hard compiler, and things like templates that can make your head spin, it always felt like the perfect language. It also helped that in my coding days, I needed a language that gave me extreme performance and control, and C++ was really well-suited. Other languages that I also wrote a lot of code in, like C# or Java never gave that same level of joy, even if they were better than C++ in many ways (memory management and garbage collection for starters!.)
But for my kids, I went with python. I didn’t like python that much before, but I’m now seeing this language with a whole new perspective! For someone just learning to code, a strongly-typed and dynamically-typed language is so perfect! The fact that you can reassign the type of a variable is a “feature” I hated before, but again, for a newbie, that actually gets out of the way of mess that you didn’t need in the first place.
We haven’t gotten into true object oriented programming yet, but this language lets me frame concepts like objects from the get-go (versus my C++ days when “objects” were a thing you learned about as a separate thing).
And syntax. Omg, why didn’t other languages evolve their syntax early on? I don’t know why but I never really noticed that as an advantage when I first learned python – it was just another language for me, but now that I see it through newbie eyes, what an incredible advantage it is to have almost english-language-like syntax and coding style :-)
By the time my kids get into the industry, you may not ever need to really write complex code (AI is the answer to everything?), but they’re enjoying coding for now anyways, and I’m loving teaching them to code!