Context, Fields and Attributes are the most fundamental concepts in Geometry Nodes.
The documentation on fields is worth a read. But here is a quick, very simplified and maybe not 100% correct run down:
There are two types of nodes: Data Flow and Field nodes.
We can generalize, that Data Flow nodes have Geometry Inputs. All others can be considered Field nodes:

A group of Field nodes can be thought of like a function in programming:
they describe functionality, they take inputs and they can be reused in many places.

Field nodes take their input data from the Data Flow nodes they are connected to (!). So, in the node tree, the data we pass to our function (group of Field nodes) does not come from the left, but from the right! The Data Flow nodes defines the Context in which the Field nodes are evaluated in:

This means, we can reuse our Field nodes and they will output different data, depending on the Data Flow nodes they are connected to (the Context):

Here, we save an Attribute on the data. We access this data in the Field nodes. Only if the attribute is available in the context, the data will be returned:

