These words are similar and so are easy to confuse. However, keep in mind that they don’t share the same form.
You can use ‘so’ in front of an adjective or an adverb. For example:
She is so beautiful! (with an adjective)
You speak English so well! (with an adverb)
It CANNOT be used with an adjective in front of a noun.
She is so good teacher. (incorrect)
This is so nice weather. (incorrect)
If you want to say the above sentences correctly, you would use ‘such’. ‘Such’ can be used in front of an adjective paired with a noun. For example:
She is such a good teacher. (Yay! Correct!)
this is such nice weather. (Correct!)
With ‘such’ you need to be aware of countable and uncountable nouns. You can see that with ‘teacher’ you need ‘such a’, but with ‘weather’ you just need ‘such’.
So try to remember:
so+adjective (He is so nice!)
such + adjective + a countable noun (He is such a nice person!)
such + adjective + uncountable noun (This is such good food!)
image taken from: btr.michaelkwan.com
image take from: whosyoureditor.blogspot.com