Sure, happy to address CAD and CAM for 3d printing:
A form of CAM is necessary, but in the 3d printing world, that is called a "slicer," and there are some excellent free & open source slicers available - I think the best is PrusaSlicer, but some people like Cura better. Either one will come with a large number of presets to suit different machines, but you can also adjust the parameters to suit your particular machine - that is what I have done with PrusaSlicer to use with my homebrew machine.
The slicer needs a 3d model file. The most common is an .stl file, which has the benefit of being near-universal. It also has the deficit of lacking any units of measurement - when it sees that something is "1" long, it doesn't know if that's 1 inch, 1mm, or 1 cubit. However, pretty much every system I know of defaults to mm as far as the .stl file and as far as what the 3d printer expects, even if the actual design is done in inches.
You don't actually have to do any CAD to start 3d printing. There are repositories with hundreds of thousands of .stl files that people have shared. Thingiverse is probably the best known such repository, but there are others. Just download the .stl file, slice it (feed it to PrusaSlicer or Cura, possibly scaling it as needed), and send the generated gcode to your printer.
If you want to create your own .stl file, then you do need some sort of 3d CAD system. A bit of searching on this forum will show you lots of discussion of the relative merits of different software, but in terms of software that is free to the hobbyist, the main choices (IMO) are Fusion 360, FreeCAD, or OpenSCAD. The latter two are free and open source; the former is a commercial package that has a somewhat limited free license for hobbyists.
Fusion 360 and FreeCAD both have enormous range of what they can do, and are suited for just about any design work - model up your parts, attach them together to see how it all fits, make up a set of technical drawings, generate g-code for a CNC mill, generate .stl files to print 3d models ... and the lists go on. They offer several different ways to build up a model (different ways may suit different problems), but the most common process for both is to start with a 2d sketch that is then "extruded" into a 3d part. From there, additional features are added or subtracted as needed, often by sketching the feature and creating an extrusion or a pocket, or by adding fillets or chamfers, or by repeating features across or around the part. (That may not make much sense without seeing it in action ....)
OpenSCAD is a
very different approach, being essentially a programming script that tells the software how to put the model together. It is really only suited to creating .stl files for 3d printing, and not much of anything else - but there are times when it is the cat's meow for that purpose, and I often find myself choosing it for 3d printing designs. For the most part, this approach uses "constructive solid geometry," in which you tell it to create basic shapes such as cubes or spheres or cones or so on, then add these together or "subtract" one from another or take the intersection. (Again, hard to describe without actually seeing it in action ....)
Any of this software has some learning curve, but there are tons of tutorials. Just be aware that for FreeCAD and Fusion 360 in particular, you will usually want to limit yourself to more recently produced tutorials, because both programs continue to evolve - it is frustrating when the tutorial says to "click on this button," and that button no longer exists in the latest version.