If you are going to make parts, that will really define what type of software you want to get into. As not all program will do all types of parts.
Whatever you get must do what you want to make.
Also if you want to some of your own tool path work, you would need to be sure that you could easily edit the code that came out of the cam program. Or gave you the flexibilty to work with your own code.
www.cncprogramdeveloper.com