Since this thread has been made more general that the original poster intended, but might be a good reference for new folks, I thought I would give a more complete answer. I will list common software, and BOLD the ones that I use, but that is a preference not a right/wrong.
I think of software in four main categories:
1) Model Creation.
These fall into two main categories. CAD and Sculpting. CAD does things with units and measurements, and is good for functional parts. Sculpting creates more "organic" shapes, and is free formed. Both require experience. Sculpting requires talent too.
CAD: OpenSCAD, Sketchup, Solidworks, TinkerCAD, etc.
Sculpt: MeshMixer, Blender, Autodesk, etc.
Googleing "CAD for 3D Printing" and Sculpting for 3D printing" will find a ton of stuff.
The output of model creation is typically a .stl, .obj. or .amf file. CAD program often do step files, but those are hard for 3D printing.
2) Model Manipulation.
These programs take in models from the above and allow you manipulate them. You can merge models together. Fix errors. Edit them by "pushing around meshes" etc. For example, I modeled a nice miner's lamp in OpenSCAD. It looked great. But I wanted it to look "worn, used" so I brought it into one of this and added "dings" and other artifacts to make it look less "pristine".
These are your goto programs if you have models with issues (open meshes, errors) or if you want to merge two together.
Meshmixer and meshlab are my two favorites.
A slicer takes the model from the above and turns it into GCODE which is the step by step instructions the printer needs to follow to create your 3D print layer by layer. These are very low level commands. Each stepper motor movement. Each temperature setting. Each extruder step and retraction. This program really defines the QUALITY of the print. The same model going into different programs (or different settings within that program) will result in very very very different output. Because the slicing problem is so complex, these programs give you a LOT of options to control how they do that. With complexity comes great responsibility. For a beginner, this can be a large learning curve. Features that really differ from one slicer to another is how they handle supports and bridging and infill.
Common ones (there are many more): Slic3r, KISS, CURA, Simplify 3D
The output of these is a .gcode file which the printer can now understand.
4) Printer Control.
The last software topic is printer control. You can put your .gcode file on an SD card, take it to your printer, and use the front menu to print the item. I guess that would be using the firmware and front panel for control. There are other options. I purchased a Rasberry PI, and run OctoPi and OctoPrint on it, and it allows me to access the printer over my internal network and send files from any computer. It gives me a web interface where I can monitor the printer from anywhere in my network (It has a small camera where I can watch the print, and it forms a time-lapse video which can help me see when something goes wrong.). I sends me notifications and photos at key times (even when I am away from my network). I can remotely status and abort prints.
I hope this helps some new folks understand the general software around 3D printing.
Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage or loss.
If you solve your problem, please post the solution for others.