This one seems obvious but you’d be surprised.
Just because you’re an amazing programmer, doesn’t mean you know shit about design, management, or even some new programming technique/framework.
That cuts every way.
Most illustrators are useless interactive designers.
Most CEOs at Fortune 100 companies would be awful in a 6 person startup.
Your janitor might speak 5 more languages than you.
It’s cool if you’re already great at something, but that doesn’t make your thing any more important than anything else in the bigger picture.
Most people are pretty good at something, but miserably bad at many others.
If you’re really good at something, that’s wonderful. Use some of the head start your success buys you to surround yourself with books, people, and experiences on what you’re not really good at. The work it takes to learn the basics about something foreign and hard for you will expand your skills and perspective in ways you can’t predict. When you hit a wall on something you're truly terrible at, take note and find someone you trust who is great at it to take over.
Doing complicated thinking doesn’t always mean you’re a great listener and learner. Being a great listener and learner means you’ll always be able to find a way to get great work done.
I’d trade “smart” for “clever, and a good listener” any day of the week.