I am a slow learner. Despite loving math, when I first started at a community college I placed into intermediate algebra. Luckily I had an awesome professor, but it still took a huge amount of study time for the material to really sink in. (Interestingly, as I got into higher math, I actually found it easier and easier to absorb new material, even though the material itself was getting harder. I suspect this is because, with practice, I became more proficient in the specific mental processes involved in picking up mathematical concepts.)
The upside of being a slow learner became clear to me when I began tutoring others in math. The student would ask a question, or I would identify from observable patterns which concept the student was struggling with and immediately remember when I was confused about the same thing. More importantly, I would recall exactly how I got from not understanding the concept to understanding it. This allowed me to connect with the student from their starting place and use guiding questions to lead them through a very similar process.
Tutors who tended to pick up new concepts almost instantaneously often seem to have a harder time when students don't understand their initial explanation of how a problem is solved. I've even had a fellow tutor ask me how I found the patience for students that didn't grasp things after multiple explanations. From their perspective, if the student didn't understand their explanation they couldn't understand why not, nor could they figure out how to break things down any further. Perhaps my patience for others developed as a result of needing to have so much patience for myself.
Whenever asking guiding questions during a tutoring session, my goal is to get the student to think. If the questions are too easy, I risk just giving the answers away, and the student is taking my word for it on some level rather than thinking through the problem themselves. If I make the questions too hard, the student is just as stuck as they were initially. They aren't thinking in that case either; they're frozen. What I usually do is start with the more far reaching questions, then if the student is still stuck I keep breaking the questions down into smaller parts until they begin to make headway. The better I can analyse my own learning processes, the finer the pieces that I can break problems into for others.
This concept of starting where a person is and leading them through a solution applies to giving people advice as well. I remember giving a someone with social anxiety advice on how to ask a guy out. I could get very detailed with the steps, address every fear, explain how it was possible and worthwhile without sugar coating anything or discounting the risks. The reason my advice was helpful in this case is because I, too, have social anxiety and have been in the same situation where I was trying to teach myself to ask guys out. I had to work very hard to overcome my own fears, and I had little guidance for how to do so, as unfortunately I hadn't yet discovered the term "social anxiety" and the associated resources at that point.
People would try to give me advice when I described my difficulty, but one of two things would happen. First and by far the most common, they would tell me to just do it. They might have one or two tips (usually the same ones I already found from a google search), but when I tried to get more details they would either look sorry for me, tell me I was making it too complicated, or revert to saying "It's hard for everyone, just do it". The other reaction came from people who didn't quite know how to accomplish the task either. They tended to be more helpful as they would take the time to seriously consider my questions, but again there were a lot of missing pieces as their advice was mostly theoretical.
From this I could conclude that one can give the most useful advice when one has experienced the same issue to a comparable degree and figured out how to solve it through personal experience. In addition, the harder one had to work at resolving the issue, the more details are readily available for communication later. Since every one is unique and has different strengths and weaknesses, it can sometimes be hard to find the perfect person to get advice from, especially if one is struggling more with something than the general population. That's why support networks are so useful; you can find others who have dealt with similar issues and thereby increase your chances of getting useful advice. In addition, it can help counteract the feelings of alienation that can occur after spending many years surrounded by others that don't seem to struggle with the same things. For social anxiety I recommend this support forum which I found incredibly useful.