<p>A 3D printer needs to be homed (homing) before the print starts.</p>
<ul>
<li>What is homing?</li>
<li>What is the purpose of homing?</li>
<li>Is it necessary?</li>
</ul>

What is homing?
From the
tag wiki
homing
we can read:
The process of determining the location of a 3D printer nozzle in
three dimension using a reference point (home location) is referred to
as "homing". Homing should occur before every print and involves
bringing the X, Y and Z-Axis motors to pre-defined limit locations
(usually these are endstops). Pre-recorded homing data offset values
determine the position of the build plate origin with respect to the
endstop locations.
What is the purpose of homing?
So, homing is defining the printer coordinate system location with respect to a reference location we call "home". Why? The controller board or steppers have no memory for storing their position and could have been manually moved. Once the axes have "seen" there reference location, the printer will remember to refer all movements in respect to this point (this may include offset values to get to the origin of the printer (see
How to center my prints on the build platform? (Re-calibrate homing offset)
). Note, if a problem occurs where e.g. the nozzle hits the bed or print object, the nozzle may be out of sync with the reference point. Such an anomaly is e.g. layer shifting which occurs on open-loop stepper movement (servo steppers have feedback to prevent this from happening, but these are more expensive). The purpose of homing is to set a reference so that your sliced objects can be printed at the correct location within the printer print volume. If correctly configured, and no problems like layer shifting occur, the benefit is that proper homing prevent the machine to print within the limits of the printer.
Is it necessary?
Strictly speaking, no, it is not necessary. But if you do not automatically set a reference for each axis, you would need to manually provide a position to start from. This can work just as well, but the use of end stops automate the procedure so that it is very easy for the printer operator. Some (of the cheaper) CNC machines do not have end stops, the operator needs to be aware to position the tool head of the CNC machine at the proper starting position.