Hacker News new | ask | show | jobs
by sarajo 3169 days ago
Thanks so much for your feedback! Sounds like we have some things to add to the FAQ!

Jewelbots can be programmed just like an Arduino using C++. Real code! Because we believe that kids are super smart (Also, I starting writing C++ at 11).

5 comments

My knee jerk reaction was pretty negative, but on only a few seconds’ reflection I think this is great. Absolutely no reason why kids can’t start with C++; it doesn’t have to be template meta programming insanity from the get-go. Motivated kids have infinite capacity for learning and a lot of time for exploration.

Kudos for not patronizing them with some awful imitation of flow programming or some neutered scripting language.

Yeah, right? I don't think the drag -> drop coding does a lot of help when it comes to learning.

Talking to my male peers, I learned that most of them started coding when they were Tweens, largely because they wanted to make games or found an open source project they loved. Jewelbots are designed to be the same for girls. So far so good!

Yup. There's a lot of stuff that tries to teach that 'programmer mindset'; flow programming is one end of it. My eldest daughter is 5 and is at the other end: the 'Robot Turtles' board game. She likes it. I really don't know that it will make the slightest difference in her future programming ability, which will range anywhere from epsilon to a lot (and will have nothing to do with me beyond me providing food, a roof, and moral support.)

Were she older, I would absolutely be making sure these got on her radar so I could gauge her interest. Nothing so crass as _showing her_ of course.

I love the risk you're taking here: not only a hardware startup, but also one where success is predicated on passing the cool filter of tween girls. There is something delightfully subversive in marketing C++ programmable jewelry to young girls; it's like a 'fuck you' to Lego Friends. I really want this to succeed. Good luck.

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.
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 ;)

And I started at 12, so I feel you are a kindred spirit and want you to win so much.

But is C++ really the first/best/only programming experience? Why would what be the right choice? UX absolutely just as important for developers as is is for ordinary users.

I imagine the user experience unfolding for my 11 year old daughter, ideally there is as little friction as possible from brcelet in hand to making code run. We want to minimize frustrations in order to maximize time spent doing and creating.

I’m not afraid 11 year olds will lack the ability to use C++, I’m afraid of it not being the way that’s most fun and engaging. And I certainly don’t mean dumbed down. Engineers at any age get more enjoyment from having the best tool for the job.

The language choice I imagine was driven by their choice of Arduino.

Arduino got where they are in part by having a rather nice IDE for a microcontroller, a nice simplified version of C++ (the Arduino language, which I assume can be used here) that eliminates a lot of the complexity and made it very simple to get started, and a nice easy pattern to upload / compile / test.

Personally, I'm not aware of a better choice out there in the microcontroller world. And it looks like the setup makes it easy (2 lines of code) to turn on / off LEDs or buzzers.

What's nice about using Arduino as well, is that the ecosystem of Arduino is very large. So it's not that much of a step up from here to other hardware projects. It's also not a huge leap from Arduino C to the many other C and C-like languages out there as well.

That’s great to know thank you. Having a great tooling/environment/ecosystem is probably more important than the language choice itself.
While I tend to agree with you—I started with C++ around that time as well—I do wish they included some type of safer language to play with as some c++ errors/warnings took me days to work around and may have put me off entirely had I a strong social life at the time :) I seem to remember logo working well for mindstorms when I was also that age. Why not support something a tiny bit friendlier than possibly the most complex language in active professional use?
No problem, happy to help. I think adding a FAQ at the top that's like, "What can a Jewelbot be programmed to do?" with a longer list of possible use cases would help. The front page kind of lists them but I found it to be a bit unclear, and that's from a technical perspective. A non techie parent might be even more confused, so I find it's helpful to ELI5.