Most active commenters

    7 points AsifMushtaq | 14 comments | | HN request time: 1.104s | source | bottom

    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?

    1. codingdave ◴[] No.45071170[source]
    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.

    replies(1): >>45071550 #
    2. DauntingPear7 ◴[] No.45071543[source]
    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.
    3. DauntingPear7 ◴[] No.45071550[source]
    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
    replies(1): >>45073032 #
    4. jas0n ◴[] No.45071576[source]
    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.
    5. sorrythanks ◴[] No.45071642[source]
    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.

    6. adamgroom ◴[] No.45071709[source]
    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!

    7. codingdave ◴[] No.45073032{3}[source]
    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...

    8. Herobrine2084 ◴[] No.45073369[source]
    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.

    9. zeke ◴[] No.45074122[source]
    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.

    10. zachlatta ◴[] No.45076099[source]
    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)

    11. atleastoptimal ◴[] No.45078557[source]
    Yes
    12. zahlman ◴[] No.45078632[source]
    > 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.

    Start by making sure you understand what she hopes to accomplish, and that she has a reasonable concept of what "programming" is.

    But you really don't have to sweat these choices as much as it seems like you're doing. Kids are smarter, and more adaptable, than you think.

    And don't fret if she discovers a different, related passion (e.g. computer animation) instead.

    > 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)

    You don't have to choose. There are visual/simulator based ways to understand hardware at the gate level (check out the various Zachtronics games for just one example) and build up from there. Nothing prevents students from considering this at the same time as really abstract programming concepts (SICP-style). Programming is about problem analysis as much as it is about writing code, after all.

    > 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?

    Many language choices are reasonable and you shouldn't sweat this too much. If you start with written, textual code then you should probably also expect to start with simple command-line programs — anything involving an event-driven framework is going to be too complex to start; code is much more easily reasoned about when the student controls the timing and sequencing of events. (Students will very commonly want to make "action" games, or even just things as simple as "the user has X seconds to type the password or game over". This opens up a new world of complexity, and you should be candid about that.)

    But students must be engaged with what they're doing in order to learn. First, make some toy CLI demos/programs of your own. If that kind of program doesn't catch her interest, choose a different starting point.

    > Even on the hardware side, I’m debating whether it’s better to get her started on Windows, macOS, or something else entirely.

    Has she not used a computer before? (I realize that nowadays this can't be taken for granted any more.) Use the hardware and OS setup she's accustomed to using, if possible.

    If you really must introduce to her the concepts of sitting at a desktop, opening a terminal, typing on a keyboard, writing text in an editor etc. — then start on Linux. It's just a more developer-friendly experience. Honestly.

    > I’d love to hear from those of you who have introduced programming to kids (or started young yourselves).

    For those of us who started young, computers were radically different when we started. For example, I started with ROM BASIC on a Commodore 64.

    ... Honestly, you could do worse than an emulation of that environment. Certainly it set reasonable expectations.

    13. gus_massa ◴[] No.45079731[source]
    With 13yo, I'd go straight to Python. Perhaps start with some drawings with the turtle, and add loops for complex shapes and later recursion.

    Also, do some math calculations that require "for". From recursive series to brute force problems with small integers.

    ---

    I'd recommend HTML+Javascipt only if she wants to make a few interactive webpages, with a few text fields and buttons. I'm not sure how hard is to do that in Python.