I had my code review today. After preparing hard for it, it went well. We found one area where I wasn't handling all of the boundary conditions as cleanly as I could and another area where I'd overoptimised a loop and thrown readability and maintainability out of the window.
On the one hand, it's annoying to have someone else find a hole in my code, on the other hand, it's good to have found it and to have learnt something about how to make code better. I'd trade the anxiety about 'opening my kimono' for the benefits of improved code and the learning opportunities any day.
Some of the 'learning points' I got from the exercise include the benefits of drawing a diagram to make a problem clearer. We drew a matrix of possiblities for certain end conditions, then went through cell at a time and worked out what the outcome would be. I'd initially tried to do it in code comments and had missed some of the complexity. The other thing I appreciated was being able to bounce ideas of another person. My dream is that XP practices and pair programming would result in more interactions like this.