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 ! 

Every finite group embeds into a permutation group; this is Cayley's theorem. The proof of the theorem is essentially constructive, with $G$ embedding into $S_{|G|}$. That is, there is an algorithm with input a Cayley table* of a finite group $G$ and output a permutation group $\operatorname{Perm}(G)$ isomorphic to $G$. You can then easily embed $\operatorname{Perm}(G)$ into $\operatorname{GL}_{|G|}(\mathbb{C})$ using permutation matrices, and again this can be made algorithmic.
*The input form can vary, but the OP explicitly mentions Cayley tables in the comments.
