59 comments

[ 3.3 ms ] story [ 135 ms ] thread
I might be stating the obvious, but I'd focus on what they can build, not the theory of it. Treat code like legos. With code, they could make toys for themselves, or to play with other kids. I haven't messed around with Scratch myself, but I know there are tons of robotics programming kits, and I think Lego allows you to program robots as well. That's how I'd approach it if I had kids.
My oldest is only 3 but based on my experience (and the experience of other parents I've spoken with) your best shot is to find another, slightly older kid who already programs and have them hangout.
My son already loved minecraft, and was already familiar with the concept of mods, so CodeKingdoms (https://codekingdoms.com/) was the perfect tool in his case.
Your goal shouldn't be to get your child interested in programming, but fostering any natural interests you see in your child and encouraging those. If your child has an abysmal aptitude for logic, but is incredibly creative or body-oriented, getting them interested in coding will likely be a fruitless and painful endeavor.

If they do have a natural aptitude for logic and can stay focused for a long time then I would personally avoid coding (at least early on) and foster more pure math and logic games. This thread on Math Overflow has many good suggestions for math and logic games for children:

https://mathoverflow.net/questions/281447/mathematical-games...

A child isn't born with an interest in computers, an interest in wordplay, or an interest in crime. It is developed.
but given some experience with programming, writing, dancing or whatever they'll either like it, or not (or be ambivalent). At which point you should take that feedback into account.
Coding is as fundamental as learning to spell. Some things you should force your kids to do for their own good.
Would you think lesser of people who don't have a software engineering background and chose, instead, to pursue other ambitions in their careers?
If they’re having a hard time making money I would think lesser of their parents who should have known better.

Abdicating responsibility for your child’s education is not noble.

First, there's more to life than making money. I want my kids to have a good life, but I define that as more than just making lots of money. Good money at a job they hate isn't what I want for them.

Second, software is not the one true path to making money.

> Abdicating responsibility for your child’s education is not noble.

Fortunately, I suspect that few parents will abdicate their responsibility by listening to your advice.

Programmer (among other things) here, and I have seen exactly this attitude among a not-so-small minority of those around me.

Sometimes I get the feeling (when often confronted with the whole 'everyone should earn to code' idea) that there is some articulated and unconscious ideological drive that dictates that we have finally invented a language can completely control all alternative, that is, that we're looking for a real version of the ancient memetic constructs from Stephenson's Snow Crash and that somehow the logic and linear bias of computer code makes it impossible for some so-called postmodern programmer to emerge, or something. [I also think about this when I hear computer majors complain that programming language classes should be count in place of foreign language ones.]

No, it's not (and BTW you need to learn how to read in order to program, so you're statement is literally false). There are still plenty of ways to be successful in this economy without learning how to program.
No, it isn't. It's very useful, but not as useful as basic communication. There's also some evidence that you need a certain aptitude to be able to code at all: https://blog.codinghorror.com/separating-programming-sheep-f...

Forcing someone with no aptitude or desire to do something is just cruel.

Cruel? Cruel is setting your kids up for a life of struggle because they never learned basic skills.
not learning to code is not going to be a handicap through life comparable to being unable to read or write. It just closes off certain professions. Is it cruel to not teach your kids stock portfolio management? Or is it cruel to force your kids to learn portfolio management long after they've expressed complete disinterest in it? I'd say the latter.
Everyone is grooming their kids for something. Most just do it passively.

My kids have complete disinterest in sports, yet they play something 3 days a week and are getting better.

This version of themselves will have a significant leg up on the version of themselves that never learned to be athletic and will struggle with obesity in their 30s.

As someone who mentors a little over a half dozen adults who are transitioning into technology careers (mostly programming, but not exclusively), I disagree on several points:

1. A lack of programming experience does not necessarily imply a life of struggle. Anecdote: Several of my friends work blue collar jobs (AC install/repair, but also an electrician), and avoid many of life's vices (alcohol, drugs, bad relationships with people with different personal values because they're easy to get into bed with, gambling, extreme religious devotion, the vindication of social media mob participation, etc.). I would call them successful despite not knowing the difference between a function and a method. (Successful enough, at least, to be homeowners in their young 20's despite growing up in poor families.)

2. Programming skill does not necessarily a life free of struggle. I know several homeless people with programming skills. Mental health (which is something our industry severely neglects!) brings its own struggles to the table.

3. Adults who take an interest in programming can gain sufficient aptitude to be valuable to organizations in a short time.

Forcing programming down a child's throat does them no favors.

You can be quite a success as a doctor without learning to code. And many other professions as well.

Not reading, writing, or knowing how to use a computer would be far more detrimental.

True. And yet I played and watched just as much football as my brother when we were growing up - and as adults he spends every weekend watching the scores come in and watches every game his team plays. International games aside, football does very little for me. I prefer to spend my time doing other things that give me the same buzz he gets from that.

You can push a kid in any direction. And for some period of time, they might even get behind it. Doesn't mean it will develop to fruition (otherwise I might actually have something to show for those years of piano lessons!).

Nobody is born with an interest in anything.. If my parents pushed programming on me as a young person I might not have enjoyed it as much as I do since learning it would be for them, not for me.
There is a difference between developing an interest in a child and forcing them to do things.
That is true, but a child is definitely interested/drawn to certain fields than others. I guess that is what your parent comment was referring to.

As a child, I was enrolled in some music classes when all I wanted to do was play Chess. My parents had good intentions, it sucked for me though.

> A child isn't born with an interest...in crime

You've never observed a child walk over and just take a toy from another child? Good thing we teach them not to do that from a young age.

Make programming simple and fun. Scratch is a great gateway for younger kids >10. It'll allow them to see the cause and effects of adding different 'blocks' of code. The Scratch website also offers opportunities to remix previously made games. After 10, possibly introduce 'proper' programming and maybe create a small project together. The older they get the more ideas they may want to pursue on their own. It's best to make programming rewarding but not taxing at an early age, so they don't get frustrated and quit.
As an aside, Scratch is also really good for teaching adults how to program.
Scratch is fantastic, and has an amazingly supportive community. My (middle-school) daughter has spent tons of time making Scratch programs with groups of people she's met on Scratch, and it's been a really positive experience.

She and I worked her way through: https://www.amazon.com/dp/1305075196/

I just started my 6 year old on ScratchJr (simplified Scratch for Kindergarteners), using an old Android tablet. I was reluctant to give him more screen time, so we do it after dinner when we'd normally let him wind down and watch a TV show. We give him a choice between TV and ScratchJr every night, and he picks ScratchJr every time ("Scratch is better, I can control it").

We sit down together and do one or two structured activities from the "Offical ScratchJr Book", and then I let him go solo for a little while (he usually tweaks the scripts from the book to do silly things). It's a pretty limited environment compared to full-blown Scratch, but he's got a ways to go before he outgrows it--he's got the motion blocks down pat, but still hasn't absorbed the idea that scripts can send messages to each other to coordinate events.

https://www.amazon.com/Official-ScratchJr-Book-Help-Learn/dp...

> Make programming simple and fun.

Indeed.

And I second that Scratch, which is great on many levels, is especially good as a starting point.

I have three kids (12,11,8) who started at 6+- and still enjoy it extensively.

I made BlockLike.js (https://www.blocklike.org) to make them progress, and it worked pretty good.

> The older they get the more ideas they may want to pursue on their own.

Indeed again.

The older one played with BlockLike, and then went exploring on his own.

He gets ideas from YouTube and just try’s them out. Landed here on the top of the front page with some cellular automata a couple of weeks back.

He is off to trying Python now...

Do them a favor and get them excited about hiking, or bugs, or something that does not involve screens.
Ask them if they are excited, and if they say no, punish them by putting them in time out.

That should get them to love programming.

Jokes aside, it depends on their age. If they're toddlers, just get them to eat protein exercise and play.

First of all, that's a weird goal to have. Children are people. Let them be interested in whatever they want.

Buuuut, if you want them to get into programming, then discourage their computer use, and tell them to go play outside or something. Tell them that Linux is bad. And tell them not to go near the internet, and "whatever you do don't look up SNES emulators on the internet. Don't go to anynowhere.com and get really into Noctis."

As a parent fostering the development of a lucrative skill that appears to be interlocked with the future of our labor market, which the parent themselves find enjoyable, doesn't seem that weird. In fact, I'd go so far as to say it's one of the most normal goals a parent could have.

Now, the execution of that goal can be done very well, or very poorly, but the goal itself is reasonable.

Oh, I guess my parents raised me weird, then. They discouraged putting any importance into that kind of thought, especially when I was just a kid. It was always like, "do what you love and money will follow" kinda thing.
This kind of parenting is one of the reasons there are so many disaffected millennials saddled with insurmountable college debt and unmarketable skills.
Check https://sonic-pi.net I like the concept of using code to represent music and seems more interactive (if you change something, you can hear it immediately)
The beauty of programming is that’s it’s applicabale for almost any field/type of game. Find something the child is super interested and build a program for that field/game.

Example: if the child likes video games either build your own with your rules or HACK the game.

The idea is not to show the child a loop and expect them to be interested. So them how cool programming can be.

Get a tynker.com subscription.

During some of their screen time only let them use tynker.

Are you asking how you can get your kids interested in something they're not interested in, because you are? I'm often surprised at the industry's determination to be so enthusiastic about programming. I enjoy it, and have done for decades, but I fully expect that on my death bed I'll regret spending so much of my life staring at a piece of consumer electronics.
Show them how many things are powered by programs anyone can change.
Start them off excited about the analog world before you get into digital.

Get an electronics starter kit from a site like Adafruit or Sparkfun with an Arduino or raspberry pi (I prefer the Pi). Start them out with basic circuits and switches, LEDs and maybe a small 5v fan to show them how they can control the stuff. I highly recommend “fun” gadgets like a thermoelectric/Peltier module because it turns hot and cold, and you can get ones that run on 5V-1A, which most microcontrollers and the Pis can output. Easy peasy.

Then you can start showing them how they can control the physical world through programming, like turning a series of LEDs on and off, or playing a simple melody with a buzzer, or combining a temperature sensor with the Peltier module to turn it on when the room temperature gets hot.

If I had that kind of stuff growing up, I would have started programming at a very young age.

I really liked Lego growing up. Playing with BASIC on my first PC back in the early 90s was like grown up Lego - putting bits (no pun intended) together to create something new was amazing. The first time my named scrolled down the screen in different colours was a similar buzz to completing a really cool model.

I guess what I'm saying - if your kid is the kind of person that enjoys the sort of buzz some of us get from creating with code, find a way to give them that buzz and then let them run with it and explore it themselves.

Don't, its a dead end. Encourage them to be social and go into business. Counter to what we've been told over and over again, an ounce of social grace makes up for a pound of intelligence.
You shouldn't. Just give them many different opportunities, rather than hoping, that they may follow in your footsteps (which would be much more comfy for you, I know).

I hadn't been really interested in the Fine Arts (apart from literature) till I was 15 and my mother took me, and two of my best friends, to a 200 mile trip to one of the great art museums (in Basel, Switzerland) and a passion was born! Just by seeing the things, the work of the masters.

https://code.org/learn is a good website that contains games playable through a visual programming language (blockly / scratch). If you have a Nintendo Switch, Nintendo Labo is a fun way to introduce to programming and a sort of IOT.
https://code.org/ is a great website. My son programmed a simple flappy bird game and got to share the result. Good times
LOGO. I don't know why it fell out of favor, but it's the fastest way for a newbie to see visible, fun, graphical results.
Almost all professions are going to be using coding (at whatever level of coding) skills in the future anyway (if not already). So let them be interested in a field of their choosing, and then let them know that knowing coding can help them in that field.
There’s a great game called Human Resource Machine that might be a fun way to do that
The Raspberry Pi is great fun. You can build a night vision camera, a robot, an advertising black hole, a vpn server. A retro gaming system etc.

The Make introduction to Raspberry Pi book is the cleanest introduction to computers I have ever seen.

Sit down with your child, put together an order (let them pick the case and components, buy multiple cards so you can swap projects) come up with a few projects and turn them loose or spend time together working on a project or two.

You can’t force interest, but you can share your interests and spend time together. If any of the projects appeal, the interest will be self-sustaining. But if it’s not fun it’ll fall a bit flat.

My advice is don't get them into software before the age of 10. Using the computer too much at that age is not healthy. Get them into hardware and electrical engineering first. That's also something children are more likely to enjoy.

Just because someone can program at the age of 6, doesn't mean they should. It's not a race.

There is only one way.

They need to come up with something that they are interested in which can be solved with a program which is within their reach.

You can demonstrate, you can make resources available, you can involve them in your own work, but in the end only people who want to make things happen with computers will become excited about programming.