I'll write some advice which you can take or ignore. Universally, a programmer will want to know at least C, UNIX, and git.
For C you can read K&R, try online tutorials, or make (or submit patches to) projects. If you know Python, the learning curve shouldn't be too big.
For UNIX, I recommend reading through the POSIX standard:
https://pubs.opengroup.org/onlinepubs/9699919799/. I'd also recommend installing Linux, or making an account on SDF.org so you can get used to that environment. You will also definitely want to know how to write shell scripts, so here:
https://pubs.opengroup.org/onlinepubs/96...hap02.html.
For git, you can get away with memorizing some commands (git add, git clone, git commit, git push, git remote, git rebase, git status, git blame, etc.), but I'd recommend checking out the Pro Git book and reading through the manpages at some point to learn more about it.
https://git-scm.com/book/en/v2
After all that (which isn't too bad), you should be set to work on whatever you want. To go further though, you'll want specific goals (it's like learning a language). If you want to learn how to reverse-engineer the protocol for some video game, you'll want to get used to network analyzers like Wireshark, Burp Suite, Charles, etc. If you want to write retro games, you'll want to learn Z80 assembly, 68k assembly or 6502 assembly depending on the platform. If you want to build a website, you'll want to learn the web standards... but only the basic ones, the web is way too complicated. If you want to write Minecraft mods, you'll want to learn about Java (but you won't have to because Java is easy most of the time). You get the picture, lol.