I’m an experienced developer, but recently my 13-year-old daughter told me she wants to learn programming—and surprisingly, I find myself unsure about how to get her started.
There’s an overwhelming amount of advice out there. Some suggest beginning with Scratch or other no-code platforms, while others recommend jumping straight into the command line or a “real” programming language.
I’m torn between a bottom-up approach (teaching the fundamentals first and building up) and a top-down approach (starting with something more visual and practical, then filling in the gaps later). If we go top-down, should we start with Scratch or dive directly into a language? If it’s a language, should it be Python, JavaScript, or something else?
Even on the hardware side, I’m debating whether it’s better to get her started on Windows, macOS, or something else entirely.
I’d love to hear from those of you who have introduced programming to kids (or started young yourselves). What worked, what didn’t, and what path would you recommend?
zachlatta3 hours ago
You should see if there's a Daydream game jam near you! It's a game jam for teens ages 13-18 happening in 100 cities simultaneously worldwide on September 27th and 28th, 2025.
There'll be workshops to help people get started and everyone else will be her age: https://daydream.hackclub.com/
Here are some videos of recent hackathons like Daydream. All for ages 13-18.
- Hackathon on an Island (August 2025): https://www.youtube.com/watch?v=uXWMr0gdLJA
- Largest Hardware Hackathon (July 2025): https://www.youtube.com/watch?v=kaEFv7e49mo
- Scrapyard: Build Silly Projects (March 2025): https://www.youtube.com/watch?v=8iM1W8kXrQA
(I run Hack Club, the nonprofit hosting this event)
Herobrine208410 hours ago
I'm recommending some video games like Human Resource Machine: https://store.steampowered.com/app/375820/Human_Resource_Mac... It's always fun to "see" the logic being executed and have fun challenges.
On the next step, I believe things like Scratch are pretty good to introduce to programming.
On the web development part, I built a little "game" as a tutorial of my tool: https://luna-park.app/challenge . It's JS with visual nodes, this is used to learn algorithmic for students.
zeke7 hours ago
My kids played Minecraft, and one installed Lua to automate parts. Occasionally he would show me what he was working on and I could offer suggestions.
We also set up a Linux computer as a Minecraft server and I was available to help with questions. It is a beginner level admin job with a purpose they can see.
If she has an idea for a web page or service, help refine it to something possible and implement.
adamgroom16 hours ago
My son is 14 and I got him interested by showing him how to automate navigating web pages with selenium.
We used python as that’s what they teach in school, and was happy with an app that that navigated to Deliveroo and added his favourite McDonalds order to the cart!
codingdave18 hours ago
You'll find that when they teach kids in the schools, they start with the fundamentals. Logic, branching, loops, problem decomposition, debugging. Doing so has even been shown to improve their overall academics because they approach all their classes with an eye to logic and troubleshooting when they get things wrong and it builds resilience and self-correction into their world views.
Even aside from that, it puts them in the same boat as experienced coders, in making their own decisions -- If they know the logic, they can choose for themselves whether they prefer the syntax of Python vs. JavaScript, or any other environment.
DauntingPear717 hours ago
I think you’re over estimating the intellect of the average 3rd grader here. I think a gentle and feedback/visually oriented method would be best
codingdave11 hours ago
You are correct that the presentation needs to be age-appropriate, but that is orthogonal to the material being taught.
If you want to see how it all comes together, this is a fairly solid representation of how it is approached for kids in the schools: https://code.org/en-US/curriculum/computer-science-fundament...
sorrythanks16 hours ago
Let her do something visually compelling in a medium she already uses to engage with the computer.
I've enjoyed success in getting people excited by having a person create an HTML button, and write a line of JavaScript that changes the background colour of the page to their favourite colour. After they have done that, and as such feel like a god, then some fundamentals via simple games.
jas0n16 hours ago
What interests her? What excites her? My philosophy of childhood education mostly comes down to inspiring and growing their curiosity. If you can guide her to things that are most interesting, over time she will become more interested in more complex, robust things and will need your help navigating how to do those things.
DauntingPear717 hours ago
When I was in 3rd-5th grade I really enjoyed scratch. In middle school I started learning python mostly on my own. I found how Python did classes/OOP extremely challenging and confusing to my middle school brain, but it was pretty simple otherwise.