In my case, it was a series of fortunate events.
When I was 8-9 years old, my dad, who knew absolutely nothing about computers, decided to buy a computer "for himself". It was a 386 machine, which he never really used much, but I sure did. I learned my way around DOS and I also discovered QBASIC (which came with DOS, included a dev environment and a built-in manual!) on the computer and started learning it. QBASIC also came with the source code of 2 games, some snake game and "GORILLAS.BAS" (a scorched earth clone with 2 gorillas throwing bananas at each other); having access to this source code was extremely helpful. At some point one of my dad's friends also bought me a QBASIC book. At this point, I kind of understood programming, but it was still on what I would call a childish level. I also didn't know a single other person who knew how to program. My English was also fairly poor at this time, but using a computer helped with that, too.
The next important event happened when in 7th grade, a teacher asked me if I was interested in going to the computer science competition (we have competitions for everything here for schoolchildren and I was already going to the math one). You could use QBASIC, I went, the problems for 7-8 grade were very easy and I somehow qualified for the national finals which meant I got to spend a week for free at a hotel where they, apart from having the competition, had various workshops where they taught algorithms, the C language, using Linux, etc. I assume this was one of the very few places if not the only place in the country where someone would teach children stuff like this at a serious level (instead of dumbed down crap kids were and still are taught at school), so it was extremely fortunate for me to have access to this. Also the people organizing and teaching this were amazing, they weren't CS schoolteachers that knew nothing, they were experts. I placed well enough in the nationals to qualify for "camps" which are basically the same week-long "free vacation" twice a year with various workshops but without the competition part, and I would continue qualifying every year from then on. This meant that other from attending the workshops, I got to hang out with a bunch of incredibly smart and knowledgeable kids and made some friends who were all also into programming, some of them much further along the learning curve than I was, and some of these kids would also qualify every year. This gave my learning a massive boost since I had a network of people who were incredibly ahead of their time/age that I reliably got to spend 3 weeks a year with. In addition to knowledge sharing, this kind of environment is also very motivating so I spent a massive amount of time learning new things from age 13-18.
Whoever at Microsoft decided to ship QBASIC with DOS and decided to ship the source code of 2 games with it (I'm assuming in those days that would have been the same person) has my eternal gratitude. If anyone knows who this is, I would love to send them a thank-you email. :) Other than my dad buying the computer, Microsoft building QBASIC and including it with DOS along with the source code for games was probably the biggest contributor to my career ever happening.