The process starts by designing a 3 dimensional object. Solidworks is the standard($$$$$$$$) but you can use a multitude of competitors. If you're mechanically minded, 3d design is only a matter of learning how to get the buttons to do what you need to get your idea into the model. At this point we are outside the realm of physical limitation. You can design whatever you can conceive. Size, strength and manufacture are not an issue. This is just a 3d representation of something. The programs can be very robust. You can make change materials, nuts, bolts, assemble different parts, animate how those parts will interact with each other and move, stress test simulations etc. If you know which manufacturing process you're going to be using it can be helpful to incorporate that into your design but the same model I make for a 3d printer can be used by a computerized cnc mill. I could also use the model to automatically create drawings for a machinist to hand turn, or a model builder to cut in styrofoam. For 3d printing you generally want a contiguous shell, meaning all your faces (sides) line up, no holes randomly in a face.
Once you have your 3d model you'll need to export it into 3d printer software language. Most use .stls aka stereolithographs. Wire frame objects which can be as detailed as you want. Increase the detail (faces), and our next step will take longer. A flat surface will only have on face, but something like a curve is actually broken up into many small sections. Like early, 3d video games.
We take that stl into a 3d print software, slic3r is popular, and we're going to export it into printer language (gcode), which breaks down to a bunch of motor speeds and positions. Be at this x,y and z extruding this much plastic.
For a 3d printer it's going to print in layers from the bottom up, or top down for certain types not using plastic filament for its medium. Either way that stl is going to get sliced from top to bottom, a lot like an mri machine. How many slices is going to be dependent on layer height. How thick do we want each layer, like slicing a deli ham. Thinner will be more accurate one we make the part but increase print time. The printer will have to make more passes over the same x and y as the rate at which z increases is decreased. Also increased processing time to export our gcode.
Slic3r is also going to have my printer settings. What dimensions are my printers x, y and z axises. How much filament do I want to be extruding. How thick is my filament? At what temperature do I want to extrude (melt and squirt out my filament), how hot do I want to make the print bed(what were squirting on)? Should the extruder motor pull filament back crossing perimeters so I don't drip? There are a lot of options.
To answer fox's question, objects have interior space. Hollow objects are not as strong as solid objects. The trick is to strike a balance between filling that interior space while saving weight and material. How strong does the part have to be? How light? For 3d printing, fill as its called, will also increase print times. More to extrude. You can fill interior space in an infinite amount of ways from the most basic solid (fill it all with material) to my preferred honeycomb. When using a patterned infill, another consideration is density, how small are the honeycombs. You can do triangles, lines, little balls. Whatever. Some are more efficient than others. I prefer honeycomb because I find it to be the strong and simple. Nature is pretty good like that.
See http://manual.slic3r.org/expert-mode/infill
If you didn't work it into your 3d model, at this point you can add automatically generated support material, like scaffolding, which can be removed after the print is completed. You can also add a raft if you don't want the bottom of the object to be in contact with the print bed.