It is said that a true master learns from his students. Since I'm tutoring at university, from time to time a question or a comment from the students I'm working with made me to see something from a different perspective, you get deeper insights, etc. So, what have you learned from your students/junior developers/... ?
I've learned that no two people learn exactly the same way. Some need repetition, some need gentle encouragement, while others need constant direction. Rarely I've come across people that need no teaching, instead they need a person to throw ideas off of and analyze a problem.
Note: This is workplace teaching.
I have had many students who don't get as much information from a graphic as a list or worked example. I need pictures, and thought everyone else did. I'm ashamed to say it took me years to work that one out.
When I was teaching software development, I learned that when you don't know something and your students do, never take the defense. They're probably just dying to take the floor and explain their brilliant solution. If you listen to them carefully and merely understand their solution, they will still respect you. If this happens too often, though, you will lose their respect. Try to be the one who knows more most of the time.
[Later I'll try to rewrite this so it sounds like a page from The Art of War]