There’s a lot of documentation on Themes in the docs section, try Stepping into Templates to start.
The main thing to realize is that a theme is basically a style sheet (css) and an index.php file that directs the building of the theme.
If you download a theme and look at it, it might seem confusing at first because of the header.php and footer.php type files, but if you look in the index.php you’ll see that it contains a bunch of php blocks that say something like get_header. These insert whatever is contained in header.php, for example.
I’m probably not explaining it in the best way-but I will say that I only started a couple days ago and while it was confusing at first, it makes total sense 2 days later.
Additional third party resources:
https://www.urbangiraffe.com/2005/04/12/themeguide1/
https://www.chrisjdavis.org/2005/05/26/secrets-of-wp-theming-part-1/
https://max.limpag.com/2006/04/09/wordpress-theme-guide-for-nongeeks/
https://theundersigned.net/2006/05/from-xhtmlcss-to-wordpress/