David Colletta shared this link in comments to my recent post about team work. David's link was good enough that I thought I should excerpt it to increase the chances that my colleagues and students at Brandeis see it.
Here's an excerpt from it:
"However, the most rewarding experiences I had were when I was actively collaborating with others on the H-Store and Relational Cloud projects. We achieved more than I could have by myself, I learned more than I would have by myself, and most importantly: it is more fun to work with others. You have people to commiserate with when papers get rejected, celebrate with when you submit them, and to help you with tough problems. […]
"[…] To make this happen, you need to be willing to make compromises, build relationships and find mutual interests. You either need to work on someone else's idea, or convince someone to work on your idea. Ideally, when you find a really great collaborator, you will discuss and revise a concept until you find a version that you both like. I think making these sacrifices is worth it, and in retrospect, I should have done more of it." (from Farewell to MIT)
I am a passionate believer that a solid undergraduate education must include such experiences. To belittle them as "vocational" or "you can just learn that on the job" is short sighted and short changes everyone.
My personal knowledge is of Computer Science but the same I am sure can be said for other disciplines as well.