These are the languages in which one writes code to describe hardware. I say this instead of calling them programming languages to try and emphasize the distinction between describing hardware and writing code that executes on hardware.
Oftentimes these languages have functionality both for describing hardware, and for simulating or verifying designs. At early stages of learning it is important to understand the intended uses for particular language features. It can be easy to do things that would make sense in software, and are viable for verification, but that do not translate to hardware.