1. Learn things by heart!!!
This could be a short story, like half a page. Learn it word to word and set a time limit to tell it to someone. Stick to that time limit. Make it so that you can tell it realistically, using intonation. This sounds like a childish thing for some, but really helps with fluency and use new words.
2. Read more, journals newspapers, online articles
As you read, try to balance enjoying and constantly looking up the dictionary. I mean, you dont need to know every word, and you cant actually. And that is ok.
3. Use flashcards, I use Anki: both web and mobile versions. really helps me remember things I learned.
4. Talk to yourself!!
This is not for everyone, but I mostly improved my speaking by talking to myself constantly, and I still do that.
5. Listen to more formal speeches more often.
You could try ted talks, or university lectures on the subject to improve your vocabulary.
The idea is to mix different strategies and find the ones that work best for you.
Good luck!!!
Vocabulary: read and write a lot, and not just in "business." Memorization, via lists or spaced repetition (anki or 3x5 cards) is helpful, but just like programming you need to use your skill to improve your skill. Have a dictionary and blank cards at hand while you read and write.
Speaking: speak. :-)
Read and speak to a mirror. Get into contexts where you have to listen and speak to people.
I read everything on the kindle, and use kindle highlights when I find a sentence with a word I dont know. Then, after Im done with the book, I download the highlights and create cards in Anki with the word in context and review every day.
I have expanded my vocabulary significantly using this method.
I kind of know English and can communicate but I want to become more fluent. I even built a startup myself to help me reach fluency :) You can check the vocab10k.com.