For hardware devices, refer to Arduino Hardware.
Arduino and Arduino-compatible devices can be programmed using a few different languages. The smaller devices like a Nano and an UNO can only be programmed using the C++ option, but the larger ones that use a chip like the SAMD51 can be programmed using C++ or MicroPython/CircuitPython.
If using C++, you can use the Arduino IDE to program the boards. With the Pythons, you don't need to use the Arduino IDE.