This isn't possible for everyone, but if you can... just move.
Moving to the USA, the UK, Australia, etc. is probably the single best and fastest way to learn English (this goes for any language —I learned how to speak Polish very well by living in Poland).
If you are planning on moving to an English-speaking country and you want to improve your English beforehand... don't. Just move. You will be wasting your money on lessons. You will learn much more, much faster by just moving.
Although this is very expensive and out of reach for most people, I can confidently tell you that forcing yourself to speak only English all day, every day is the best way to learn English.
Just to be clear: if get into a relationship just to use the other person to improve your English, you're a jerk.
That said, English-speaking friends and significant others that you spend a lot of time with are great for helping you improve your English.
The more time you spend speaking English with native English speakers, the faster you will learn. If they can't speak your native language, that's even better.
I'm not saying that you have to hire me. But again: speaking English is the best way to improve your English.
There is nothing wrong with paying a native speaker to talk to them. Try to find one that can speak easily about topics that are important to you, and make sure that they make you feel comfortable with speaking and that you trust their advice.
I recommend you find a few native speakers in your area (or a few that you like online) and try one lesson with each of them, then go to the one your gut tells you will help you improve the best.
No joke, some of the best non-native English speakers I have met in Poland were heavy gamers. If you love playing online games, then use it as an opportunity to learn English, too. Force yourself to play on servers where there are lots of English speakers and make conversation with them!
Most of the successful people I’ve known are the ones who do more listening than talking.
— Bernard M. Baruch (millionaire financier, philanthropist and advisor to 2 U.S. presidents)
Being able to speak English is important, but being able to listen is even more important.
A great way to learn to listen... is to listen.
When you can't talk to a live native English-speaking person... watching English TV shows on Netflix, watching English-speaking YouTubers, listening to English podcasts, and listening to English music are all great ways to listen to English.
Watch and listen to as much as you can, replay phrases you don't quite understand, and make sure you understand everything correctly by talking about what you watched/listened to with a native English speaker later.
Another great way to check your understanding is to watch a show/movie with subtitles in your native language (before or after watching it in English).
Also, if you like a movie, don't just watch it once. Watch the same show/movie 100 times. Watch it until you have every line and its meaning memorized... then move on to another.
If you follow these tips, I guarantee you will learn English 10 times faster than if you didn't.
Do you want to speak English perfectly?
Like... do you want to make 0 mistakes all the time?
Do you want your friends to look at you with envy as you laugh, mingle and toast international superstars at high-class parties?
Are you training your English and waiting until the day you are perfect so that you can go out and start meeting those international superstars?
Well I'm going to ruin your dreams:
Waiting until you can speak English perfectly is the best way to never speak English well.
One of the biggest problems I run into with a lot of Polish people learning English is that they are perfectionists.
Don't get me wrong: being a perfectionist is a good trait to have. It means that you care about improving... but you cannot let your need for perfection get in the way of your progress.
It's hard to hear, but you have to hear it: don't expect yourself to speak perfectly in the near future because you won't.
One more time, just to be clear, because I know all my perfectionists out there don't quite get it yet: no matter how hard you try, you will not speak perfect English at a native level of fluency in the near future. Period.
But here's the good part: that's okay!
Check out what Dan Lok (a multi-millionaire businessman, multiple-time best-selling author who was born in Hong Kong and didn't start speaking English until he was 14) has to say about "perfect English".
I recently received some emails from my readers ‘complaining’ to me that I write with typos...
“Dan, can’t you just use spell check?”
“Don’t you know how to write English properly?”
“Wtf, learn to spell...”
And it’s funny, because I heard similar things when I first published my book FU Money…
I had all these English Professors contact me out of nowhere…
Telling me my book was full of typos.
And I found it pretty amusing because, in all honesty, my book “full of typos” sold more than all of their books “with perfect english” combined.
Yet they were telling ME how to write a book. I can’t help but laugh just thinking about it.
Anyway. Here’s what I said to them back then, and here’s what I say now to all those saying I have typos in my writing.
I LIKE typos...
If I was interested in writing Perfect English, I would’ve become an English Professor…
But I’m much more interested in growing my business, making an impact, and helping more people.
And I don’t need to write perfectly to do that.
— Dan Lok
Native speakers don't speak English perfectly. I don't speak English perfectly. English professors don't speak English perfectly. I defy you to find a single person who can speak English "perfectly"... who can speak any language perfectly... really... who can do anything... perfectly.
But do you know what will get you very close to perfect very fast? Speaking and writing in English. A lot. With native English speakers... so do that. Do that a lot.
Bottom line: don't be shy and don't worry about making mistakes. Conversing with lots of native speakers and learning from your mistakes is the best way to stop making mistakes.
If you're learning English, you will say funny things and people will laugh at you.
Don't get discouraged and don't take it personally. Laugh with everybody, make a joke about yourself, then nicely ask for help saying it correctly.
Most people want to help you... they aren't making fun of you, you just said something that sounds funny to them.
I'm speaking 100% from experience. When I came to Poland, probably not a day went by for a looong time when somebody didn't look at me funny or laugh their ass off because of something I said... now strangers sometimes even mistake me for a native if they don't spend an extended period of time with me, and even then... they are sometimes shocked to hear I wasn't born and raised in Poland.
So when people laugh, take it as advice, not criticism. When they laugh, all it means is that you said something that sounds weird or doesn't make sense grammatically. Find out what your mistake was and correct it from then on out.
Let's say that, for example, you want to have a British accent... here are some things you shouldn't do:
Go to Britain! Hire a British person! Play with British gamers! Watch British television!
Don't take this the wrong way: I'm not saying that you should avoid people who don't talk the way you want to talk at all costs... I'm saying that the more time you spend with people that talk the way you want to, the sooner you will talk like them.
If you follow my advice from above, you should be watching, reading, and listening to lots of English content...
Now, when you hear something you like, find the definition of the word/phrase and start using it yourself!
But here's the important thing: make sure you understand the meaning and use it the same way you heard a native use it. It can sound very funny when a non-native speaker says an advanced phrase or colloquialism in the middle of a very basic sentence, even if they use it correctly. So focus on mimicking not only the words, but the tone and inflections of the words and phrases.