It depends on what you are programming. If you are a student look no further than Linux. It is open, it is free, has a lot of documentation and it has the liveliest community.
Most popular Linux distributions, MacOS, and the major BSDs support QEMU & the tools you'll need.
Use whatever you're most comfortable with.
I sit in front of a Windows machine, I usually deploy to Linux.