Those are very good questions! Your interest is admirable and can pay off in a lot of cool ways if you keep working at it.
Keep in mind that self-hosting (Systems Administration, among other kinds of specialties) is quite a bit different than programming but there will be some overlap.
Self hosting:
I think the youtube channel, NetworkChuck, is a great place to start. His videos are structured well and provide practical explanation to the tasks being taught
Take some time to learn networking - You may not want to get a technical certification but searching for CompTIA Network+ training can teach you what you need to understand how you can build out more complicated infrastructure
Docker is great, at the very least study containerization and virtual machines
Invest in hardware - consider a low end PC or raspberry pi (or other single board computer) that you can practice installing software or otherwise make mistakes without taking down your main machine
Think about what sorts of software you'd want to host yourself - there's loads of "Awesome-Style" lists to get some ideas of what you can run
It's a journey - You can learn a lot in a week, but don't expect to have everything flawless immediately. It takes time and regular practice.
Programming:
This is much more difficult to answer because you'll probably learn lots of languages. It's maybe more about what you want to program, as in "what kinds of things do i want to make".
YouTube, or if you have access, LinkedIn Learning, have loads of learning material. Search for terms like "android application hello world" or "first android app". Tutorials are plenty.
Invest in a book or review things like MIT's open courseware for computer science information. It will help with programming even if you're not learning a programming language specifically.
I use python a lot because it looks pretty and works - i can use CircuitPython to program microcontrollers (Adafruit products, for example) pretty easily.
Shell/Powerscript - these languages are about automating computer tasks. It can be very helpful in the realm of self hosting and worth exploring.
I haven't tried to do anything with android since java was the sort of default, but it wouldn't be a bad idea to start learning with android development - learning new programming languages can be easier when you already know how to program. Install Android Studio, go through some app development tutorials, and then experiment.
It's hard work to learn, but you'll be amazed with what you can do after regular practice!
It seems like it should be, you just may want to test various encoding settings for your media - for example i have all my stuff in m4v containers with h264 and h265 encoding bc i know for certain that directly plays on my apple tv without needing to transcode.
I'm sure that will be fine, but just watch out for any media incompatibilities that may require transcoding (unless your server can handle it just fine)