

I recommend dual booting, not a VM. It is easy enough to choose which OS to boot into if you need to go back to Windows, while being enough friction that you don’t immediately fallback to going into Windows every time you don’t know how to do something in Linux.
I don’t code, but from the gaming standpoint, things are pretty decent on Linux these days. I’ve been on Linux full time on my laptop for well over a year now, and 6+ months on my main desktop now and find very few reasons to boot into Windows. I think I booted into Windows last weekend for the first time in at least 2 months because I had to upgrade the FW on a device that only had a Windows tool. Otherwise I do have a windows VM on a server that I use relatively frequently, because the state of 3D CAD software on Linux is horrible.
Yeah, that is the downside of dual booting, you are almost certainly going to end up learning how to chroot to fix the bootloader at some point. But dealing with a VM, especially if you want to pass a GPU also has its own difficulties.