I’m familiar with two 3d modeling programs; openscad (pronounced open-skad by the truely enlightened, and open-ess-cad by the technically correct) and solidworks. In openscad, one constructs 3d models programmatically, by typing in structured text functions to define shapes and extrusions and using loops for repeated features. This makes for fast and easy 3d modeling of simple structures. The same can be accomplished in solidworks, but the shapes are defined by cuts and extrusions of sketches which are graphically drawn on defined planes. This can also be quite fast.
Overall, If all one needs is a 3d model or stl file, I would recommend openscad in cases where all of the model is easily referenced to the origin, and I would recommend Solidworks for all cases in which the features are more easily defined based upon each other’s surfaces, especially when those may need to be adjusted later and the changes need to be carried through to all connected bodies.
If one needs to create drawings from the models, Solidworks is the clear choice, with easy dimensioning, automatic section cutting, and external views, it is a huge help for mechanical drawing generation.