Why Must Engineers Learn Programming