Machine code
The actual numbers the processor reads — everything else we call programming is a layer on top of this.
Machine code is instructions encoded as binary numbers, directly executable by a particular processor family. Each instruction consists of an operation code saying what to do and zero or more operands saying what to do it with. On x86 an instruction can be anywhere from one to fifteen bytes long; on ARM and other RISC architectures they have fixed length, which makes decoding simpler and faster.
Assembly language is a direct symbolic equivalent — MOV instead of a number — while compilers translate from higher languages all the way down. That the code is architecture-specific is the entire reason programs must be recompiled for new platforms, and why virtual machines and bytecode were invented.