Ask HN: How are you teaching your children programming?
What websites, apps, tools, videos have you decided on to teach your children programming? Are you using only online resources, or also traditional classroom setting? What do you like about the apps and tools you are using, and what could be improved?
65 comments
[ 4.9 ms ] story [ 18.6 ms ] threadWhen I was young (12-15) I spent a lot of time programming and very little interacting with other people outside of school hours.
The same thing can happen with video games or even reading of course.
Adding an implied ad hominem remark doesn't alter the fact you immediately contradicted your own advice.
If you meant "structured education of some form" and instead specified "school" I don't really see it's obvious the generality was intended.
Indeed the likelihood arises now -- given your implicit suggestion that people who don't attend formal schooling are somehow deficient -- that in fact you only considered school when you made your initial remark.
You teach your kids how to read, how to do math, history of the world - Computer science will soon be no different. Might as well get ahead and teach them during learning time.
What makes you think that? It's a very specialized field. It's not going to be something parents are casually teaching to their kids.
Seems like encouraging children to follow an interest that could lead them to wealth through work isn't a bad thing?
Furthermore, if they only see it as a path to money and not an end in itself to construct great, helpful, beautiful programs, they're gonna burn out real quick.
Also, "having money" as a goal is just somehow repulsive. Seemingly all the sleazeballs of the world are oriented like this, and as a result they tend to be very shady and use people as means to getting money rather than actually people, with whom meaningful relationships can be forged.
Just get excited and show enthusiasm, if you're genuinely excited about it, then it's contagious and kids pick up on that.
I would leave them alone, let them see what you do maybe, show them minecraft. But don't expect them to magically take to it.
When I was a kid I gained my interest in computers from seeing my Grandfather building a computer, my sister was there when he was building it. Yet I kept to it and she pursued other endeavors.
Recently, though, my 1st grade son, the oldest, found the book "Coding Projects in Python" (https://www.dk.com/us/9781465461889-coding-projects-in-pytho...), and read through it for about a week before asking if he could use my computer to try some of the projects out. I set him up on an old linux box with no internet access, opened a text editor (gedit), and showed him how to run his scripts in the terminal.
Honestly, I thought he would loose interest after a few days. But he has stuck with it for the last few weeks, working on the projects after school with minimal help from me (I work from home). So far, he learns what he is interested in, skipping around the book to find projects he likes. He has learned a fair amount in that time, and importantly for me, is learning a bit about how the computer works at the same time. Not sure where we will go from here, but the self-directed path is working well so far.
Maybe you could install Anaconda (or some similar distribution), which has lots (almost 500) of popular libraries preinstalled.
The kids these days learn everything, but they don't learn to focus.
But they do occasionally come over and ask me what I'm doing. When they do, I explain.
I actually have started doing some programming with him around his math homework, using python. This doesn't replace doing things by hand, but it's very different from just using a calculator. There's a different thought process that goes into automating a solver through code that I think is a valuable mental exercise, and that can lead to a deeper understanding that repetitive drills.
The downside to this is that it's more homework-ish, but he actually seems to enjoy learning and realizing how much busywork he can automate, and how much this can scale.
Another wrinkle here is that I wouldn't recommend becoming a software developer or programmer as a career path - however, I do think learning to program is a great idea, especially where it comes to analyzing data. Programming and math ability can become something of a super power when you can apply it in a field where most people don't have those skills (law, medicine, digital humanities, etc).
I am pondering when to introduce him to more classical text-based scripting, but I will admit that nothing I can think of at the moment competes with Scratch for sheer ability to create and share games and animations easily.
Both my sons showed interest in programming at various times. We toyed with Scratch, then Visual Studio Community Edition to try textual input. Then some Python through Khan Academy and "Learn Python the Hard Way." Enthusiasm for it came and went and sometimes came back just like most things kids do.
One son went on to be a fairly competent programmer, using Mathematica in pursuit of his engineering degree. The other still dabbles in it from time to time, but likes other technical subjects more.
The important point is they really don't need a lot of programming when they're young, just like they don't need a lot of any specific technical field. They just need to know it exists and maybe pique their interest.
It was just intended to be a bit of fun, and it was, but they were actively involved in the game design and the artwork. I also worked through some of the maths and physics with them and they saw how it all came together in the code.
I'm not sure they did any coding per se other than tweaking parameters for gerbil speed etc but I think they got an appreciation of where programming fits in and how it's part of an interconnected whole.
Subsequently they have used Scratch at junior school and they all took to it without any help from me.
None of them have shown a particularly strong interest in pursuing computing either academically or as a profession and I haven't seen any need to push it.
If your children do show an interest though, I do recommend something like Scratch or Love2d (I'm sure there are equivalents for other dynamic languages). It's easy to produce a game that's surprisingly good and the feedback loop is essentially instantaneous.
I particularly liked how, with a game, it naturally brings together art, maths, science, computers and programming without feeling forced.
Seems to have figured out basics like how to change the number of repeats.
But seriously, I'm probably not going to Teach Programming; it'll be be one of the Things Your Dad Does, and he's welcome to be interested; I'll push him to understand the computer as a building block and change agent of society, but programming, meh.
If he really wants to fart with a tablet, I'll redirect him to a rasppi - to be a cocreator, not just a consumer.
So games and fun projects that we work on together. Also don't try and overly force coding standards at this young age. Let them hack away and have fun.
The bad parts of Roblox provide an opportunity for me to explain exactly what's bad about proprietary tools, centralization, pay-to-win, spending real money on digital goods, etc. Roblox isn't much worse than AAA games in this regard. My kid is showing forethought about spending his limited supply of Robux and he's parroting some of my rants when he talks himself out of buying something. Hopefully that parroting turns into genuine understanding. Eventually, he'll want to move on from Roblox or they'll disappear and he'll learn first-hand the pain of moving to a new platform and leaving all of your code and digital goods behind; and that the only things that last are libre code/assets, algorithms, concepts, ideas and memories.
Its ages 5+, but a 4 year old can do it. you can command the mouse to go forward, backward, turn right, and turn left. You build your own maze out of the pieces. There are little cards with the action that they can place on the maze to help plan out the steps.
I think this is a great option. Previously I had recommended the board game robot turtles, but I think this is more appealing to a child.
True story.
My programming origin was trs-80 and basic, and for the last 20 years C, TCL, python and csh|bash|awk|sed.