The linked book is pretty good with lots of nice explanations and good examples.
For a short, blog-post-like intro to the subject check out this 9-page PDF: https://minireference.com/static/excerpts/error_correcting_c...
Read the linked book for the full details.
If you plan to read the book by Guruswami, Rudra1, and Sudan you should consult their notation:
For most types of symbols you can figure out what they mean intuitively, but these two are really important, and not obvious at all:
(n,k,d) ≝ code with block length n, dimension k, distance d
[n,k,d] ≝ a linear code with block length n, dimension k, distance d
I read the table of contents because I was curious what they considered "essential" to compare it to my own opinion. I think it's an interesting submission.
Or at least have heard about it on a pop-sci or Wikipedia level.
Associated lecture series: