That depends. Sometimes the words are used to mean the same thing. Sometimes they are used to mean different things. It depends on context.
Here is how I explain it to people: Soul, as a general term, refers to the innermost part of a person--the sum of all the abstract things that cannot be physically measured or touched, like character, personality, feelings, wisdom. The spirit, on the other hand, is the part of a person which communicates to the spiritual realm just like the body communicates to the physical realm. This is why Jesus said that a person must be "born of the Spirit" before that person can "see the kingdom of God."
This is the basic difference. However, the lines are not always so clear cut. In normal conversation, it is the same thing to say that a person's spirit is in heaven or that a person's soul is in heaven. Sometimes soul or spirit is used to mean the same thing as "heart." "That really spoke to my heart," or "That really spoke to my soul," or "That really spoke to my spirit" could all be taken to mean exactly the same thing.
Overall, even if you are a native English speaker, you usually have to use context to know exactly what the person is referring to. You may even have to ask, depending on the conversation.
Otherwise, in a more formal discussion of philosophy or religion, the above definitions will usually apply.
I hope this helps!