Learning C the Hard Way