Essential Coding Theory