Hey OP, I'm just starting my self-hosting journey as well. I can program a little bit in Python and C++ but I haven't needed any of that so far. As others have said, some familiarity with Linux would be very helpful. The things I've done so far:
- Wireguard VPN server on my router(no programming or linux commands, just some config of my router which I was able to do in the router's GUI.
- Wireguard VPN client on some of my devices. My phone setup was easy, still working on setting that up on my Windows/Ubuntu laptop.
- Home Assistant on a Raspberry Pi (WIP).
Eventually I plan to set up a NAS with Immich and some local IP cameras and Plex or something similar.