What exactly is sheafification? I have recently learned about the very BASICS of sheaves, but I was wondering is there an easier definition for sheafification? I could not find anywhere an easier definition for sheafification. I kind of compare it to local rings, where in local rings, you collect the local data at a point for a variety or an algebraic set where some function is defined on that regular set. Am I heading in the right direction? If not, what is the rigorous definition of sheafification and what is some intuition one could use to understand it?
I would much more appreciate the intuition and a clear definition, rather than rigour.
 A: Sheafification is the left adjoint of the inclusion $i: Sh(X) \rightarrow Psh(X)$.
That's the important part anyway, the nitty gritty details of the construction are not so important (constructing the Étale space and whatnot). You should think of the sheafification $\mathcal F_+$ of $\mathcal F$ as identifying sections which are locally equal and adding new "formal" sections which are glued together by old ones in $\mathcal F$ in order to satisfy the sheaf conditions (gluing of sections exists and is unique).
For example: If you have a morphism $\phi:\mathcal F \rightarrow \mathcal G$ where $\mathcal F$ is a presheaf and $\mathcal G$ is a sheaf  and two sections $s,s' \in \mathcal F (U)$ which are locally equal we have that $\phi(s),\phi(s')$ are locally equal (since $\phi$ is compatible with restriction maps) and hence equal because $\mathcal G$ is a sheaf.
Thus it doesn't matter if we identify sections $s$ and $s'$ which are locally equal in $\mathcal F$ if all we care about are maps of $\mathcal F$ into sheaves.
Similarly for formal glued sections, if we have a morphism $\phi:\mathcal F \rightarrow \mathcal G$ then $\phi$ extends uniquely to these formal sections $s$ of $\mathcal F$ over $U$ by simply considering $\{s\mid_{U_i}\}_i$ which are actual sections of $\mathcal F(U_i)$, applying $\phi$ to get $\{\phi(s\mid_{U_i}) \}_i$ which are sections in $ \mathcal G(U_i)$ and then gluing these $\phi(s\mid_{U_i})$ to get a section $s'$ in $\mathcal G(U)$ and then set $\phi(s) = s'$.
We thus see that every morphism $\mathcal F \rightarrow \mathcal G$ gives us a unique morphism $\mathcal F_+ \rightarrow G$. And every morphism $\psi:\mathcal F _+ \rightarrow \mathcal G$ comes from the morphism given by precomposing $\psi$ with the apparent map $\mathcal F \rightarrow \mathcal F_+$.
Anyway, this is enough to say that $Hom(\mathcal F,\mathcal G) = Hom(\mathcal F_+,\mathcal G)$ for sheaves $\mathcal G$ and thus that $(-)_+$ is left adjoint to $i:Sh(X) \rightarrow Psh(X)$.
If this was too handwavy I'm sorry! I'll try and elaborate if you feel like it's necessary.
A: Question: "If not, what is the rigorous definition of sheafification and what is some intuition one could use to understand it?"
Answer: If $X$ is a scheme and $\mathcal{E},\mathcal{F}$ are quasi coherent $\mathcal{O}:=\mathcal{O}_X$-modules, with $\phi: \mathcal{E}\rightarrow \mathcal{F}$ a map of $\mathcal{O}$-modules you want to form kernels, images, tensor products exterior products etc of the sheaves $\mathcal{E},\mathcal{F}$ and the map $\phi$. In the case of the tensor product $\otimes$ you define the presheaf
$$ S(U):= \mathcal{E}(U)\otimes_{\mathcal{O}(U)} \mathcal{F}(U).$$
The presheaf $S$ is not a sheaf, and the associated sheaf $S^+ := \mathcal{E}\otimes \mathcal{F}$ (see Hartshorne, Section II.5) is a sheaf with the property that for any open affine set $V:=Spec(A)$ with $\mathcal{E}(V):=E, \mathcal{F}(V):=F$ with $E,F$ left $A$-modules, it follows
there is an isomorphism of $A$-modules
$$ S^+(V) \cong E\otimes_A F$$
Hence the sheaf $S^+$ has the correct behaviour and generalize the notion of tensor product of modules. If $\mathcal{E}, \mathcal{F}$ are locally trivial, it follows the tensor product, exterior product, symmetric product etc is again locally trivial. You get compatibility formulas valid for modules: If $\mathcal{E}$ is locally trivial it follows
$$ Hom_{\mathcal{O}}(\mathcal{F}\otimes \mathcal{E}, \mathcal{G}) \cong Hom_{\mathcal{O}}( \mathcal{F}, Hom_{\mathcal{O}}(\mathcal{E}, \mathcal{G})).$$
As you can see this is similar to what happens for $A$-modules. The sheafification process seems "unintuitive" but it has all the correct functorial properties.
Example 1. If you want to define a morphism of sheaves
$$f^+: \mathcal{E}\otimes \mathcal{F} \rightarrow \mathcal{G}$$
where $\mathcal{G}$ is a sheaf, by the universal property of the $S^+$-construction, it is enough to define a morphism of presheaves
$$f: S \rightarrow \mathcal{G}.$$
If $f$ exists, by the universal property you get a unique morphism $f^+: S^+ \rightarrow \mathcal{G}$. And to define a morphism $f$ you can do this using basic properties of the tensor product.
Example 2. As an example you should verify that there is an isomorphism of sheaves $\mathcal{O}(m)\otimes \mathcal{O}(n) \cong \mathcal{O}(m+n)$ on $C:=\mathbb{P}^1$. Let $C:=Proj(k[x_0,x_1])$ and let $U_i:=D(x_i)$. Let $t:=\frac{x_1}{x_0}, s:=\frac{1}{t}$. Let $L_m:=\mathcal{O}(m)$ for an integer  $m$. Let $S(U):=L_m(U)\otimes_{\mathcal{O}_C(U)}L_n(U)$. Define
$$ f_0: S(U_0):=k[t]x_0^m\otimes k[t]x_0^n \rightarrow k[t]x_0^{m+n}$$
by
$$f_0(f(t)x_0^m\otimes g(t)x_0^n):= fgx_0^{m+n}.$$
Do a similar construction for $U_1$ to get a map
$$f_1: S(U_1) \rightarrow k[s]x_1^{m+n}.$$
It follows $f_i$ glue to induce a canonical map
$$f: S^+:= \mathcal{O}(m)\otimes \mathcal{O}(n) \rightarrow \mathcal{O}(m+n)$$
and since $f_0,f_1$ are isomorphisms, it follows $f$ is an isomorphism. Try to generalize to projective space.
