This is raw content, possibly from a cross-post licensed by its author, that needs to be cleaned up.
The best single piece of advice is to avoid trying to put an opponent on "a hand", and instead to think about a range of hands.
It's a skill that you're constantly learning, and I don't claim to be that good at it. From the preflop action start narrowing down the range of hands ("Does this guy raise small pocket pairs? Oooh, now this other girl rereaised. Would she need QQ or better, or would she reraise with JJ, TT, AK?"). Then narrow them down still further in each betting round as you get more information. Do this even when you're not in the hand.
NLHE hand reading is tough to refine this way because you see so few showdowns. When you do, that's a gold mine. Does the shown hand fall in the range you expected?
But don't try to play Psychic Friends and think "I put him on the queen of diamonds and the jack of clubs," unless the action of the hand has led you to such a specific read. Instead think "I put him on a medium pocket pair, 99-77, or possible middle pair of sixes with some extra draws. There's also a possibility he could be slowplaying a monster, say 20%, so I will have to consider that in how I play the hand."