Channel coding, initiated by Shannon's 1948 paper, aimed to achieve practical coding schemes reaching the Shannon limit on channels like the AWGN channel. This proved difficult, but the past decade saw success with turbo and LDPC codes. This paper recounts this journey, focusing on the AWGN channel. Section II reviews the Shannon limit definitions. Section III examines algebraic coding, its achievements, and limitations in reaching the Shannon limit. Section IV explores the "probabilistic coding" approach, starting with Elias' convolutional codes, and encompassing advancements like concatenated codes and trellis decoding, leading to modern capacity-approaching codes. Section V discusses codes for bandwidth-limited channels (lattice codes and trellis-coded modulation). Finally, Section VI details the development of capacity-approaching codes, primarily turbo and LDPC codes.