In the first post of this series, I reflected on my experiences when my father brought home our first computer. The discovery of QBasic on that computer lead to my first insight. This should come as no surprise, but it also started my programming journey.
As a child, the discovery of the classic Gorillas and Nibbles games on the new computer was an unexpected joy, and my brother and I played them a lot.
I was launching these games from the IDE and had the complete source code in front of me. My natural curiosity took over, and I started tinkering with the source. I specifically remember modifying the Gorillas game by changing the number of iterations of the for loop used to create the explosions from the bananas. I had a lot of fun by making the explosions from player 1 bigger than expected and the blasts from player 2 smaller than usual. My brother didn't find it quite as funny.
Fun and games aside, by starting with minor changes and seeing what effect they had, I learned a lot of structural programming basics. I learned what variables are and how they work long before taking algebra in school. I learned boolean logic, conditionals, and looping structures.
I found it helpful when my Math classes caught up to some of these topics, being familiar with them made me do very well in those classes. I remember sitting in a math lecture about truth tables and being bored since I already knew the material. Instead, I worked out the algorithms for the monsters' movement in my dungeon crawler game on my textbook's paper bag cover.
Back to the point... I was just a kid. I didn't have access to the internet, in fact, Tim Berners Lee had just created the world wide web, and it had yet to really hit the world. I couldn't go online and Google If Statements. Had I known what programming was, I might have found a book at my local library, but I didn't know what to look for at that age. I learned how to code from the best teacher there is... code. Reading code and experimenting with it are great ways to learn.
If you're just getting started, I suggest you don't start with, "How do I make X?" Start with, "How does X work?"