This page at bit.ly/learnprog
Programming consists of these building blocks:
A Sequence of instructions
Making Decisions (if/else, a.k.a. branching)
Repetition (a.k.a. looping)
Additional constructs make things easier for us: 1. Naming storage locations (a.k.a. variables), 2. Grouping and naming repeatable groups of instructions (a.k.a. functions).
There are different flavors of learning and tinkering with programming. Part of which flavor you use should depend on what your goals are. For instance, is there a particular task you are trying to accomplish? Are you learning for fun? Are you trying to develop programming skill?
Games to help us understand the intuition
Consider using Robozzle to learn programming concepts
Blocks programming
MIT's Scratch is one of the most well-known versions. Also see Code.org's AppLab.
There is a misconception that this is not "real" programming. Blocks correspond exactly to text-based code. It is easier to tinker and explore when using blocks, because it does not require as much up-front knowledge.
For example, see blocks-based programs to try and Out-guess the Computer, see Which Language some text is written in, or have the computer read your mind (Magic Square).
Microcontroller
Use a small electronic devices such as a micro:bit (and a tutorial page) to interact with sensors and do things in the real world.
Programming in the browser
Javascript programs run in the browser. Code.org has tutorials, as does w3chools.com
Traditional programming languages
This includes commercial programming languages such as Python, C++, Java, and many others. Again, w3schools.com is a good starting point, among many others.