For words derived from Latin, -en is the plural suffix. In general, -in is used for a specifically female form, with plural -innen.
The Latin verb assistere "to stand by, to help", literally "to stand next to", has the present participle assistens which becomes assistent- in all forms except nominanitive. From this derives the English word assistant (with a spelling change) and the German word Assistent, "someone who helps". The corresponding native German word is Mitarbeiter, which derives from the verb mitarbeiten "work together".
So a professor had someone to help him, which would be an older student, and that ossified into a position for graduate students called "Assistent" or "wissenschaftlicher Mitarbeiter" to make it clear it's about assisting in research, and not in manual labor etc. The prefix "Hilfs-" is "auxiliary" in English, so an undergraduate student helping in research or teaching would become a "Hilfsassistent". Another word for that is "Hilfswissenschaftler" or short "Hiwi".
"Ober-" indicates superior rank (literally "ober" = above), and is also frequently used in other german compounds. In practice, I've never heard the term "Oberassistent".
The Latin word docere "to teach" forms German Dozent in the same way as above, with a spelling change to adapt to German orthography. "Gast" is a visitor, so a "Gastdozent" is a "visiting" scientist who also teaches during his stay.
"Privat" means "on one's own, not in official capacity", so a "Privatdozent" is someone who has no "official" position, because he is (not yet) a professor.
"Lehrbeauftragter" means "someone who has been appointed (beauftragt) to teach (lehren)", so that is anyone who holds lectures and teaches, but doesn't hold one of the other titles.
As for usage, see the other answer.