The most effective way obviously is practice.
We can all study by ourselves. But without practice, all the studying is not gonna be worth it.
You will forget it easily. You will forget everything you've learned without practice.
Have a langauge partner to help you with the language you are studying.
Unfortunately not all langauge partner have the time to practice with you.
Most of the time people who doesn't have to spend money procrastinate in studying English with you.
The other option is to hire a teacher who is not only there to practice with you but also guide you. The mind setting of some people is when you pay you are more forced to do your lesson and less to procrastinate. You're teacher will be available for you more than not because it's business for them.
Find a teacher who you're comfortable with and will also give you challenges.
Being comfotable is good. Challenges will push you harder to learn the language.
Indeed, to find a good language partner or a suitable teacher to practice is hard to achieve for most people. There are several factors that could lead to failure.
1st: you have time difference between you and your practice partners.
2nd: you have different target with your language partner or not totally in line with your teachers.
3rd: you are not motivated in a promising way or some sort of challenge frustrates you thoroughly at times.
4rd: you have no time because you are too busy to afford a substantial practice.
Either one can make your practice fail.