One of the many (seemingly neverending) details about Russian that can be confusing to a native English speaker is understanding the choice of prepositions in Russian. But once again, you'll find that the concept is actually quite easy once you learn to think like a Russian!
Unlike English, where we have several prepositions to make distinctions about locations, Russian primarily uses only two. And it's often confusing, and seemingly arbitrary, when you have to choose between в and на.
Sure, it's easy to understand that you use на for "on", and в for "in", but the trouble comes when you want to say "at" or "to", for which there is no Russian equivalent, for which there is. (Well, there is a "to" for people, but not for places.) So, if I am at the market, do I say на рынке or в рынке? If I am going to the store, do I say на магазин or в магазин?
You won't find this in any books
I tried every source I could get my hands on when learning Russian — Learn in your Car, Pimsleur, Teach Yourself, Rosetta Stone, Living Language, and several lesser known sources, even including the Russian grammar books that were given to students in the Soviet Union — and yet I never saw this concept properly explained anywhere.
Even the best resources I've seen simply show you lists of places and suggest that you memorize them, or just "get used to saying it" this way, but I don't accept that. Worse still, this is one of those language concepts that native Russian speakers all seem to understand intuitively, but which no one seems capable of describing as a rule.
But I've discovered that there is, in fact, a rule!
It became clear to me when reading about Ukraine. The word Ukraine (Украина) means borderland, and it is indeed the borderland between Russia and Europe.
I noticed that when reading Soviet-era text about things in Ukraine, it is written as на Украике, whereas in post-Soviet text it is в Украине.
A similar distinction exists in English, where it used to be known as "the Ukraine", but it is now known as just Ukraine. This is the clue that helped me to figure it all out. The Soviets considered Ukraine to be a region, but today it is a separate country.
You see, you use в when you are "at" or going "to" an actual place — when the location you are describing actually exists, such as a city, a village, a building; and you use на when you are "at" or going "to" a conceptual place — when the location you are describing is a concept, a grouping, a region.
So with that distinction in mind, things start to make more sense. Use на when at or going to one of the following:
The last two, post office and factory, might seem out of place because they are definite places in English, but in Russian they are not. Почта actually means "mail", so going to "the mail" is not a definite place at all. Similarly, a factory is not the building, but the place where things are produced.
Conversely, when describing a specific place, use в:
This is only my observation. I have not found a single source to confirm this, and there are probably "exceptions" to argue over — though I can't think of any.
Regardless, I prefer to have a reliable, logical rule with a handful of exception, rather than a giant list of things I must memorize without any sort of explanation or understanding.
If you remember this rule as I have explained it, you will be right most of the time. That's a far better plan than just guessing, and it's much easier to keep in your head than a huge memorization list.
Want to see my favorite language resources and courses?
I listed them here.