[step:Construct a surjection from a finite generating set]
Assume that $M$ is finitely generated. Choose a finite generating set $m_1,\ldots,m_k \in M$, where $k \geq 0$.
If $k=0$, then the empty set generates $M$, so $M=0$. Let
\begin{align*}
\pi: R^0 \to M
\end{align*}
be the unique $R$-[module homomorphism](/page/Module%20Homomorphism) from the zero module to $M$. Since $M=0$, this map is surjective.
Assume now that $k \geq 1$. For each $i \in \{1,\ldots,k\}$, let $e_i \in R^k$ denote the standard basis vector whose $i$-th component is $1_R$ and whose other components are $0_R$. Define
\begin{align*}
\pi: R^k \to M,\qquad \pi((r_1,\ldots,r_k))=\sum_{i=1}^{k} r_i m_i.
\end{align*}
This is an $R$-module homomorphism: for $(r_1,\ldots,r_k),(s_1,\ldots,s_k)\in R^k$ and $a\in R$,
\begin{align*}
\pi((r_1,\ldots,r_k)+(s_1,\ldots,s_k))=\sum_{i=1}^{k}(r_i+s_i)m_i=\sum_{i=1}^{k}r_i m_i+\sum_{i=1}^{k}s_i m_i=\pi((r_1,\ldots,r_k))+\pi((s_1,\ldots,s_k)).
\end{align*}
Also,
\begin{align*}
\pi(a(r_1,\ldots,r_k))=\sum_{i=1}^{k}(ar_i)m_i=a\sum_{i=1}^{k}r_i m_i=a\,\pi((r_1,\ldots,r_k)).
\end{align*}
Since $m_1,\ldots,m_k$ generate $M$, every $m\in M$ has the form
\begin{align*}
m=\sum_{i=1}^{k} r_i m_i
\end{align*}
for some $r_1,\ldots,r_k\in R$. Thus $m=\pi((r_1,\ldots,r_k))$, so $\pi$ is surjective.
[/step]