Recent channel measurement campaigns revealed that mm-wave channels are cluster-based with an average of 2-3 clusters. As a result, we can represent the channel as a sparse matrix with a few non-zero components that represent beams (paths) between the transmitter and the receiver. With this observation, we propose solving the beam discovery problem utilizing channel/source codes. First, we think of the problem of locating beams in the channel matrix to be analogous to locating errors in transmitted codewords of linear block codes. We show that the number of channel measurements needed for channel estimation is equal the number of parity check bits of a linear block code. Alternatively, we pose the beam discovery problem as a source compression problem. There, we envisage mm-wave channels to be sparse sequences that can be compressed to a much shorter version where the latter can represent the channel measurements. Finally, we show that a simple and energy-efficient transceiver architecture is sufficient for the implementation of the proposed ideas.