My first was QBASIC when I was 15 or so. I could have started sooner but I had no idea that games were programmed or that programming existed at all until I stumbled upon a programming book about BASIC, Pascal and FORTRAN. Then I remembered there was a text editor in DOS directory on my computer that didn't let me type what I wanted and things clicked and my programming ventures started hahaha. My first real program was a number guessing game that I pretty much copied from the book while giving it my own twist.
Internet wasn't quite a thing in my life yet at that point either, but later I got some access to that and quickly discovered QuickBASIC 4.5 which allowed compilation and was generally faster, but not fast enough for a nice 2D sidescroller and then the next important name I found was called "assembly". I learned x86 assembly and finally managed to get some 2D sidescroller going, but I never managed to finish anything, drawing took a while and my young mind wasn't able to come up with all the needed things. I had made a graphics editor and some sound tools at that point.
A bit later I built a
SRAM cart so I could run ROMs on my Mega Drive and then I decided to learn how to program the thing. Being proficient in BASIC I tried BasiEgaXorz but that was very limited and nowhere near the level of QBASIC even so 68K assembly was the next thing, and woooooow, that thing blew my mind, so much nicer than x86 ! It only took me couple days to learn most of it and not long before I had graphics on the screen of my TV running off my SRAM cart haha. Z80 assembly came next as I needed means to play sound without tying up the main CPU. It was much more painful than 68K which pretty much had spoiled me. x86 still felt worse though... Nowdays I also do Master System and SC-3000 / SG-1000 stuff, whole game in Z80 isn't actually all that bad.
At some point I learned SuperH-x assembly so I could do 32X stuff but didn't get super far. That CPU is weird, but only because of fixed 16bit instruction size, you're doing a whole lot of relative accessing to get something going, code and data intertwined around. Super fast thing though and not all that terrible to work with once you get used to the implications of fixed instruction size.
Then came the time to put QB45 to sleep as the programs I wanted to do grew too big for it. FreeBASIC was the next thing and that's something I use as primary thing to this day. Pmode DOS was very limited so I dropped that and went on with Windows. WinAPI was a huge PITA at first but now I'm fluent in it and it isn't super hard to get going somewhere.
At school I had to do Pascal but I didn't like the syntax one bit, C, C++ and C# were same deal, I cannot stand the syntax. VisualBASIC was more at home but I didn't do anything serious in it and haven't messed more with it to this day. I will have to do C at some point when I start writing some drivers for windows, not looking forward to that at all, I'll probably write some sort of translator to get FreeBASIC to C going because I really cannot stand C and likenesses haha. It is also why I'll never work as a programmer hahaha.
I also know AVR assembly and Texas instruments C54x and C55x DSPs. The latter two are absolutely horrible, 65x is great compared to those DSPs as far as assembly goes haha, making a NES game is lot less headache than something serious on those DSPs (but you are supposed to use C with those, and endure the absolutely terrible IDE). I don't have any desire to learn PIC, gonna stay in the AVR camp haha.