New to Home Assistant - a few questions

I installed HA on a RPi 4 and so far integrated some zwave devices and everything is working great, Thank you.
I have a few questions. Being a software developer, I am trying to understand not just how to click where but how all this stuff is put together. In other words, I am trying to understand what the entities, devices, etc are, how they are hooked up etc. More specifically, Lets say I have a switch. Should the switch be named with a specific domain [domain].??? Is that how HA determines the category or entity type? How do I know what actions are valid for a given entity of a specific domain? In trying to setup my first automation I saw in YAML that the action is turn_on. Where can I find the reference docs?
It seems the “automation” becomes another entity. so what other entity types are possible?
What exactly is an integration? DO I interpret it as middleware between HA and devices? If it is a ZWAVE switch, how does HA know to invoke the ZWAVE radio when i say turn_on my switch.frontdoor.light?

I am trying to see if there a book that takes a developer through essential concepts to get from zero to a HA developer.

May be too many newbie questions, but thanks again for the HA and community. I hope to contribute someday, but trying to find the path up that that hill to see the bigger pictyre

developers.home-assistant.io and this Glossary - Home Assistant