All language learning comes down to a few key principles. Relaxation, discipline, organisation, and practice.
You should always try to relax before setting yourself up for learning. If you're in a bad mood you won't learn. If you're angry or pre-occupied you won't learn. Keep yourself awake, hydrated, and calm. It sounds simple but it's a step many people forget.
Second, you need discipline. German is ranked as a Category 2 language, which means the FSI believe it'll take around 750 hours to learn it and become reasonably fluent (not natively fluent, but decent). 750 hours though is a long time. If you study every day for 3 hours a day, it'll take you almost 9 months to become fluent. If you're like me and study for 2 hours or so twice or maybe three times a week because you lack discipline; it'll take you 3 YEARS! It's the step I most need to work on. There's no fast way to learn this stuff.
Organisation is key. Make sure you do equal amounts writing, reading, speaking, and listening. The last one is sometimes hard to do if you don't have access to a native speaker. Some tips I've found helpful is using mnemonics. Search on YouTube and you'll find some guides to using it.
Practice is important. You need to practice speaking and listening, so where possible use the language; even if all your doing is saying. "How much is that sausage?", "Thank you, I'll buy three please", repeatedly. Practice is the difference between knowing the language and being able to speak the language.
As for resources, I've found the 'Collins Easy Learn [Language]' audio books to be reasonable for beginners, though they're a bit basic it's a good place to start. Avoid 'Rosetta Stone', it's a terrible program that teaches nothing useful.
I hope this was helpful. Good luck.