c language learning notes