Another really important concept to think about when doing language learning… either designing a program or just working on your own language learning, is called ‘Sticky Ball’.
The sticky ball concept is very simple, and would seem to be obvious except there are times when the most obvious thing can escape our notice. The concept is this: we can learn things better if they build on what we have already learned. If they are, in some way, connected.
So let us say that we have learned the phrase, “I want a banana.” Sticky Ball would tell us that it will then be easier to learn such phrases as, “I want an apple,” or “I eat a banana” then it will be to learn, “Where is the bathroom?”
As important as that latter phrase is, and however much you want to learn it, if you build a program out of such disjointed phrases you will learn slower than if you pay attention to how ‘sticky’ each new phrase is to the phrase before.
The metaphor ‘sticky ball’ would also remind us that there isn’t just one thing that could come easily next. It isn’t a ‘sticky chain’ or a ‘sticky railroad track’. Each thing that we learn can ‘stick’ to a whole bunch of things, and all of the things that we have learned will leave us ‘sticky’ areas to learn.
Thus “I want a banana” might lead to “I want an apple” but also “I eat a banana” which can lead to “I eat an apple” and then “I eat two apples” might lead back to “I eat two bananas” or even “I ate a banana and an apple” and then “I ate a waffle and an egg” and then “the chicken laid an egg” ad infinitum.
Sticky ball is not so much a limiting concept as an inspiring one. Once one has learned something, then look for all of the ways that that thing can lead you to learning other things. And those things to still other things until, finally, you are reading ‘Les Miserables’ in the original language and enjoying it!