When learning vocabulary and you wonder about the "question" which is mentioned here, the word in your native language is meant. Accordingly the "answer" is the word in the language to translate in. "question" and "answer" are used here because you can learn more with these techniques than only vocabulary.
For better results you should sometimes turn some cards (when using flash card) i.e. treat the respective question as the answer and so on.
The simplest method is to use simple lists (as found in pupils' books) with the questions and answers. Hide the answer and look at the question. Guess the answer. Now look at the answer. Do so until you know all answers an are able to match them to the questions.
If you do not know one answer (or more), you will have to repeat the complete list with the words that you already know. That can take lots of time.
You can write the lists down into vocabulary books (pupils' nightmare), but the method does not become much better, either.
There is a pile of cards. Every card contains the question on one side and the answer on the other side. You look on the question on the card and guess the answer. Now turn the card and look if it is correct. If it is, remove that card from the pile. If it is not, put it on the bottom of your pile.
So you do not learn the known answers (or vocabulary or whatever) again and again (you already know them!) and are able to learn the unknown answers much better. Unfortunately you will forget them soon after you have been learning them, so you will have to repeat them sometimes anyway.
Many programs have been written for this technique, so you need not waste cards for this.
This method is recommended by educationists today. Programs like KVocTrain use it.
There are several drawers (e.g. 5 or 7). If you are going to learn something, you have to write down the questions and the answers as with simple flash card.
Then you put them into the first drawer and learn them as with simple flash card. But the cards with the known answers are not removed, put them into the second drawer instead.
Learn the vocabulary in the first drawer once per day (always do so!). When (I hope not to need use 'if') it is empty, go on and learn everything in the second drawer. If the first drawer has not been empty for many days, you need not wait until it is empty, but remember that it has still the greatest priority. Also learn the third drawer (and the 4th one and the 5th one etc.).
The drawer with the smaller number has always the greater priority, so learn it more frequently (even more than you do anyway).
If you do not know the answer for a card anywhere, always put it back into the first drawer.
There is a disadvantage with the methods described above when learning vocabulary: If a word has several translations, you have to decide what to do. But there are problems with every method:
You do not know which translation is meant. You will probably guess the wrong one.
You have to find the vocabulary card to write down the new translation. That is a problem if there are many cards. Depending on your opinion (or the opinion of you program) your translation will be either only correct if you thought of every possible translation or even with one correct translation. Both possibilities are not perfect.
voc-get provides a solution.
Its data structure is able to save several translations for one vocabulary (graphs). So when it asks you, simple type in as many translations as you know. It will always accept it if it exists in the database, but it will ask for translations frequently until you have typed in all possible translations (typical advanced flash card).
Simply do what voc-get wants you to. It manages the database automatically for you, so you can use more time to learn your vocabulary. Isn't that perfect?
Unfortunately there is no release yet because it takes some time to develop that.