I am looking for a good method to understand how to find all possible homomorphisms between rings, e.g
$\varphi :\mathbb{Z}\rightarrow \mathbb{Z}$
or, as another example:
$\varphi :\mathbb{Z}_{18}\rightarrow \mathbb{Z}_{15}$
is there any intuitive algorithm to approach such a problem?
If you mean ring homomorphisms mapping units to units, then there are only two possibilities for the image of $1$ under the map $\varphi:\mathbb{Z}\rightarrow \mathbb{Z}$. That is, $\varphi(1)=-1$ or $\varphi(-1)=1$. Then note that $\phi(1+1)=\phi(1)+\phi(1)$ and by induction this gives the image of every element. But these both don't occur since if $\varphi(1)=-1$, we would need $\varphi(-1+1)=0$ so $\varphi(-1)=1$. Then $\varphi(1\times (-1))=\varphi(-1)=1$ but we have $\varphi(1)\varphi(-1)=-1$. So the only possiblity is the identity homomorphism.
In general, you can consider the abelian group structure of the ring $R$. If $R$ is finitely generated as an abelian group, then the generators of the image are determined by the image of the generators (of the domain). The only extra thing to check is that the images you assign to these elements respect orders. That is, in $\varphi:\mathbb{Z}/18\mathbb{Z}\rightarrow \mathbb{Z}/15\mathbb{Z}$ there are no ring homomorphisms mapping $\varphi(2)=1$, because $2+2+...+2=0$ (9 2's) but $1+1+...+1\neq 0$ (9 1's).
In general, I don't think there is any real algorithm (except in the finite case where you can do trial and error in an exhaustive manner).