For most people I know, learning means remembering things, building a knowledge stock up there in ones brain and access on it once this knowledge is needed. To the ones who think so: sorry; that's bullshit. That's definitely NOT, what our brain is built for!
Learning means obtaining an ability, understanding how something works.
Unfortunately, most schools and teachers also didn't get it and so they ask students to learn books by heart, even if they know that these students will forget about the content of the book approximately 2 hours after the exam.
So wake up!
And here is how to:
When learning, no matter what you are learning, your brain is linking, not storing. Get rid of the thought that your brain is bio-computer, a huge database - it is not.
So to learn means you gotta let your brain make these links, so understand and use the stuff your learning, get interested in it, go in deep. It's not about learning for an exam - that would just mean you are pushing the responsibility to obtain the skill for you on your teacher. I know that a lot of teachers are often enough not able themselves to remember how they learnt what they know; they therefore teach a some unlinked mess and in the end, the only thing you've got is a bunch of knowledge-chaos which your brain will get rid of as soon as possible.
Let me give you an example (you already know which one I am going to give. Right, learning Chinese).
A lot of people spend hours on learning Chinese without getting any remarkable results, getting frustrated after at most one year and therefore drop it. What makes learning Chinese different from other languages is that it is made up of two parts:
the language itself (words and grammar) as well as learning the characters. I suggest you to learn both at once - one alone is nearly useless and it's impossible to understand crucial parts of the language without knowing the characters.
Anyway, apart this tiny (but time-consuming) difference it's quite the same as learning any other language.
1. Getting started
The most important thing in learning anything but especially in learning a language is to be patient but extremely constant. Don't try to learn 50 words per day - even if you remember them all on some stupid cards or something, you won't remember them in a conversation and you are probably going to forget them very fast again. Be slow. 5 Words a day every day will do it. If you do so and you manage to remember all of them, after year you will know more than 1800 words which would mean that you know the language fluently. So my suggestion for a beginner would be
: start with 5 words and 2 characters per day; after 10 weeks go up to 4 characters per day. Like this you will learn 1000 characters in one year what means that you can read more than 98% of them.
2. Use it!
Now that's the really big mistake most learners do. As described above, they just learn it without using it. Put all the new words in sentences, write a short story using them, use them in a conversation with a native (or an other student) when you are a little more advanced. It's useless to know some words passively in the back of your head, get them into your active vocabulary.
3. Repeat them.
When you write your short story, try to include all the words of the past 5 days in it, also do so in conversations. Only saying them once is just not enough, you gotta try to think of several situations where the new word is useful, so that you explain to your brain: hey, snatch it; it's something crucial.
Keep it up one year and you did it!
But this is another problem for most of us: keeping it up. The 30 minutes everyday are not really much but I know it from my own experience that it is sometimes just too seducing to just place oneself in front of the TV and relax instead (especially after the first few weeks when you're first arise of passion for the new language ebbed down). Well, there is something that helps: Just do it!