Question: "I am trying to understand the definition of Zariski tangent space, let's try an example that could be in a number theory course."
You find an "elementary" discussion of the tangent and cotangent space at this thread:
$aX + bY$ is an element of $M^2$ if and only if the line $aX + bY = 0$ is tangent to $W$ at $(0, 0)$
Example: A regular curve: If $C \subseteq \mathbb{A}^2_k$ is a plane regular curve over a algebraically closed field $k$ of characteristic zero, and if $p \in C$ is a point with maximal ideal $\mathfrak{m}_p:=(x-a,y-b)$ it follows the line
$$l(x,y):=u(x-a)+v(y-b)$$
is tangent to $C$ at $p$ iff $l(x,y) \in \mathfrak{m}_p^2$. A generator for the tangent line to $C$ at $p$ is the line defined by the polynomial
$$l_p(x,y):=F_x(p)(x-a)+F_y(p)(y-b)$$
where $F_x(p)$ is the partial derivative of $F(x,y)$ evaluated at $p$ etc. The curve $C$ is defined by the polynomial $F(x,y)$. Hence the line $l(x,y)$ is in $\mathfrak{m}_p^2$ iff $l(x,y)$ is a scalar mutiple of $l_p(x,y)$.
Example: Algebraic number theory: In your case of the ring of integers $\mathcal{O}:=\mathbb{Z}[i]$ in a number field $K:=\mathbb{Q}(i)$ you must check that $\mathfrak{m}_x:=(a+bi) \subseteq \mathcal{O}$ generate a maximal ideal and calculate the two $\kappa(x)$-vector spaces
$$Hom_{\kappa(x)}(\mathfrak{m}_x/\mathfrak{m}_x^2, \kappa(x)), \mathfrak{m}_x/\mathfrak{m}_x^2.$$
Note that if $\mathfrak{m}_x$ is prime ideal, it is maximal and there is a canonical isomorphism
$$\mathfrak{p}_x/\mathfrak{p}_x^2 \cong \mathfrak{m}_x/\mathfrak{m}_x^2$$
where $\mathfrak{p}_x:= \mathfrak{m}_x(\mathcal{O}_{\mathfrak{m}_x})$.
Note: In algebraic number theory, the "cotangent module" (the module of Kahler differentials) $\Omega^1:=\Omega^1_{\mathcal{O}/\mathbb{Z}}$ gives rise to the ramified primes. The different $\Delta_{L/K}$ is the annihilator ideal of the cotangent module $\Omega^1_{\mathcal{O}_L/\mathcal{O}_K}$, and the discriminant $\delta_{L/K}:=N_{L/K}(\Delta_{K/L})$ has the property that a prime ideal $\mathfrak{p} \subseteq \mathcal{O}_K$ is ramified iff $\mathfrak{p}\in Z:=V(\delta_{L/K})$. Hence the complement $$U:=Spec(\mathcal{O}_K) - V(\delta_{L/K})$$
is the open subscheme of unramified primes.
The canonical map
$$\pi: C:=Spec(\mathcal{O}) \rightarrow S:=Spec(\mathbb{Z})$$
is finite, and the closed subscheme $Z\subseteq S$ with open complement $U:=S-Z$ has the property that the induced map
$$\pi_U:\pi^{-1}(U) \rightarrow U$$
is etale. This is one of the usages of the cotangent module in algebraic number theory. The cotangent module $\Omega^1$ contains information on which primes that ramify.
The tangent module
$$T:=(\Omega^1)^*$$
is the dual of the cotangent module, and when $\Omega^1$ is locally free you do not lose information when passing to $T$ since $T^*\cong (\Omega^1)^{**} \cong \Omega^1$. When not locally free, you lose information.