I've started reading Category Theory for programmers with the objective of understanding the basics of category theory (and how it can instruct programming patterns).
I've so far understood the basic concepts of categories objects and morphisms mapping to graphs with named edges that need to compose and the need to always have an identity morphism per object. The thing I can't seem to wrap my head around is how these categories are constructed from less abstract concepts like sets.
In particular, the book uses different more concrete concepts to ease the reader into thinking in term of categories.
I will use chapters from the book as reference in addition to resuming my understanding.
In the chapter 3.3, the writer introduce a category formed from a set of integers and the relation "$<=$". I understand that in this case objects are the different numbers of the set, and the morphisms are the relations between the numbers, with the identity morphism and the composition that it brings.
In the chapter 3.4, the writer brings us to the concept of a monoid as a category, and it is here I get confused.
He describes the monoid as a category with one object and a multitude of morphisms on this object -- with for example the monoid of the addition having the morphisms "+0" (identity), "+1", ...
I understand that object can be sets (or anything really), but I can't understand why the category of a monoid needs to be represented with only one object. It seems to me that the category for a monoid can also be represented with an object for each element of the set, and morphisms (in the case of the addition monoid, the +0, +1, ...) going between the different objects.
We keep the identity on each object (the +0), and we keep the composability of the morphisms between objects (a morphism of +2 from object A to object B and a morphism of +3 from B to C will correspond to a morphism of +5 from A to C).
I understand that I'm not supposed to care about the objects themselves, and that only their relation to the morphisms matter, but I can't see how I should decide whether to convert elements or sets or whatever.
What am I missing the make this question nonsensical;
Or am I just supposed to try to abstract the objects until I can't anymore, and then say it's the category of what I am studying (so in the example of a monoid for the addition on integers, while I could do it with integers as objects, since I could also do it with the set of integers as object, I should go with the more abstract one)?