In this paper, line codes used in data communication are investigated. The need for the line codes is emphasized, classification of line codes is presented, coding techniques of widely used line codes are explained with their advantages and disadvantages and criteria for chosing a line code are given.