Learning C, the hard way