I only started learning the 2-look OLL and PLLs yesterday, but it doesn't look so hard. I consider myself to have a very poor memory, but I enjoy learning languages and have picked up some handy memory tricks and techniques over time. Because I have only started learning the algorithms, I'm not sure how much some of these will apply, but these are the areas which I am exploring.
1. Learn to group common elements.
Look for sequences of moves that appear in multiple algorithms. For instance if there is a sequence of four moves that appears in 4 algorithms, then you can either learn all 4 moves 4 times... or you can learn the sequence one time and then apply the whole sequence for the other algorithms. By looking at a sequence of moves as a single group rather than individual moves, it makes things much easier on you when you come across that same sequence again. I managed to memorize how to write 2000 Japanese kanji in only 3 months using similar techniques.
2. Develop visual mnemonics to help memorize some moves.
For instance, one of the algorithms I use starts out with "R2, D2..."
Hey, R2D2 is that robot from star wars! I can think of that when I do this move to help me remember. You can get creative.
3. For similar moves, develop mnemonics to help you keep them distinct.
For instance when doing PLL, I use the algorithm F2 U R' L F2 R L' U F2 to cycle 3 pieces clockwise, and F2 U' R' L F2 R L' U' F2 to cycle them counter clockwise. How do I keep it straight as to which is which? Well notice that the only difference in the two algorithms is that one contains U and the other contains U'. It just so happens that when I want to do the move which cycles the pieces clockwise, then I simply have to turn the U face clockwise! This makes it extremely easy for me to keep those two algorithms separate.
4. Spaced Repetition
Spaced repetition is an incredible technique that has been the number one most effective thing for helping me to learn and retain information. I'll spare you the gory details, but it basically goes that if you learn a new piece of information today, whether you study it 1 time or 100 times, you are still likely to forget it a week from now. However, if you can study it today, then tomorrow, and then 3 days after that, and then a week after that... you can retain the information with minimal time spent studying. Using spaced repetition software such as
Anki, we can make this process very simple. It works essentially like flash cards. You put a question on one side and an answer on the back. For the question side, you can put an image showing a certain situation, and the answer would be the algorithm that should be used to solve it. Or perhaps the question side can be an algorithm which will set up the situation for you to solve, and then you can physically solve it on your cube.
Spaced repetition is a technique for remembering large amounts of information over a long period of time (ultimately, forever). Some algorithms are pretty common and you may not need to do this with them. However some algorithms apply to situations that might only come up under very rare circumstances. Are you going to simply remember those cases when they happen to come up without refreshing it regularly?
5. Initial Memorization
While spaced repetition is useful for memorizing data over a longer period of time, the software isn't so good for initially learning. However the same techniques can be applied by yourself. When learning an algorithm, do it a few times while reading the algorithm to get a feel for it. When try to perform it from memory. If you cant get the whole thing, try to get as many as you can, and keep trying until you have the whole thing. Then wait a minute and try it again. Wait 5 minutes and try it again. Wait an hour and try it again. Wait until tomorrow and try it again.
6. Muscle memory vs regular memory
Your ultimate goal is to get the moves into muscle memory. This requires doing the moves hundreds of times. This is a slow and boring process so I do not recommend trying to learn algorithms this way. If you commit the algorithms to your normal memory, then over time, as you perform them while solving the cube, they will eventually move to your muscle memory without any additional effort on your part.
7. Consistency
When learning any large amount of material, the best way to make it all the way through is to develop good habits. Try to learn at least 1 new algorithm every day. If you can't learn one, try to at least review your old ones. Don't get into a situation where you do nothing. Once you go one day without doing something, its very easy to skip it the next day as well. Before you know it, you haven't reviewed or learned anything in a month, and you forgot everything. If you have trouble with this, it is useful to set aside a specific time each day, such as right after you wake up, or before you go to sleep. This helps you to develop a routine.