Getting a one to one morphism $p : G \to GL_n(\mathbb{C})$ I am studying representation theory, and I would like to find an algorithm that finds, given a finite group $G$, a one to one morphism $p : G \to GL_n(\mathbb{C})$ (the integer $n$ is also found by the algorithm). I don't necessarily want this algorithm to be efficient. First is it possible to make such an algorithm ? 
Now I am wondering how to begin with. I thought about finding the character table of the group first (I know this not an easy task) and find its irreductible representations, but then from here I don't see how I can find a solution to my problem. 
If I have all the irreductible representations of my group I don't see how I can get $p$. I mean the characters only give information about the sum on the digonal of $p(g)$, but how to get from this information the other entries in the matrices ? 
Thank you ! 

Take a group, with elements $g_1, \ldots, g_n$. 
Associate to $g_1$ the vector $e_1 \in \Bbb R^n$. 
Now for element $g_1$, compute the $n$ items
$$
g_1 \cdot g_1, g_1 \cdot g_2, \ldots, g_1 \cdot g_n.
$$
These will be the elements of $G$, in some new order, such as 
$$
g_7, g_2, \ldots, g_3.
$$
Write down the corresponding vectors as the columns of a matrix 
$$
M_1 = \pmatrix{ e_7, e_2, \ldots, e_3}
$$
Do the same for $g_2$ to produce $M_2$, and so on. 
The map $g_1 \mapsto M_1, g_2 \mapsto M_2, \ldots$ will be a injective homomorphism of groups. 
(Unless I've messed up and forgotten a transpose somewhere...)
You can test this out pretty quickly by trying it for $\Bbb Z/3\Bbb Z$, or even $S_3$. 
