We give a short survey of several techniques to construct codes on GF(q) that approach the capacity of the q-ary symmetric channel. The q-ary symmetric channel represents the next level of difficulty after the binary erasure channel (BEC). Since the channel is more complex than the BEC, one may hope that codes and decoding algorithms that approach the capacity of this channel for large q may be modified to yield capacity-approaching codes for smaller values of q as well.