Huffman coding is probably one of the more interesting ones, not only because it is so ridiculously useful, but because of the wide taxonomy of implementations.  It is quite malleable, able to be morphed and optimized to the particular application: JPEG, PNG, HPACK, Gzip to name a few popular usages and implementations.<p>What is really enlightening though is implementing a basic one, because it is so simple.  The core of it involves popping two graph nodes from a heap and pushing a new one.  I did this in school, and was impressed by it, but became far more appreciative when I tried to do the JPEG way.  It doesn&#x27;t even provide a table, just a histogram!<p>It also acted as the basis for the successor of arithmetic coding, which is pretty much in every modern video codec.  Can you imagine a world that is still analog because we couldn&#x27;t figure out how to transmit digit video or images or audio?  Huffman is a key link in the chain between the past and present.