"0 factorial"? You means 0! ? 0!=1 is useful so that you don't have to write an exception for 0 every single time. There are a lot of formula involve n! for n>=1, but for the exceptional case n=0 the correct value is 1, so you define 0!=1 so that you don't have to write the exception each time. The hidden reason why that pattern keep coming up is because n! come from you needing to multiply by a bunch of factors, starting from 1, so when you are not multiplying by anything it's the same as multiplying by 1.
Or maybe you mean 0^# ? That's read as zero sharp.
We need different "infinity" because infinite sets have different cardinality. You need to specify how big a set is, and even among infinite set they don't have the same size. Aleph_0 is just the cardinality of natural number, the smallest cardinality. The Aleph sequence is for naming these cardinality. In practice, only Aleph_0 and c=Beth_1 is used, and maybe Aleph_1 . Other cardinality is too abstract so you pretty much only encounter them in context of set theory. We have no ideas what Aleph_1 set look like, and it's actually impossible to decide with our current standard axioms; but it does not matter.