Just a little side note about the Slavic languages. The Slavic languages, which include Russian, Polish, Ukrainian, Serbo-Croatian, Macedonian, Czech, and Slovak, just to name a few are divided into three subgroups: the East Slavic languages (e.g. Russian), the West Slavic languages (e.g. Czech), and the South Slavic languages (e.g. Serbo-Croatian).
A millennium ago there was probably only one Slavic language. The story you generally hear is that the Tatar invasion isolated the Slavs from one another, allowing their languages to diverge.
Distinguishing between language and dialect is a fractious subject, governed as much by politics and tradition as linguistics and, since national boundaries have changed frequently, a subject for debate. The differences between Serbian and Croatian is mostly that Serbian is written in Cyrillic and Croatian is written in Roman letters and they have slightly different borrow words. Bosnian adds more Turkish and Arabic borrow words.
In general, the Slavic languages are pretty close to one another—closer than the Romance languages are to each other. One wisecrack I’ve heard that I liked was that the speakers of the various Slavic languages understand one another they just pretend not to.