How to expand my Vocabulary in English?

As I said in the title what is the best way to improve and expand my Vocabulary?
Also my grammar is kind of weak, how I can improve it too?
I heard people said that watching TV shows/Movies in English and reading novels will enhance my English, does it enhance directly, or is there something to do while reading and watching? it seems I am not improving is there something I did wrong, or is there a better way?