Any parents thinking about their kids' computer literacy?

I have the impression Handmade Network is currently a younger crowd (although I'm happy to be surprised). But still seems like a good theme to bring up here. I did a quick forum search for "parenting" and "child" and found only references to data structures. :)

Dad-hood is imminent for me, and one of the many existential thoughts I'm having is how to introduce my kid(s) to computers in a way that's empowering, encourages curiosity, etc. They don't have to be programmers if it's not their thing, but whether they choose that career or not, knowing programming basics seems essential for kids growing up today. There's so much software out there whose job is at least partially to manipulate users for profit. I can't keep my kids away from that stuff forever, so better to give them the skills and knowledge to see through it, and know that computers aren't magical.

I don't know where I'll start though. Computers are a lot harder to understand than they used to be.

Javascript?

In a sense, Javascript is today's BASIC -- turn on your computer and you can easily get a Javascript REPL. Every computer can run it, and stuff you make in it is easy to share with your friends.

However, it also teaches you very little about how computers actually work, and it comes with oodles of complexity that aren't worth knowing in any other context. And that's before you add in transpiling different dialects, using React, etc.

Scratch?

From the little I've seen, visual programming platforms like this seem like a good way for kids to learn algorithmic thinking, without the accidental complexity of Javascript or other high-concept languages. Not much experience here though.

Emulated simpler computer?

Raspberry Pi, Arduino?

...

I guess the specifics all depend on what they show interest in. Partly I'm just wondering if anyone has experience to share related to these questions.

Edited by winnythefoo on Reason: Initial post
Rasberry pi is good in that you can incorporate physical projects with it as well, like building a weather station etc. I know there is a JavaScript/processing 'playground' on khan academy where you share your games/creations. There's also things like making a Minecraft server on the rasberry pi, if they get into Minecraft.

The best success I've had is just doing stuff you enjoy, and usually they'll come over and ask questions and want to be involved somehow. We've been making a fairy game with our daughter, where she comes up with new ideas for the game, which has been good, and she is very interested in it.

I'd also say is don't put all your eggs in one basket for one particular project, try a range of things and take their lead in what interests them.

Hope this helps in some way :)

Edited by Oliver Marsh on
Thanks Oliver! All good points. I love the idea of your daughter as game designer. :) Also, I think projects with more physical components are great for using comp sci to learn other domains at the same time (I wish my schooling included more of that).
I am not a parent yet but I hope to be some day. This is one of the things I think about a lot. I don't ever want to force my kids to learn programming just because I enjoy it but I would love if I can find ways to encourage them and test how much they actually like it.

I remember when I was a kid my Dad took me and my brothers to Microsoft for a "take your kid to work day" thing. The only thing he really ever taught us directly was binary numbers. And even then it would be a while before I really appreciated what he was talking about. I'm not sure if many people's experience was like this but I learned most of my programming knowledge from the internet through making games. My dad was a developer/programmer at Microsoft but he never really directly taught me programming. However, I think the main thing that he did do is teach me how to tackle problems and be interested in the world. He taught me a way of thinking that meshed really well with programming so that when I did start to learn it came somewhat naturally. I think one of the main ways you can help is just by talking to your son/daughter about complicated topics as they grow up and developing a good understanding and relationship. And I believe that their interest in programming will probably stem from their interest in interacting with the world and making their own things. That's the way I think about it at least, just from my own experience growing up.

I wish you the best of luck! And I would love to hear about anything you find on the topic or anything that other parents have to say.

EDIT: One thing I have done is try to teach my younger brother (9) and separately my younger sister (18) some programming. One great activity that I've found to do that gets their feet wet with game-like stuff is making screensavers. Letting them come up with ideas about what they want on the screen and showing them how to do simple rendering tasks is a great way to introduce them to how the monitor works and a little bit of graphics pipeline stuff.

Edited by Taylor Robbins on
Hi ProfessorSil, what you said rings very true. When learning anything, it's way better if it's out of an intrinsic interest, and that happens in its own time.

I'll post here again if I find any good resources :)

