the very first thing i learned was how to program a guess the numbers game on a programmable desktop adding machine (olivetti underwood 101)
https://en.wikipedia.org/wiki/Programma_101
next i learned how to program in basic. that was enough to write a lunar lander clone for the ibm 360 mainframe. i took a class in high school, basic and fortran over one school year.
https://en.wikipedia.org/wiki/Lunar_Lander_(1979_video_game)
and i also wrote a flying saucer shooter arcade game for the IBM PC XT.
then i learned pascal for speed as part of my non-game progamming , and some trig and such in school.
this was enough to write the world's first star trek flight sim.
the game was uploaded to the biggest BBS at OSU (this was before the internet). someone re-uploaded it to AOL, and it became a top 10 download on AOL, 10,000+ copies downloaded the first week. first i showed it to my friends, and they said "looks cool! needs better explosions!". so i added better explosions. then i emailed the sysop of the biggest BBS at OSU and asked him how to prepare a download file. he said: "used the wolf3d method: a little for free, and pay for the rest." (wolf 3d had just come out). so that's what i did.
yes i still make games. since then i've learned how to do true 3D stuff. and you really never stop learning. just keeping up with the hardware and customer expectations more or less guarantees that.
surprisingly little of my formal education applied to making games, despite being a software engineer, and having enough hours for 4 engineering degrees (i was a professional student for a while). some math, programming obviously, some CS stuff (discrete math etc), and physics, that's about it. almost everything game specific was learned through individual study. i have a saying: "everything i ever needed to know about building games, i learned on compuserv's gamedev forum.". sad thing is, its by and large true.