First family computer: an Amstrad PCW-8256. Alongside its primary office-type applications, it was possible to boot it into CP/M and run a BASIC interpreter, but we didn't have a manual for that stuff so I didn't do anything with it.
Then we got a BBC Micro second-hand, and that is a machine that was literally made for teaching programming. At some point we also got a ZX Spectrum+, but that always seemed like a toy to me, rather than an actual computer. It had to be plugged into our tiny colour TV that sat on an awkward high shelf, after it replaced a somewhat larger but much older black-and-white set that broke down. The BBC Micro actually came with a half-decent monitor.
Later still. we got an Acorn RiscPC - our first "modern" computer with a desktop GUI. Ironically, this was also the first of our computers that my mother had serious trouble learning to use. But as well as having a seriously upgraded version of BBC BASIC built in, we got one of the "nearly ANSI compliant" C compilers and
a book. Needless to say, I learned a lot from that. I don't think I had any real trouble with pointers or recursion, which are the most commonly cited difficulties.
At school I had an Amstrad NC200, which again had BBC BASIC on it (this time one of R.T. Russell's versions, I believe). There was no traditional GUI, but the slickness of operation was very gratifying - as was the fact that it would last well over a week on a set of batteries. A bit later I was given a PowerBook 190 and a copy of CodeWarrior, which served as my introduction to AppleScript (a truly horrid language to actually get things done in) and C++ (likewise). I'm pretty sure C++ hadn't actually been standardised at that point. So by the time I took a C++ course at college, I knew all the material before it was given, and consequently I was among the few to actually pass the final exam (with a Distinction, no less). I continued to use CodeWarrior through my university days, basically until OSX rendered it obsolete.
CodeWarrior included an object-oriented overlay on the Macintosh Toolbox. Since I didn't have any of the "proper" Mac documentation - a recurring theme until relatively recently - that was what I had to use to write any properly Mac-like software. Between this and the Java-based university courses, I found object orientation to mostly be a headache that had to be navigated and worked around, rather than something that actually supported me as a programmer. That was, of course, because it was taken too far, producing what I like to call "wormhole code". OOP has its place, but you have to know which parts of it are actually useful in a given situation, and which are merely stylistic gloss that quickly turn into technical debt.
I have studiously *avoided* using C# - aka "Microsoft Java but we're not allowed to call it Java anymore and we had to change the syntax too so it can't be casually mistaken for Java". These days I also avoid using Java, since Oracle took over and ruined everything about it.
Most of my professional career has involved using C, not C++. Consequently, the advances beyond C++98 missed me for quite a while. Modern C++ with Boost is an extremely powerful language - but it's like a Barrett 50-cal or a KP/31, and requires extremely careful handling to actually use that power. On the occasions I do use it, it is simply to apply Boost's extensive library of templated data structures and algorithms, and otherwise just the very basics of OOP without much strictness.
Lua is an elegantly simple language that is surprisingly flexible. But not very fast. I was introduced to it by scripting mods for a game, for which it is very well suited.
Python is a very powerful and reasonably easy language, but painfully slow, which limits its usefulness for big projects.
PHP and Javascript are hell-spawned abominations that I refuse to write even a single line of code for. They make the surprisingly extensive realms of "undefined behaviour" in C look like Number Four Privet Drive next to Grimmauld Place.
There are many language features that I *wish* were available, but are not - even in C++ with Boost, or Python. Perhaps one day I'll be able to implement them. I am, after all, starting from the ground up with the 6502 family again…