Check out this tool that visualizes a lot of different sorting algorithms:
Easy:
Programming is a big topic and the beginning to understand lies in two parts:
1. Understanding the logic behind a computer program and how a computer follows the instructions of a computer program. You can pretend to be a computer and train this here.
2. Learning how to write code that the computer can understand and transform into a program. This is a visual example of how code can draw images, play around with it to learn how code is understood by the computer.
Intermediate:
At some point, the easiest way to learn to code is to take a bunch of code and to change small things and see what happens as a result. This tutorial provides a visual program in Python that gets progressively more complex and allows you to change everything you want to see what happens. Try it here:
Advanced:
One of the best ways to get used to programming is to tackle real problems. There are many great tools for this online (they all need an account) that provide challenges and tests your proposed solution (these can get really advanced) in whatever coding language you want. Two good platforms are the following:
LeetCode (starting challenge, top right to get to the next one)
CodeWars (start with 8 and 7 kyu challenges)
Edabit (small coding challenges, Python or JS)
Easy:
Your first steps into game design and understanding the logic behind your first game. How do you control a player character and how does a game count points or end a game. Learn this in a simple tutorial using a simple version of Scratch that will lead you step by step through a “Flappy Bird” style game.
Intermediate:
Scratch is a good software to start getting into game design, as the programming is very simple to understand, which means you can focus on the steps of creating a game. This is a tutorial on how to create a simple game using the real Scratch platform.
Advanced:
Most real video games, small and large, are programmed in a Game Engine, a powerful tool that combines the graphics, game logic and controls in one practical program. One such free example is Godot, allowing to make simple and complex projects. The whole engine is available online here, but to get started, this is a great tutorial showing you the programming language behind Godot called GDScript: