1. Apps are boring, but...
First, don’t use apps for learning code. Mostly (but not all of course), they are just silly. Too many distractions, too many ugly animations. „Daddy, why is this robot so weird?” or „Why is he moving in just one direction?” - my children keep asking me. The younger ones are getting bored very fast and/or frustrated with robots that can only move block to block in one direction. The older one solved many simple coding games, but also got bored very fast.
The only exception is Apple's Swift Playgrounds on iPad. The first lessons are great for kids. Especially because they can choose from three different aliens (we love one-eyed alien!). Also, the animations and tasks are simple and nice-looking. They have no distractions and you can always change zoom or perspective.
2. If not apps, then what?
Honestly, I am thinking about making my own iPad app for learning code. The main problem is that kids have boundless imagination and coding apps are usually very, very limited. They are based on a simple move-to-direction logic and more or less distractive animations. What would be really great is an app that does not limit kids' imagination to simply point and click actions. One that allows them to use the WHOLE imagination and MANY ideas during coding. Currently, I really can't find such an app. Neither in AppStore, nor in Google Play.
So usually we learn how to code with non-electronic tools. Duplo and Lego blocks are great for this. In this play, I make a robot from blocks or use an animal/human block. One of my daughters is using the robot and I set tasks. For example - pick only red blocks, try to avoid green and yellow blocks. This is fun because children often find new ways for robots. They are making them fight, talk to them, re-build them etc.
4. Hello Ruby!
I also like "Hello, Ruby" by Linda Liukas. Especially the practices presented in the second part of the book. The story in the first part is IMHO a little bit boring. Plus kids don't get the whole stuff with Apple, Linux & Android cameos. Apart from this, "Hello Ruby" is a great introduction for logical thinking and of course coding.
And not only logical but also creative thinking - my older daughter often plays with me saying: "Give me precise orders. If not, I'll wear clothes on my pajamas!" (If you don't get the joke, just read the book ;).
There are also many good board games that help the creativity of children. For example "Little Red Riding Hood" by Smart Games. It can be used by both young and older kids (extended version). The task is simple - help Little Red Riding Hood get to the Granny and avoid the Wolf. Kids must use planning skills and solve problems that will appear on the Hood's road. You can check a simple tutorial on the Smart Games' home page
5. Other stuff
Generally, we use lots of papers for creating mazes and quests to solve. Even "Little Red Riding Hood" can be created also with just paper and pen. We also play with hidden treasures. I hide a teddy bear somewhere in the house and my daughters' task is to find it. But not themselves - only by using my "programmer's" commands. This game is really great because it can be used not only at home, but also on the walk, in park etc.
To wrap up...
Are there benefits from learning to code? Yup, they are. A lot of them. First, I can learn from my daughters (did I mention, they're great?) how to think unconventionally. They use so many unobvious links between words and thoughs, I'm always surprised and stunned by their imagination. This is a key word and starting point for all great activities: a kid's imagination. Use it and have fun!
Photo by Rick Mason on Unsplash.com