The three official languages are spoken in Bosnia and Herzegovina: Serbian, Bosnian and Croatian. For the local population it is of great importance to appoint the language you speak. In the practical sense, it is one and the same language.
The differences are similar to the differences between American and British English. Before the war in former Yugoslavia, the language was called Serbo-Croatian / Croatian-Serbian language. This title is no longer used today. Bosnian / Croatian / Serbian belong to a group of Slavic languages. Many words are similar to Czech or Slovak, and even the Polish and Ukrainian. Language that is spoken in Bosnia and Herzegovina belongs to the same group of languages as Russian, but still is significantly different.
In Republika Srpska, most signs are written in the Cyrillic alphabet, including even the road signs, so it is hard to know where you are unless you know the script. The Federation of BIH in use is only Latin alphabet. It is very common in cities that you will meet people who speak English.
Association for Language and Culture 'Linguists' in Sarajevo is offering Bosnian, Croatian, Serbian Language Course. Each level lasts for four months (18 weeks), with 64 classes altogether (4 classes a week). The price for the course is 117 BAM per month (VAT included).
Although Serbian, Croatian and Bosnian have all become official languages they remain completely understandable among each other. If you learn one language, you can speak any of nearly 20 million people in four countries, in Bosnia and Herzegovina, Croatia, Montenegro and Serbia.