Use because to give the reason, to answer why. The reason comes right after because.
because gives the reason
We stayed home because it was raining.
She's happy because she passed her exam.
He left early because he felt sick.
so gives the result
Use so to give the result, what happened next. The result comes right after so.
It was raining, so we stayed home.
She studied hard, so she passed.
He felt sick, so he left early.
Try it: Amina wants to explain WHY she stayed home. The reason was the rain. Which one gives the reason? (I stayed home because it was raining. / I stayed home so it was raining.) Answer: I stayed home because it was raining. — She is giving the reason (why she stayed home), so use because: because it was raining. "So it was raining" would mean the rain was the result of staying home, which makes no sense.
Try it: Hiroshi wants to say what he DID as a result. The rain came first; staying home was what happened next. Which one gives the result? (It was raining, so I stayed home. / It was raining, because I stayed home.) Answer: It was raining, so I stayed home. — He is giving the result (what he did next), so use so: so I stayed home. "Because I stayed home" would say the rain happened because of him, which is backwards.
although shows a surprise
Use although when the second part is a surprise after the first, not what you would expect. It can start the sentence (with a comma) or join in the middle (no comma).
Although it was raining, we went out. (surprising, you'd expect us to stay in)
She passed although she didn't study.
Although the hotel was expensive, we enjoyed it.
Try it: You'd expect bad weather to keep people inside. But Mei and her friends went out anyway. It's a surprise. Which one shows the surprise? (Although it was raining, they went out. / Because it was raining, they went out.) Answer: Although it was raining, they went out. — Going out in the rain is surprising, so use although: Although it was raining, they went out. "Because it was raining" would mean the rain was the reason they went out, not a surprise.
but shows a contrast
Use but to join two ideas that are different or surprising. But goes in the middle, usually with a comma before it. Like although, it shows a contrast — but although can start the sentence, while but only joins in the middle.
It was raining, but we went out.
The hotel was expensive, but we enjoyed it.
I was tired, but I finished my work.
Not "But it was raining, we went out." — say "It was raining, but we went out.". But joins in the middle; it cannot start the sentence the way although can.
Try it: The room was small. You might expect that to be bad. But it was comfortable. The two ideas are different. Which one shows the contrast? (The room was small, but it was comfortable. / The room was small, so it was comfortable.) Answer: The room was small, but it was comfortable. — The two ideas are different (small, yet comfortable), so use but to show the contrast: small, but comfortable. "So it was comfortable" would mean being small made the room comfortable, which is not the meaning.
Use only one joining word
Pick one joining word, not two. Do not say because ... so together, and do not say although ... but together.
Because it rained, we stayed home. (not "Because it rained, so we stayed")
Although I was tired, I went out. (not "Although I was tired, but I went out")
Not "Although I was tired, but I went out." — say "Although I was tired, I went out.". Although already shows the surprise, so you do not also need but.
Try it: Which one is right? (Because it was late, we went home. / Because it was late, so we went home. / Although it was late, but we went home.) Answer: Because it was late, we went home. — One joining word is enough: Because it was late, we went home. "Because ... so" and "Although ... but" double up two joining words, and you only need one.