Epimorphism and monomorphism explained without math? I'm trying to understand category theory to increase my coding skills and epimorphism and monomorphism aren't clear to me.
Unfortunately, my last formal education was when I was 12 due to circumstances and I have a hard time understanding algebraic expressions.  
I understand what morphisms are and what isomorphism is. $f : X \to Y$ and $g : Y \to X$. Meaning, if there is a morphism going from $X$ to $Y$ then there must be a morphism that goes back and reverses it.  
But I don't understand what epimorphism and monomorphism are. Could someone please elaborate in a way a non-mathematician could understand?
 A: When we were little we learned that $$c+a=c+b \;\;\iff\;\; a=b$$ and the notions of epi- and mono-morphism are the same idea of cancellation but for functions, or morphisms of a category. Simply replace "$+$" with "$\circ$", composition ;-)

Now addition doesn't care about the order of its arguments, it's symmetric: $x + y = y + x$. However this is not the case for morphisms in-general! 
As such we have two cancellation properties and we name them 


*

*epi: $f$ is pre-cancellable, i.e., can be cancelled at the beginning of a composition; i.e., $$g \circ f = h \circ f \;\;\iff\;\; g = h$$

*mono: $f$ is post-cancellable, i.e., can be cancelled at the end of a composition; i.e., $$f \circ g = f \circ h \;\;\iff\;\; g = h$$

It is interesting to note that we speak of a particular $f$ having such a cancellation property, whereas for numbers we know that the cancellation property holds for all numbers.
Can the same be done for all functions?
No, an immediate counterexample is the always-zero function $Z(x)=0$.
It is in-general neither epic nor monic! Hence, for functions these properties do not always hold. As such, we may refine our analogy to be more like multiplication than addition: $$\text{ Provided } c \ne 0: \quad c \times a = c \times b \;\;\iff\;\; a = b$$
Just as "Provided $c$ is non-zero, we have (post)cancellation", we can say
"Provided $f$ is monic, we have post-cancellation."

Aside: That $f \circ g \;=\; g \circ f$ is not generally true can be seen by considering a counter example.
Indeed, consider the functions $f(x) = x+1$ and $g(x) = 0$ then 
$$(f \circ g)(x) = f(g\;x) = f(0) = 1 \;\;\neq\;\; 0 = g(x + 1) = g(f\; x) = (g \circ f)(x)$$
A: I've been recently starting to learn some category theory, and even though it's fairly self-contained (or, at least, the basics are), from it's very construction it was made to generalize situations arising in mathematics (of course, it has afterwards developed an intrinsic importance). 
This means that it will be a bit hard to fully get why some things are the way the are without some mathematical examples from other topics. 
The definitions state that a morphism $h: X \to Y$ is a monomorphism if and only if for all $f,g : Z \to Y$ we have that $hf = hg$. That is,  $h$ embodies left-cancellability in an equality of morphisms. In the same spirit, $h$ will be an epimorphism if $fh = gh$ impies $f = g$ for all $f,g$, that is, we can right-cancel $h$ from an equality of morphisms. 
In a way, this is related to the reversibility you had mentioned: if two morphisms are equal after being composed with a monomorphism, then they must be equal. Dually, if two morphisms 'transform' an epimorphism in the same way, they must be the same. That is, epis and monos give us information about other morphisms depending on how they 'change' or 'get changed' by them. 
This can give (at least intuitive) information about objets as well. I don't think much else can be said without being a bit technical, but let's try a simple example. Take the integers $\mathbb{Z}$ and the rational numbers (i.e. 'fractions') $\mathbb{Q}$. These are two examples of rings, which intuitively are mathematical objects in which you can sum and multiply as you are used to, but with much more generality. These form a category, $\operatorname{Ring}$, and the morphisms are functions which behave well with respect to sums and multiplication. Concretely, if $R$ and $S$ are objects of $\operatorname{Ring}$, then a morphism between them is a function $f : R \to S$ that verifies

(i) $f(x+y) = f(x) + f(y)$ for all $x$ and $y$ elements of $R$.
(ii) $f(xy) = f(x)f(y)$ for all $x$ and $y$ elements of $R$.

Let's see an example: the inclusion morphism from the integers to the fractions,
$$
\iota  : \mathbb{Z} \rightarrow \mathbb{Q} \\
 k \mapsto \frac{k}{1}
$$
which in a sense, does 'nothing': we are just thinking about the integers in the context of fractions as a special kind of them. However, from the rigid structure that the morphisms of $\operatorname{Ring}$ have, and by that I mean that they verify some strong properties, it is not hard to show that $\iota$ is actually an epimorphism: if $f \iota = g \iota$ , then $f = g$. What this tells us is that it is this category, it is enough to see if two morphisms behave in the same way with the integers, to know if they behave in the same way with any fraction. I hope this gives at least some motivation for the usefulness of this concepts.
A: In the context of standard algebra, a morphism is a map that is transparent to the laws of structured sets. 
For example, let $X = (\mathbb{Z}, +)$, integers with addition, and $Y = (\mathbb{R^*}, \times)$ the reals with standard multiplication. In this case, both structures are groups, but this is not specific to the definition.
Then, a morphism (or homomorphism) $f: X \rightarrow Y$  is a map such that for any $a, b \in \mathbb{N}, f(a+b) = f(a) \times f(b)$. In this case, $f(a), f(b) \in \mathbb{R}$.
An example of this would be $f: a \mapsto 2^a$. 
The values taken by $f$ include $2^{-1} = 1/2$, $2^3 = 8$ and so on. You can check that $f(a + b) = 2^{a+b} = 2^a2^b = f(a)f(b)$.
Then, an epimorphism is another word for a surjective morphism. A monomorphism is way to denote an injective morphism.
To understand this, you only need the definitions of injectivity and surjectivity. 
A function $\phi : A \mapsto B$ is injective if it has the following property: for $a, b \in A$, $\phi(a) = \phi(b) \Rightarrow a = b$. In other word, it cannot map two distinct elements to the same value.
A function $\phi : A \mapsto B$ is surjective if it has the following property: for any $x \in B$, you can find an $a$ in $A$ such that $\phi(a) = x$. In other word, you can build the set $B$ only by applying $\phi$ to the elements of $A$.
In our case, you can check that $f$ is a monomorphism. However, real numbers such as 3 will never be reached by $f$, thus it is not a bijective function, i.e. this is not an epimorphism.
