Sounds more like you're interested in self-hosting not necessarily programming but since I've done all of these I think I can help.
Self Hosting:
Thanks to our lovely Linux friends theres plenty of ways to self-host things, and shitloads of documentation on how to do them.
Be warned: If you're gonna do this i hope you can read. A lot of mistakes can be easily avoided if you just read the guide or doc or whatever you're following carefully (Said from experience).
Step 1 - Server:
If you have the extra parts I highly recommend you make your own server (Motherboard, Ram, Storage, CPU is all you need), and install Ubuntu Server on it (Click Manual Installation).
It's very easy to setup and has a lot of optional packages at the install screen for you to select if they sound interesting.
If that isn't an option you can rent a VPS for fairly cheap (5Euro/USD a month). The OS comes pre-setup so if you haven't installed anything yourself before that's a good route to go.
Step 2 - Software:
Email
So for an email server we use
iredmail for the setup since it's a massive pain in the ass to configure it to be completely honest. They've got a detailed guide to follow and if you have problems you can easily google it, theres a lot of guides after that on what you need to setup after (DMARC, DKIM, SPF) and i'm fairly sure IRedMails guide covers it so just follow that.
VPN
If you're gonna host a VPN you should get the VPS since otherwise your IP will still just be your home IP lol, but as for setup
OpenVPN is the way to go I think. I've looked at using it but never got around to trying so can't tell you how difficult it'll be but again,
if you follow the guide you'll have a good time.
Now if you meant VPNs in general then this is really up to you to do your own research but I believe
@DarkMahesvara has talked about VPNs before, basically it comes down to however you trust the most to have your data.
Programming
So you specifically mentioned you want to learn game programming so for this you'd have to do your own research.
"What kinda game do you want to make?" I guess is the most important since it'll determine what you want to use, and learn.
The Go-To Game Engines in my opinion are Unity, Unreal, and GoDot. I've only got experience with Unity and it's pretty decent to use. It's how i started programming, and many will argue about what language to learn first, but honestly the best way to start is just dig in and make a project.
Obviously don't expect to make Minecraft, or Elden Ring, or Skyrim your first try, but start small and try learning new concepts each time.
It's a lot more satisfying to learn by writing games imo since you see the progress a lot more clearly than making console line stuff.
Anyway, Unity uses C# for it, Unreal uses C++ and GoDot i'm not really sure, I think
@lapin used it(?) so he maybe able to tell you more.
As for tools, for the server all you're gonna need is powershell, so get familiar with linux commands, and for programming it's up to you
on my desktop (Win10) i use Visual Studio Community, while on my laptop (arch) I use Code::Blocks.
I prefer Visual Studio for my bigger projects but CodeBlocks hasn't been awful so far, and served me well while i've been practicing with C
When it comes to inspiration to work on my projects (which may not be a problem for you if you're disciplined) I like watching DevLogs. It's nice to see how other developers projects are coming along, and gives you some idea on how they format their code and some standards.
Also don't be afraid to ask questions or google if you're having a problem. Just make sure you actually learn from whatever you found and aren't copy pasting code.
Stackoverflow is particularly helpful here for me personally.
christ what else... I've rambled a lot, but hope it helped a bit. If you got any questions server wise feel free to ask. I'm the site admin so hopefully i can help a little bit with issues
Good luck and don't give up!
also explore programming and try learning other fields too. I went from wanting to make games, to making software, to web development (fullstack) and it's all helped me a little bit, but I'm still far far far far far from a professional. I just do it for fun in my free time