My opinion:
As you know, it all depends. I've done a lot of both and can say that pair programming is by far the most effective when you're on a team that needs to solve something with a complex business logic.
Pair programming
1.1 You are not wasting time sitting on hacker news or anything. It's just not possible.
1.2 You are sharing what you learn as you go along.
1.3 The code gets so much better when two people are writing. More concise and easier to read because you are sitting next to a potential critic.
1.4 Less need for a code review.
1.5 You learn so much from sitting with someone else code wise and team wise.
Solo programming
2.1 You decide how it's going to be.
2.2 There is more of a try/fail approach that might be educational.
2.3 If we're talking about a straightforward task, working alone can be more efficient.
2.4 You get a sense of owning the code, with all the good and bad associated with that.
As for websites:
There are a vast amount of it out there. I suggest going on parleys.com or reading Kent Becks blog.