There is a standard proof technique involving the relationship between injectivity and surjectivity on “finite” structures. I rather like it—for the examples provided, it is very difficult to proceed without knowing the trick, even though the solutions are very simple.
Principle A: If is a finite set and is a function, then is injective if and only if is surjective.
Proposition 1: If is a finite field and is a homomorphism of fields, then is an isomorphism.
Proof: is an ideal of , but it cannot equal , (for ) so and is injective. Therefore is surjective.
Proposition 2: If is a finite simple group and is a homomorphism, then is an isomorphism or .
Proof: Either , in which case , or , in which case is injective, so is surjective.
Principle B: If is a finite dimensional vector space and is a linear transformation, then is injective if and only if is surjective.
Proposition 3: If is a field and is an integral domain containing with finite dimension over , then is a field.
Proof: It suffices to show that we can take inverses. Choose any nonzero , and consider the map defined by . Then is a linear transformation. Since is an integral domain, is injective, therefore is surjective. So there exists some with , so .
Problem: Show that any finite integral domain is a field.
EDIT: As Steven points out in the comments, the following is also useful, and the proof is a good exercise:
Principle C: If is a Notherian module then any surjective homomorphism is injective, and if is an Artinian module, then any injective homomorphism is surjective. (hint: in fact, for any , if is Noetherian, then for large enough we have . If is Artinian, then for large enough we have .)