As a non-native speaker* of German and as a foreigner, I always find myself confused with a major issue in the language: when I should use "du" verses "Sie." The first is the informal version of "you" and the second is the formal. It's not even so much of a linguistic quandry as it's a sociolinguistic issue.
Usually one would use "Sie" with strangers. I've heard that in some work places, people can have worked together for quite some time and they still use "Sie" and address one another by their last names. Younger people use "Sie" with older people as a sign of respect.
You can imagine my confusion when I joined a woman's club that includes some senior German women who introduced themselves by their first names. I don't even know what their last names are so I don't use "Frau" with them. So, should I use "du?"
My German classes are a mix, too. In my uni class, we use du. For the Volkshochschule class, we use Sie. I'm not sure why there is a difference, other than maybe the uni class is with younger people and it's less formal? Or, maybe the VHS class uses Sie because it's then easier to conjugate the verb since it's in the infinitive form.
So far, I've used "du" if the person introduces herself by first name and Sie if I get a last name (which is extremely rare). If I'm at a store or on the street and have to talk to someone, I use Sie. Good enough.
*I guess it's debatable how much I "speak" German.