Here is how I see everything about coding :
There are many language for coding, but the one mainly used for video games, on pc AND on console, is currently the C++.
C++ is a complex language based on what we call object.
Objects are composed by many function and variables (I don't recall their correct names in english, I learned programming in french ^^)
Objects can be visualised as a Cube that you can't see through it
Variables can be visualised as mecanisms inside the cube. You can't touch them, you can't modify them, you can't see them.
Function can be visualised as buttons on the cube. Once you press a button, a function, mecanisms begins to move, to modify each other, but the way the programmer wanted to.
That way, variables cannot be touched. Users of the Cube/Object cannot modify what they want to whatever they want. It's like changing the amount of maximum life of a character, the programmer doesn't want the user to change it from 100 to 10000.
So, with the cube, only some variables can be modified and only in certain ways, depending on how the programmer wanted to.
The cube is the object, but it also act as a protection, in the case of the Wii U, I think this protection is called the Kernel. (please tell me if I'm wrong).
Even if the cube has 6 squared-faces, that you can't see through them, there is always some tiny crack. For exemple, the cube is 1 meter-cube sized and there is a crack of 0,3 milimeter on one of the face.
This crack is called an exploit, and it is the role of hacker to find it and exploit it. Even if this crack is 0,3 milimeter long, it's way enough for hacker to find a way to go inside the cube, to modify some variable and to be able, in the case of wii u,
to load some files that couldn't be loaded before, isos, homebrew and such things for example.
There is a trick however, it's called an update.
But updates are double-edged.
Updates won't just fix the crack on the face of the cube. (don't ask me why, it's just against rules of programmation, compilation, and whatever)
Here is what updates does : They completly remove the cube, they create another cube, and then, they replace everything back in the cube.
This way, the cube doesn't have the crack at this place anymore... BUT !!!! It's a whole new cube, there isn't a crack here, but since it's a whole new cube, there might be a new crack on another face of the cube.
This crack could be of 0,04 milimeter, so it will be harder for hacker to find it, but it could also be of 0,8 milimeter, so it will easier for hacker to find it.
So, to resume :
Exploit are some crack (exploit) in a wall (Protection alias Kernel), separating users (you) and mecanisms (variables users aren't supposed to see)