Question: I can see blocks on pages, their classes and structure and guess where they are added and what their name is - what is the best way to do this?

Is this what path hints is made for? Is there any other way even if it requires familiarity?

Answer: 
you can either edit the template that renders the block and add this at the top of it 

```
echo $this->getName();

```

But this may not always help you.  

You can enable the template path hints, then search in the layout files for something that matches the template name and the block type.
As mentioned above you can enable template hints either through the admin, or it's usually faster to search the codebase. For example:

If the block/container you are trying to find has a unique class or ID then I usually find it quicker just to search for those. For example if I wanted to find out which block is responsible for the nav section (`<div class="sections nav-sections">`) then I would search for `nav-sections` inside `vendor/magento`.

This almost instantly returns `vendor/magento/theme-frontend-blank/Magento_Theme/layout/default.xml` line 20 - meaning the block name is `navigation.sections`. I find this much faster than enabling template hints.