Software useful for designing books -- calibre (includes a code editor),
Sigil, or this sticky:
EPUB tools and reading software.
EPub Tutorial <-- helps to know how the code makes the book
Generally it is assumed one knows html, css, etc. Note that InDesign doesn't appear on the list.