When it comes to programming, it is never to early (or too late) to start. Learning of programming start not with programming languages but with algorithmic thinking. What it an algorithm? Instruction, ordered commands. It is easy to explain to children on the example of sandwich making. What steps do you need to take to make yourself a sandwich?
After understanding algorithms, we can start using computer for further programming learning. There are increasing number of languages, software and toys that help with this step. First of all – Scratch.
Scratch is a block-based programming language with huge support community created by Lifelong Kindergarten Group at the MIT (Massachusetts Institute of Technology) Media Lab (https://scratch.mit.edu). It is free to use – both online and offline. It is available for Windows, macOS, and Linux (Adobe Air Required). Now it is even often used in schools as first choice programming language for children.
In brief, you can prepare environment for a scene (background, music, etc.) and heroes of the game or story (so called sprites) – you can choose from default options or draw everything yourself. Then you can tell what the sprites should do, how many times, for how long, whether it should happen in special conditions. You have for loops, while loops, if conditions, various commands… actually it combines to unlimited number of combinations. Sprites of course can interact with each other and music or background may change during the scene/game.
For new ideas for projects you can search through database of open projects available at https://scratch.mit.edu. You can copy found project and modify it (however, remember about the credit to the original author!)
When I first tested Scratch I was really amazed by the possibilities of the language in spite of (at first look) low number of available blocks. Just to show you examples:
Some old racing game
But you find many many more (also games from your childhood 😉 ).
Have fun with Scratch!