I live in Japan, and I've been beating my head against the Japanese language for several years. I could go on for pages about studying Japanese, but I'll just hit you guys with some interesting tidbits.
We have a Peruvian friend who's been here about as long as I have. She picked up the language through friends while I took lessons. My wife, who is Japanese, says that our Peruvian friend's Japanese is more fluent, but she makes more mistakes. My Japanese is more stilted, but I speak more correctly. Which is better?
Also, I can at least read a little. I've only met one person who learned to read and write on his own. There isn't a neat one to one to one relationship between character and meaning and pronunciation. The character for inexpensive also means safe. The character for elephant also means pattern, imitate, and image. Each character has at least two pronunciations, and all bets are off if it appears in a word. The words are tricky to spot, since they don'tuseanyspaces.
But the kanji allow for great specificity. They have one word for "the first leaves of spring", one word for "visiting the graves of your ancestors."
There is also the social and cultural aspect. As a gaijin (note: not a derogatory term), they give me a pass on these. You use different words when talking superiors than to equals. You don't just throw a "sir" at the end of your sentence or use the "usted" form of the verb, you use entirely different words. But when talking about superiors to members of another group, like referring to your company president to someone at a different company, you use diminutive words, because everything about you is lower than anything about the other person. Even if someone is one or two years older you should use respectful language.