Hacker News new | ask | show | jobs
by substack 3176 days ago
I think the real C++ part is so important because it respects the abilities and intelligence of children to participate in the adult world using a real (yet approachable) technology that is also used in industry. This also makes these skills earned poking around with a fun toy transferable to solving their own problems, doing coursework at university, and later on entering the technology labor market. Other programming toys aimed at kids like NXT graphical programming or scratch don't have the same transferability and I've noticed that kids see right through that.
2 comments

I don't think that you need to worry about the transferability of skills from a 11-year-olds toy to professional software development. The far more important thing to transfer is interest/excitement, and that may (or may not -- you're the expert) be easiest to do with a language other than C++. Part of what makes Arduino so fun is how fast you can get to a blinky LED, and part of what makes Scratch so fun is how quickly you can get to interactive graphics. I feel like there has to be something (not necessarily existing today) which is powerful enough to make kids feel like they are in control of the device without annoying arcana like semicolon errors.
These things build on each other over time and learning a language is not exactly easy, especially if you are starting out. An important aspect of the transferability here is that you can go from programming a jewelbot in c++ to programming other microcontrollers. You don't have to learn a completely different language and toolchain to continue exploring programming on a different platform.
Some kids can see through anything, but I think it’s hugely naive to think many kids won’t struggle with it. Do you remember how hard kids find algebra? That syntax is downright trivial compared to explaining why you need to insert a space between angle brackets when composing templates, or why calling your method overloaded for pointers might sometimes call an integer one instead when passed a null literal, or how to debug e.g. memory alignment errors, which are often presented with cryptic segmentation faults.

I think it’s great for a certain crowd, but this could be quite frustrating for many pre teens and ultimately put them off of casual coding.

Besides, kids aren’t exactly leaping at micro controllers. And why should they? Software programming is applicable to more and more prospective jobs every year.

> Some kids can see through anything, but I think it’s hugely naive to think many kids won’t struggle with it. Do you remember how hard kids find algebra? That syntax is downright trivial compared to explaining why you need to insert a space between angle brackets when composing templates, or why calling your method overloaded for pointers might sometimes call an integer one instead when passed a null literal, or how to debug e.g. memory alignment errors, which are often presented with cryptic segmentation faults.

> I think it’s great for a certain crowd, but this could be quite frustrating for many pre teens and ultimately put them off of casual coding.

> Besides, kids aren’t exactly leaping at micro controllers. And why should they? Software programming is applicable to more and more prospective jobs every year.

>why you need to insert a space between angle brackets when composing templates,

You don't have to anymore ;)