To the OP I went through what you are having just completed a DIY CNC build last year. The DIY was purely for cost reasons.

I feel there are three basic parts to CNC, and full disclosure my recommendations are biased. If you want to get a feel for CNC I would suggest this work flow for learning purposes. Downloading some form of simulator to play with.

Part 1 (CAD/CAM)
The Fussion360 CAD/CAM package for Hobby/Edu is a good choice (free). You can layout and create parts and patterns in CAD. Then define tool paths in CAM. And finally create the G-code to load into a machine simulator. Plenty of YouTube tutorials.

Part 2 (Simulator)
In Fusion360 you can simulate the tool path. Or for Machine based simulation you can load LinuxCNC (free). LinuxCNC is the machine control. You can create a machine and simulate running the G-code you created. If you prefer MS Windows I'm sure other control software (Mach3/4, etc.) packages out there have simulation capability. I'm just not sure which ones are free to try.

Part 3 (CNC Machine)
When considering a purchase you would normally start here first selecting a machine that best suits your needs. But simply for for learning CNC you can ignore the machine IMO.

The turnkey packages chosen will likely have one or more options for the control software. If the package or control software does not have CAD/CAM capability you need to purchase a compatible option separate.