Befunge
Esoteric programming languages are meant to be a challenge to write in and this one is my favorite. Befunge is unique in the way the code is laid in a multidimensional grid instead of just a list of instructions. Each character in the source is interpreted as a single instruction that gets executed before moving the "program counter" onto the next instruction. Each one of these instructions are represented as single ascii characters and operate on a stack of cells much like in Forth. Here follows an exaple of a hello world program which can be ran on a appropiate interpreter such as cfunge (installed on this machine) or https://www.quirkster.com/iano/js/befunge.html.
<v <"Hello world!" , >:| @
With the help of the step button you can follow the path of the code as each character of the string gets pushed into the stack and then a bit of logic prints them until the stack becomes empty (no underflow happens but instead the number 0 gets popped.) Here is a trickier example of a quine:
:0g:48*-!#@_,1+