Eigenvectors of a normal operator are an orthogonal basis I am trying to prove the following.

Let $T\colon\mathbb C^n\to\mathbb C^n$ be a normal operator. Then there is a basis for $\mathbb C^n$ consisting of orthogonal eigenvectors of $T$.

I am allowed to use the following fact which I've already established:
$$T\boldsymbol x=\mu\boldsymbol x\iff T^*\boldsymbol x=\overline\mu\boldsymbol x.$$
I've managed to produce a proof using Schur's theorem (i.e., $T$ is unitarily similar to a diagonal matrix), but this feels like too much "heavy machinery" to tackle this proof. Is there another more direct way to go about it?
 A: In my opinion this is a very important proof, so let's get into many details:
First of all $T$ has eigenvectors, since it has eigenvalues, since the polynomial $p(\lambda)=\text{det}(T-\lambda I)$ has roots in $\mathbb{C}$. Now suppose that $Tx=\lambda_1x$ and $Ty=\lambda_2y$ where $\lambda_1\neq\lambda_2$. Since these are distinct, we may assume WLOG that one of them is non-zero, say $\lambda_1\neq0$. Then
$$\langle x,y\rangle=\frac{1}{\lambda_1}\langle\lambda_1 x,y\rangle=\frac{1}{\lambda_1}\langle Tx,y\rangle=\frac{1}{\lambda_1}\langle x,T^*y\rangle=\frac{1}{\lambda_1}\langle x,\bar{\lambda_2}y\rangle=\frac{\lambda_2}{\lambda_1}\langle x,y\rangle$$
so if $\langle x,y\rangle\neq0$ we have that $\lambda_1=\lambda_2$, a contradiction. We conclude that eigenvectors corresponding to distinct eigenvalues are orthogonal.
Let $\lambda_1,\dots,\lambda_k$ denote the distinct eigenvalues of $T$ (note that $k\leq n$, obviously, since $p(\lambda)$ has at most $n$ distinct roots). We set $$M_i:=\{x\in\mathbb{C}^n: Tx=\lambda_ix\}$$
for the eigenspace corresponding to $\lambda_i$. These are orthogonal subspaces of $\mathbb{C}^n$, as we explained. We consider their direct sum $M:=\bigoplus_{i=1}^kM_i$ and this is now a Hilbert subspace of $\mathbb{C}^n$.
We claim that $M=\mathbb{C}^n$. Since $T$ is normal, we have that $T(M)\subset M$ and that $T(M^\bot)\subset M^\bot$. I leave this as an exercise; can you see why this is true?
Consider the operator $S:=T\vert_{M^\bot}:M^\bot\to M^{\bot}$. This operator is a well-defined, bounded operator that has no eigenvalues! Indeed, if $Sx=\lambda x$, then $Tx=\lambda x$ (by the definition of $S$) so $\lambda$ is an eigenvalue of $T$ and thus $x\in M$. But this is a contradiction, since any bounded operator on a non-zero (finite dimensional, but in general as well. You only need to know the finite dimensional case here) Hilbert space has eigenvalues!
Now simply take an orthonormal basis for each subspace $M_i$, say $E_i$ and set $E=\bigcup_{i=1}^kE_i$. Since $\mathbb{C}^n=M=\bigoplus_{i=1}^kM_i$, we conclude that $E$ is an orthonormal basis of $\mathbb{C}^n$. Since any element of $E$ belongs to some $E_i$ which is a subset of $M_i$, the elements of $E$ are eigenvectors of $T$.
