weil vs denn vs da
These are the three common causal conjunctions in German: weil, denn, and da. They are all used to introduce a cause or reason to something and are analagous to 'because' or 'since' in English.
So what are the differences between them?
The main difference is the placement of the verb. denn is a coordinating conjunction, so it introduces a main clause and the verb is the second element:
Ich habe einen Apfel gegessen, denn ich hatte Hunger.
weil and da are subordinating conjunctions, so introduce subordinate clauses, where the verb is (usually) the last element:
Ich habe einen Apfel gegessen, weil/da ich Hunger hatte.
Subordinating conjunctions can introduce a sentence:
Weil/da ich Hunger hatte, habe ich einen Apfel gegessen.
But this does not work with a coordinating conjunction like denn:
❌ Denn ich hatte Hunger, habe ich einen Apfel gegessen.
What are the other differences?
There are many subtle differences in usage between them that you can only really learn by immersion. However, there are a few of note:
da is similar to English 'as' or 'since', in that it often precedes a main clause and introduces a reason that is already known.
weil can have qualifiers like nur, but this does not work (or sounds pecuilar) with the other conjunctions:
Ich habe ihn festgenommen, nur weil ich sein Grinsen nicht mochte.
It can also have a 'placeholder' adverb, like darum, deshalb, or deswegen, in a main clause, where it points to the subordinate clause:
Er konnte deswegen nicht kommen, weil er krank war.
When should I use which?
You can use whichever one you like and you will be understood. However, weil is widely favoured in spoken language, followed by da. denn is not common in spoken language, but still fairly common in written language.