[proofplan]
We prove four statements about the character $\chi_V = \operatorname{tr} \circ \rho_V$ of a complex representation, taking each in turn. (1) follows from $\rho_V(1) = \mathrm{id}_V$ and $\operatorname{tr}(\mathrm{id}_V) = \dim V$. (2) is the conjugation-invariance of the trace applied to the matrix identity $\rho_V(hgh^{-1}) = \rho_V(h)\rho_V(g)\rho_V(h)^{-1}$. (3) uses that $\rho_V(g)$ is diagonalizable with roots-of-unity eigenvalues (because $g$ has finite order, so $\rho_V(g)$ satisfies $X^{|g|} - 1 = 0$, a polynomial with distinct roots over $\mathbb{C}$); inverting eigenvalues coincides with conjugating them since they lie on the unit circle. (4) is the block-diagonal form of $\rho_{V \oplus W}(g)$ in a basis adapted to the direct-sum decomposition.
[/proofplan]
[step:Compute the dimension formula $\chi_V(1) = \dim V$]
The identity $1 \in G$ acts on $V$ as the identity linear map: $\rho_V$ is a group homomorphism, so $\rho_V(1) = \mathrm{id}_V \in \operatorname{GL}(V)$. Choose any basis $\mathcal{B} = (v_1, \ldots, v_n)$ of $V$, where $n = \dim_{\mathbb{C}} V$. The matrix of $\mathrm{id}_V$ in $\mathcal{B}$ is the $n \times n$ identity matrix $I_n$, whose trace equals $n$. Hence
\begin{align*}
\chi_V(1) = \operatorname{tr}(\rho_V(1)) = \operatorname{tr}(\mathrm{id}_V) = n = \dim_{\mathbb{C}} V.
\end{align*}
[/step]
[step:Show $\chi_V$ is a class function via conjugation-invariance of the trace]
Fix $g, h \in G$. Since $\rho_V : G \to \operatorname{GL}(V)$ is a group homomorphism,
\begin{align*}
\rho_V(hgh^{-1}) = \rho_V(h)\, \rho_V(g)\, \rho_V(h)^{-1}.
\end{align*}
Pick a basis $\mathcal{B}$ of $V$ and let $R_g, R_h \in \operatorname{GL}_n(\mathbb{C})$ denote the matrices of $\rho_V(g), \rho_V(h)$ in $\mathcal{B}$. Then $\rho_V(hgh^{-1})$ has matrix $R_h R_g R_h^{-1}$. The trace satisfies $\operatorname{tr}(AB) = \operatorname{tr}(BA)$ for square matrices $A, B$ of compatible sizes; applying this to $A = R_h$ and $B = R_g R_h^{-1}$ gives
\begin{align*}
\operatorname{tr}(R_h R_g R_h^{-1}) = \operatorname{tr}(R_g R_h^{-1} R_h) = \operatorname{tr}(R_g).
\end{align*}
Hence
\begin{align*}
\chi_V(hgh^{-1}) = \operatorname{tr}(R_h R_g R_h^{-1}) = \operatorname{tr}(R_g) = \chi_V(g).
\end{align*}
Since $g$ and $hgh^{-1}$ range over the same conjugacy class as $h$ varies, $\chi_V$ takes a single value on each conjugacy class of $G$, i.e. it is a class function.
[guided]
We want to show $\chi_V(hgh^{-1}) = \chi_V(g)$ for every $g, h \in G$. The character is $\chi_V = \operatorname{tr} \circ \rho_V$, so we are asking why the trace of $\rho_V(hgh^{-1})$ equals the trace of $\rho_V(g)$.
The first ingredient is that $\rho_V$ is a homomorphism: $\rho_V(hgh^{-1}) = \rho_V(h)\rho_V(g)\rho_V(h)^{-1}$. So the question reduces to: why is $\operatorname{tr}(ABA^{-1}) = \operatorname{tr}(B)$ for $A = \rho_V(h)$, $B = \rho_V(g)$?
This is the **conjugation-invariance of the trace** — a basic linear-algebra identity following from the cyclic property $\operatorname{tr}(XY) = \operatorname{tr}(YX)$. Applying cyclicity to $X = A$, $Y = BA^{-1}$:
\begin{align*}
\operatorname{tr}(A \cdot BA^{-1}) = \operatorname{tr}(BA^{-1} \cdot A) = \operatorname{tr}(B).
\end{align*}
Translating back: $\operatorname{tr}(\rho_V(h)\rho_V(g)\rho_V(h)^{-1}) = \operatorname{tr}(\rho_V(g))$, i.e. $\chi_V(hgh^{-1}) = \chi_V(g)$.
The conclusion that $\chi_V$ is a **class function** is now a relabelling: the conjugacy class of $g$ is exactly $\{hgh^{-1} : h \in G\}$, and we have just shown $\chi_V$ takes the same value on every element of this set. So $\chi_V$ is constant on each conjugacy class.
[/guided]
[/step]
[step:Diagonalize $\rho_V(g)$ using finiteness of the order]
Fix $g \in G$ and let $m = |g|$ be the order of $g$ in $G$ (which is finite because $G$ is finite). Since $g^m = 1$, applying the homomorphism $\rho_V$ gives $\rho_V(g)^m = \rho_V(g^m) = \rho_V(1) = \mathrm{id}_V$. Thus $\rho_V(g)$ satisfies the polynomial
\begin{align*}
X^m - 1 \in \mathbb{C}[X].
\end{align*}
Over $\mathbb{C}$, the polynomial $X^m - 1$ has $m$ distinct roots (the $m$-th roots of unity); in particular it is **separable** (has no repeated roots). The minimal polynomial of $\rho_V(g)$ divides $X^m - 1$, so it too has only simple roots. By the standard criterion for diagonalizability (a matrix is diagonalizable over $\mathbb{C}$ if and only if its minimal polynomial has only simple roots), $\rho_V(g)$ is diagonalizable over $\mathbb{C}$.
Let $\lambda_1, \ldots, \lambda_n$ be the eigenvalues of $\rho_V(g)$, listed with multiplicity ($n = \dim_{\mathbb{C}} V$). Each $\lambda_i$ is a root of $X^m - 1$, hence an $m$-th root of unity. In particular $|\lambda_i| = 1$ for every $i$.
[guided]
Why is $\rho_V(g)$ diagonalizable? The clean route is via the minimal polynomial. We need a polynomial that $\rho_V(g)$ satisfies and whose roots are all simple.
The order $m = |g|$ is finite (since $G$ is finite), so $g^m = 1$ in $G$. Applying $\rho_V$ — which is a group homomorphism — gives $\rho_V(g)^m = \rho_V(1) = \mathrm{id}_V$. In other words, $\rho_V(g)$ is annihilated by $X^m - 1$.
The polynomial $X^m - 1 \in \mathbb{C}[X]$ has $m$ **distinct** roots: the $m$-th roots of unity $1, \omega, \omega^2, \ldots, \omega^{m-1}$ where $\omega = e^{2\pi i/m}$. So $X^m - 1$ is separable.
The minimal polynomial of $\rho_V(g)$ divides any polynomial it satisfies, hence divides $X^m - 1$. A divisor of a separable polynomial is separable. So the minimal polynomial of $\rho_V(g)$ has only simple roots, which over $\mathbb{C}$ is the diagonalizability criterion.
The eigenvalues of $\rho_V(g)$ are roots of the minimal polynomial, hence roots of $X^m - 1$ — that is, $m$-th roots of unity. In particular every eigenvalue lies on the unit circle: $|\lambda_i| = 1$.
[/guided]
[/step]
[step:Identify $\chi_V(g^{-1})$ with the conjugate of $\chi_V(g)$]
Working in a basis where $\rho_V(g)$ is diagonal with eigenvalues $\lambda_1, \ldots, \lambda_n$, the matrix of $\rho_V(g^{-1}) = \rho_V(g)^{-1}$ in the same basis is the diagonal matrix with entries $\lambda_1^{-1}, \ldots, \lambda_n^{-1}$. Hence
\begin{align*}
\chi_V(g^{-1}) = \sum_{i=1}^n \lambda_i^{-1}.
\end{align*}
For each $i$, since $|\lambda_i| = 1$ we have $\lambda_i \overline{\lambda_i} = |\lambda_i|^2 = 1$, so $\lambda_i^{-1} = \overline{\lambda_i}$. Substituting,
\begin{align*}
\chi_V(g^{-1}) = \sum_{i=1}^n \overline{\lambda_i} = \overline{\sum_{i=1}^n \lambda_i} = \overline{\chi_V(g)},
\end{align*}
using that complex conjugation is additive ($\overline{a + b} = \bar{a} + \bar{b}$).
[guided]
We have just shown that $\rho_V(g)$ has eigenvalues $\lambda_1, \ldots, \lambda_n$ on the unit circle, with $|\lambda_i| = 1$.
In the same basis (the one diagonalizing $\rho_V(g)$), the inverse $\rho_V(g)^{-1}$ is also diagonal with entries $\lambda_i^{-1}$. So
\begin{align*}
\chi_V(g^{-1}) = \operatorname{tr}(\rho_V(g)^{-1}) = \sum_{i=1}^n \lambda_i^{-1}.
\end{align*}
The key arithmetic fact: for $z \in \mathbb{C}$ with $|z| = 1$, $z^{-1} = \bar{z}$. Indeed $z\bar{z} = |z|^2 = 1$, so $\bar{z} = z^{-1}$. Applying this with $z = \lambda_i$:
\begin{align*}
\sum_{i=1}^n \lambda_i^{-1} = \sum_{i=1}^n \overline{\lambda_i} = \overline{\sum_{i=1}^n \lambda_i} = \overline{\chi_V(g)},
\end{align*}
where the middle equality is additivity of conjugation.
[/guided]
[/step]
[step:Show additivity of characters via block-diagonal matrices]
Choose bases $\mathcal{B}_V = (v_1, \ldots, v_p)$ of $V$ and $\mathcal{B}_W = (w_1, \ldots, w_q)$ of $W$, where $p = \dim V$ and $q = \dim W$. The concatenation
\begin{align*}
\mathcal{B} = (v_1, \ldots, v_p, w_1, \ldots, w_q)
\end{align*}
is a basis of $V \oplus W$, of size $p + q = \dim(V \oplus W)$.
For any $g \in G$, the operator $\rho_{V \oplus W}(g) : V \oplus W \to V \oplus W$ acts componentwise: $\rho_{V \oplus W}(g)(v + w) = \rho_V(g)v + \rho_W(g)w$ for $v \in V$, $w \in W$ (this is the definition of the direct-sum representation). Each summand $V$ and $W$ is $\rho_{V \oplus W}(g)$-invariant. In the basis $\mathcal{B}$, the matrix of $\rho_{V \oplus W}(g)$ has block form
\begin{align*}
[\rho_{V \oplus W}(g)]_{\mathcal{B}} = \begin{pmatrix} [\rho_V(g)]_{\mathcal{B}_V} & 0 \\ 0 & [\rho_W(g)]_{\mathcal{B}_W} \end{pmatrix},
\end{align*}
where the off-diagonal blocks are zero because $\rho_V(g)$ sends $V$ into $V$ (with no $W$-component) and similarly for $\rho_W(g)$.
The trace of a block-diagonal matrix is the sum of the traces of its diagonal blocks. Hence
\begin{align*}
\chi_{V \oplus W}(g) = \operatorname{tr}([\rho_{V \oplus W}(g)]_{\mathcal{B}}) = \operatorname{tr}([\rho_V(g)]_{\mathcal{B}_V}) + \operatorname{tr}([\rho_W(g)]_{\mathcal{B}_W}) = \chi_V(g) + \chi_W(g).
\end{align*}
Since this holds for every $g \in G$, $\chi_{V \oplus W} = \chi_V + \chi_W$ as functions on $G$.
[/step]
[step:Collect the four conclusions]
Properties (1)--(4) have all been established: $\chi_V(1) = \dim V$, $\chi_V$ is constant on conjugacy classes of $G$, $\chi_V(g^{-1}) = \overline{\chi_V(g)}$ for all $g \in G$, and $\chi_{V \oplus W} = \chi_V + \chi_W$.
[/step]