What is an STL file?
So, what is an STL file? STL stands for stereolithography, but is also known as standard normal language. An STL file is one of the most important neutral formats when it comes to 3D printing. It is a simple, portable format used by Computer Aided Design (CAD) systems to calculate solid geometry into 3D printing parts. 
In all my years working with CAD data and translating files I have learned there are numerous types of CAD modeling representation therefore CAD files cannot just be translated to any CAD format. STL file format specifies both ASCII and binary representations storing vector information. Binary files are more commonly used because file compression size is better.
The smooth surface on the left is approximated by high tessellations. The figure on the right uses large triangles, resulting in a rough model. The figure in the center uses smaller triangles and reaches a smoother approximation.
Why use STL files for 3D printing?
An STL file provides only the surface geometry of a 3D object forming the object with triangular mesh. These triangles share edges and vertices with other neighboring triangles to complete a surface. Vertices are angular points of a polygon. The resolution of an STL file affects the quality of the 3D-printed parts. If the file resolution is too high, the triangle may be prone to overlap. If the resolution is too low, the model may have gaps and will not be able to print.
STL files have been widely used in the 3D printing world, however some data such as part color or part attribute information cannot be stored. And, with the rapidly growing technology for 3D printing STL format is becoming less relevant.
Meaning new 3D printing technology, which may read OBJ or 3MF format, may be able to read and print multi color parts. OBJ and 3MF file format can store more information than STL.
How does an STL file get printed?
First, the STL file needs to be opened in a slicer program to convert the 3D model design into a printing instructions. What this program does is chop the STL file into many layers of flat horizontal layers based on the thickness layer chosen. Image each layer is like a cutting plane of an object. This determines how the filament is printed layer-by-later.
The slicer program also calculates how much material your 3D printer will need to extrude and estimate how long the printing will take. This data is then compiled into a Gcode file, which is the format the 3D Printer will be able to read. In order for you to obtain the best quality check your slicer settings as this will impact how your print will turn out.
When modeling your 3D object you must look out for overlapping tessellations, and gaps or holes, and you will want to make sure the direction of the vector points outward. The outward side should be the “normal” side. If the normal side is inadvertently flipped the 3D printer will get confused thinking the entire inside of your model needs to be filled. To learn more about avoiding design complications follow our CAD Modeling Errors You Need to Fix Before 3D Printing guide.