Screensavers is a great idea I haven't thought of. It's funny how little I've thought of them lately, I paid so much more attention to screensavers in general in the 1995-2005 era. Do you have any good resources that you can share on making them?

P.S. Your avatar is great! Big Calvin & Hobbes fan.
I've taught Scratch to a few kids and they always love it. It slips right past kids' filters - they start out excited to make little animations, and before long they're doing remarkably sophisticated logic. It really allows kids to easily express their creativity, which I think is the most important part when they're getting started. (Kids love to make annoying sounds!!!)

Scratch also scales up astonishingly well. If you look at my old Scratch profile, you can see that I started out with really simple remixes of built-in projects, but moved onto more advanced projects over time. People who know what they're doing have even made 3D multiplayer games.

LEGO Mindstorms kits are also a great option, although more expensive. I learned to program on a Mindstorms NXT kit. The current-generation kit is the EV3, which is just as good (and the brick is slightly less horribly underpowered).
I just saw this today, but I'll reply to it nonetheless; I hope to provide another perspective, since my dad got me into messing around with computers, and eventually into Computer Science (I'm a student in CSD, Crete).

I wasn't that much of a power user when I was young; though I did play a lot of video-games, and my father was a major influence for that. But I didn't really care for programming, or how computers worked at the time. The thing that started it all for me was the level editor for Crysis. It was easy to use, you could make levels with AI enemies, determine their patrol paths etc...

Once my father noticed that I was really into that kind of "creative" interaction, he showed me python and pygame. I followed this tutorial and had my own version of the type of game (with spaceships instead of cars) at the point of finishing the tutorial.

But I dropped python and pygame, and for a time I didn't do much. Some time before that I was primarily interested in playing the guitar (I still do sometimes). I then picked it up again (for no major reason), and I stated messing around with it again. Then, my dad showed me a video of an fps game in the blender game engine. I was enthralled! But that lead me to learning a bit of 3d modelling rather than any sort of programming.

At that time, the Unity engine got really popular, so I jumped on that train by myself and that was when I taught myself most of that type of programming.

Basically, there was a chain of small discoveries, messing around with the new thing, and then putting it back. Whenever I had a problem with my computer, or whenever I wanted a new one, he'd be the one fixing it (or building it) but I was by his side, just watching and asking random questions.

At some point I started learning C++ though tutorials on youtube, and after some time that lead me to one of casey's videos, from which I learnt most of what I know now. Now we watch it together whenever I return to my home town. I guess what I'm trying to say is that I was first "wowed" by what computers could do, and my father was there to give that little push to the next thing. But it was organic, and as time passed I got significantly more interested in that type of stuff.

So, from my understanding, you can't explicitly force kids to be interested in how computers work; they are quite inquisitive by themselves, and I'm sure that every kid has a creative side which yearns to be satisfied. Maybe I'm a rare case, but whether or not I wanted to explore computers, I'm sure that I would know how to properly and safely use them everyday. Just watching my dad fix things, show me new games and cool stuff, I learned a lot. The most important thing I learned was to be excited about computers and google literally everything.

You can of course, do little projects, like my dad and I still do; But besides that, you can just watch what thing they are interested in and give them a push. Just enough to continue. I don't think you should worry if they don't like it at first though. In general, the learning process wasn't continuous for me; I had on and off periods, but it was very organic. I don't think you have to start with something specific though, because you can never hope to know what any kid would find amusing! Just show them new things, games, music software, anything to get their brains going! They may lose focus, and go back to doing mundane things, but at the point you can just give them that little push I was talking about.

Reading my reply now, I can see it's a mess of thoughts and experiences (English isn't my first language), but one thing that is obvious is that the way I got into CS wasn't a series of projects or lessons on programming. You don't have to plan anything (in my opinion of course; I'm probably way too young to be a viable source for this kind of post). Just watch what the kid likes, and do something at that point.

I sincerely hope I provided even the tiniest bit of insight! No matter what happens; a parent that cares about this type of stuff is going to be a great one, in my book!