Learning C the HARDWAY