Sooner a later, you might be bored with having just one foreign language (English) knowledge in the case of non-English speakers, or any other single language for English speakers. Apparently, in the era of globalization, the more languages you know, the better you'd be appreciated in a large company operating worldwide, as a person with the knowledge of several foreign languages will be invaluable for them (I presume the value/number of languages plot will have an exponential curve). That will be valid until devices come in, that translate foreign audio speech to your native textual representation and vice versa, recognizing your utterance, and pronouncing it itself in another language. I myself in that scenario will not be comfortable with such devices or 'phrase book devices' having seen what might have happen in the case the device or phrase book author went mad, e.g., as in 'Dirty Hungarian phrasebook'.
If you're going to attend some foreign language classes, you ought to be certain the teacher is from a decent University and has got experience talking to natives; otherwise, you may waste your time and money as in this 'Italian lesson'.
To be more specific, the problem I faced before with English, and now with Español and Italian languages, is to keep your learned foreign words vocabulary up to date in your mind. The more information you receive, the brain tends to get rid of the old ones, which is not renewed from time to time. That does not concern the simple ones (e.g., school, boy, to do, el niño, la mujer, tengo hambre, caja de muerto, figlio di putana etc...) which you hear every day, and they become hard coded in your neural paths, but the more complex ones of the advanced literary genre, e.g., you read Poe or Shakespeare and there is stupendous score of them you are not likely to encounter unless you spend all your free time in Poe's literary societies.
Obviously rereading all your previous texts and words you had been studying takes enormous time and effort. But, if you have all your words in digital form, you may take them in random order from time to time to refresh your knowledge. Also, memorizing them in the same order you have written down before will help you to memorize the words in a series of patterns, e.g., recalling certain words will be impossible unless you encounter the previous ones from that list.
To facilitate the situation, I developed a simple GUI program in C# which takes your digital lists of foreign words + translations, takes them in random order, presents to you either the foreign word or the translation, and asks you to type in the corresponding translation or foreign word. It provides the total score you achieved as a percentage of your mistakes to the total number of words you answered. There is also a very nice feature; it estimates the time you spent before seeing the word and typing in its translation. All errors are logged into an error.log file so you may start studying them again.
Utter frustration with the situation of the knowledge of only one foreign language, ambition to travel and talking to natives on their native language, get a promotion by evincing your supreme mind capacity over the petty others, ...
Using the code
The use of the program is of utter simplicity. First, have your vocabulary in with ' - ' separating foreign words from their translation:
fay - фея, волшебница; эльф
haughtiness - высокомерие, заносчивость, надменность (Syn: arrogance, superciliousness)
seraph - серафим
unremitting - неослабный; беспрестанный; упорный
augury - гадание, предсказание, знамение, (Syn: omen, presage, presentiment, premonition)
augur - предсказатель, прорицатель, пророк
callow - лысый, неоперившийся птенец, незрелый, неискушенный, голый
chaff - ерунда, дрянь, нарезанное сено или солома
intrepid - бесстрашный, неустрашимый, отважный
indefatigable - неутомимый, упорный, неослабный (Syn: unremitting, unabated,
aught - нечто, кое-что; что-нибудь
precocity - раннее развитие, преждевременное развитие
precocious - скороспелый, ранний, преждевременный
innate - врожденный, природный, прирожденный (Syn: congenital, hereditary, inherent)
limpid - прозрачный ( обычно о воде )
Then, click the green arrow button to load as many files as you'd like (sorry I'm not good at great GUIs). The '->' arrow will start the foreign-word-to-native quiz. As you are presented with a new word, you will need to type in the translation.
Press Enter after you type in the translation. The time is measured between the word appearance in the large text box and the moment you start to type the translation.
You just continue to press Enter in the answer text box and it will come up with another random foreign word. If you answer correctly, the word will be removed from the list; otherwise, it will be added to an errors.txt file.
To reverse the process to native to foreign translation, just click the '<-' button. X will manually remove the word from the list. And the last red arrow is to save the rest of your vocabulary to some file on disk.
Points of interest
The program can be extended with audio support. Have a database of recorded foreign words and use the Speech SDK to enable pronunciation of the words rather than their textual form representation.