Actually, that's a very difficult question for me !
I think the most effective way to learn idioms is by memorizing them and practising them while you are speaking.
Moreover, try to find a connection between idioms in English language and idioms in your own language especially if you speak Arabic because there are many English and Arabic idioms having similar meanings.
hope that is useful
asmaa