How DWARF Works: Debug Information Entries

What are DIEs? How do we write code to load them from a binary?