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...
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!).
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.
Forcing someone with no aptitude or desire to do something is just cruel.
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.
Not reading, writing, or knowing how to use a computer would be far more detrimental.
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.
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.]
Abdicating responsibility for your child’s education is not noble.
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.
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.
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...
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...
She and I worked her way through: https://www.amazon.com/dp/1305075196/
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.
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.
* Realize that you need to frontload fun over value here. Fun needs to be the hook in a way. You can't jump straight into the coding, you need a bridge and that bridge needs to be something that is fun, visual, and most critically, provides immediate gratification. I would suggest using Scratch as that bridge. If that doesn't work, research the build-a-game-and-learn-coding solutions.
* Code along with them. Do exercises and challenges with them. Have small hackathons or competitions with them. Make the entire experience feel like a game - it can get really fun if done right.
* Get their buy in. I get it, they might be too young to understand this pitch but if you do it right, it will resonate over time. When I go to pitch my camp to parents and kids, I ask them what coding is and some examples of it. The last part is key; once they realize how omnipresent machines and codes are and that it can be used to make the apps they use and the games they play, they be more eager.
Hope that helps. Drop me a line at manish@youthcodecamp.com - happy to share more over a video conference or coffee.
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.
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 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.
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.
The best thing I can suggest is let them observe and watch your work. Setup the computer in a shared space with a large monitor so they can watch. If they see you having a fun time with the computer, they will naturally become curious.
If they come to you with questions, guide them and provide resources. Don't push.
Good luck...
Just because someone can program at the age of 6, doesn't mean they should. It's not a race.
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.
https://www.amazon.com/Video-Game-Programming-Jonathan-Harbo...
During some of their screen time only let them use tynker.
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."
Now, the execution of that goal can be done very well, or very poorly, but the goal itself is reasonable.
I have a son like that. Telling him "no" is the best way to guarantee that he promptly runs off and tries it. He's been that way since he was born, basically. He nearly got run over at age 2 because I told him to not cross the street without a grownup and he had to know why for himself and promptly ran out into the street -- pulling away from me and his father both, as we were standing on either side of him and we were each holding one of his hands -- and nearly got run over by an oncoming car. I don't think the guy ever saw him.
It can also be influenced by gender. I'm a woman and I have two adult sons. They are talented at getting me interested in "male" games, like Master of Magic, by framing it in terms that appeal to me, such as telling me "It's just like your favorite game, Sim City" and then coaching me on how to play it like a civilization building game instead of a strategy and war game and helping to minimize the pain point of actually going to battle.
One thing I complain about with Sim City is that war never happens, though you have a military base and war has a huge impact on economies in the real world. Yet the game has some completely unrealistic disaster scenarios like aliens invading.
The idea that civilization building happens separate from war is just not realistic. That isn't how the world works.
So I don't really like the battle parts of the Master of Magic, but I don't really like how Sim City de-claws things completely, so to speak. It is possible to play Master of Magic as a civilization building game with war as an annoying side detail that happens like in real life. That works pretty well for me.
So girls and boys may take to programming for different reasons. In spite of how not PC it is these days to suggest that girls and boys have some differences, there is some truth to that idea.
I began learning HTML and CSS so I could blog and more effectively talk to people. I like talking to people. A lot of guys learn to code to "do" something and sometimes only grudgingly talk to people to further their goals of "doing" something. Many programmers are very introverted and talking to people is the last thing they want to do.
Some generally useful ideas that may help:
Make sure they have access to computers.
Only restrict their use of computers for safety reasons and in a way that is supportive of them and not punishing or blamey. (My sons were told "No porn and no reading instructions on how to build nuclear weapons." as a tongue in cheek rough guideline and I supplied them with kid-friendly bookmarks to help them get started on things they could look at without worrying too much.)
Follow their interests. If they are interested, take them to the library or the bookstore or whatever and help them find resources that appeal to them, but let it be their thing.
Make it fun. Don't make it another chore they must tick off.
Find ways to connect them with people who program and who enjoy it.
If you have some pigheaded, stubborn kid who hates being told what to do and will do the opposite just because you said "Do x," back way, way, way off on anything that remotely smacks of signaling that "This is something I want you to do." Make sure it is clear in their mind that it is their choice, not yours.