As a kid, my programming career started with Visual Basic, a little bit of that and qbasic.
But my dad had a copy of Visual Basic with our old computer back in the early 90s. That along with Gorillas on qbasic was really my first entry into programming.
Back then I was about 9 years old, I really wanted to make computer games, I was pretty smart, but in 1991, a kid with no resources has a hard time breaking into programming.
But QBasic had gorillas, which was a GAME! And it was in basic, and so the source code was right there for me. I didn't have books really, because while you got QB with your operating system, you didn't get manuals for it or anything. But the Visual Basic came with books, and help.
Not only that, it used the same language as gorillas, more or less, and I could drag and drop elements on to the canvas.
By 9 or 10 I made my first "RPG" in visual basic. I used an array of picture boxes as tiles. I had 4 buttons that were directional arrows. And when you clicked one of the directional arrows it would figure out where your player was, see if he could go into the next tile based on what picture it was, and if it could, it would swap the picture of the destination with the picture of the player, the original picture of the player with the original picture of the source. I don't remember if I tracked the position of the player by x/y coordinates or if I just scanned through all of the tiles to find the first one with the player image.
But what I do know was that by 9 or 10 I had made myself a little "game" where you had a top down grid that you could make a player walk around on, and that moved to something that spawned random encounters that were in another window.
I look at what I had as tools, and it was so little. I didn't even have a single book about programming. All I had was gorillas and some help docs for VB. But I was so proud of what I'd made. I ran into some of the pitfalls of memory management when all of your tiles are giant windows objects in VB.
Later I started to learn to get VGA graphics with mode 13h which I found out about from a copy of the Peter Norton's Guide to Programming the IBM PC that I got from the library. I wrote some inline assembler in basic to do some basic putpixel getpixel stuff. I did a lot of cool stuff there but ran into some of the limitations of trying to work with BASIC.
From there my dad had a copy of Borland C++ from his office that I used, mostly just learning C, and when I got access to the internet I started using turbo pascal.
In high school at about 14-15 I had friends who showed me MUDs, and a few of us worked on a little MOO. I took some of my knowledge and a copy of Visual C++, and implemented a little terminal emulator that would connect to the MOO. Then I had some rooms send some additional codes that the terminal emulator would parse and display things on the screen. I made a pseudo MMO before MMOs were a thing. There were MUDs, but very little graphical existed, there were things like The Realm, which was sort of the same type of idea, but I didn't know about it at the time.
The reason I'm telling this story isn't to say how great I am. My point is that I read about these stupid programming curricula in school that are mandatory for kids. As though sitting them down and forcing them to program is going to help them. I had to do some of that in my own school career, in having to do LOGO WRITER stuff in computer class. But doing that, I could barely even tell that that was programming. And even if the teachers told me it was, it wasn't the kind of programming I wanted to do. That's just drawing spirographs on the screen. I wanted to make games.
It's the same way as learning to write "Hello World" and store a variable, and calculate some tax on a price and all the other incredibly boring stuff that introductory programming classes have you do.
People assume kids are stupid. They assume that they have to give them the most basic foundations or they will not be able to learn. Teachers don't want to teach kids to make games, not because they don't want it to be fun, but because of an idea that a game is way too hard to start with. That you have to build up the foundations first. That you need to teach the fundamentals, master them, and then move on to the next marginally more challenging step.
Well, maybe not teachers, I know a lot of good teachers, but the people who write the curriculum think that. Because you need to be able to test and evaluate, so you need to know that you can check of a box that says the kid knows how to do variable assignment, create a function, get input, whatever else.
But I didn't have that shit. I had gorillas.bas I didn't know what "EGABanana:
'BananaLeft
DATA 458758,202116096,471604224,943208448,943208448,943208448,471604224,202116096,0"
meant. Nobody taught me that. But I think BECAUSE nobody taught me that, I wasn't afraid to just mess with the numbers a little bit, run it and see what happened. Oh, changing those numbers changes the way that the banana looks? Ok cool. I mean, there was trigonometry, there was all sorts of stuff that even now looking again through it it takes me a while to parse.
But I didn't care. I tried to look through for something that I could understand, I picked it out, I figured out how it worked, and then I had one piece of the puzzle solved. Now all of the FOR, NEXT loops make sense, and I can use that in my other program.
Now I imagine the 9 year old me in today's world. I don't have to rely on my parents having bought VB or Borland C++, I can download Visual Studio for free. I have the ability to create a minecraft mod in a matter of minutes which on its own is interesting enough, but it basically means I have a tile-based game engine at my disposal, but I'm also writing raw code and not just strapped into some Logo-writer type sandbox. If I have a question the Internet can answer it 150 different ways.
Honestly, the only thing I worry about is that by the time 11-year old me starts to work on something like this I will have decided I hate programming because of the kind of soul-sucking programming curriculum I've had to work on in computer class so I don't even bother trying.
It's like Math. I think math is really awesome and interesting. It's artistic, it's simple, it's complex, it's beautiful, it's actually fun and engaging. Math and programming are very similar in that way. But ask a selection of 10 year olds what they think of Math and they will almost all tell you they hate it. But it's not math that they hate, it's the way they have had it fed to them. It's like force feeding someone pureed boiled chicken every day. You ask them if they like chicken and they'll look at you like you're crazy. Chicken is disgusting.