Is it fair for programmers to work long hours of overtime and not get
paid for the work?
AFAIK, In the US, programmers generally fall under the exempt
classification of the Fair Labor Standards Act.
Exempt employees often aren't paid for overtime, because it is not
required by the law. When they are paid for overtime, it often is
because of an employment contract negotiated by a labor union.