There may be a lot of heated discussion about the best way to learn a language, but ultimately if you have a way to test the progress of your learning then anything that progresses you at a satisfactory speed is a valid learning method. You can decide what your goals are and use testing to ensure that you are on target. This applies to any kind of learning, the key thing is that the testing has to be valid, it has to be relevant. If the methods used to test your progress are not relevant then you may not have idea what progress (if any you are making).
This is somewhat fuzzy, words like satisfactory are imprecise, if however you are a self-learner than you are perfectly justified to define them for yourself (I would suggest that if are not a self-learner then it is equally import to define them for yourself and see how they map to the course you are on/following) many people are happy to entrust the whole thing to somebody else.
There are a lot of negative posts these days (ironically often in places where negativity is supposed to be bad, and everything is supposed to be fluffy and easy.....) telling you that you must do this, or you can't do that, or you are anti-social, self-deluded, an apologist, moronic, cretinous, for believing in/using method X. Some will even "feel sorry for you"(WTF!), but the purpose of this post is just to highlight one key difference between you learning as a child and as an adult. As an adult you are responsible for determining the effectiveness of your learning, most people can't afford in invest time and money into something that is not working.
keep it real for testing
Whether your learning method is based mostly on "real world" language or not your testing method should be. The best way to test your progress is against real use of the language. listening to real content, reading real content, talking with real people. Grammar tests, tests against numbers of flashcards learned, classroom tests, the number of audio lessons completed, all indicate some kind of progress, but don't guarantee the correct progress.
Testing against real world material requires some discipline, the material you use for listening comprehension, reading comprehension, the people you speak to have to vary and have to represent varying levels of difficulty, when you may be able to understand a childrens story you might only still get a few words from a news report.
I have been testing my learning against real world application for a long time now, not just for language learning. Hopefully as time goes by I will get better and better at language learning by constantly testing my progress and adapting my methods. When I learn anything I can go down false trails or do something that doesn't actually help, everyone does. There is no reason however why anybody should be able say "I tried method X for two years and made little progress".