I haven't read the other responses but here's my take
I'm going to go out on a limb here and say that humility might be the best course of action.
Keep learning, and growing. It's harder for some to do that when your coworkers are lower in skill because you won't have the mix of talent and experience. You need to learn not just in your field, but everything related to it: communication and interpersonal skills, business. Taking an interest in those and putting time into practicing or reading up on them is a great way to advance yourself.
Always be open to learning from your peers, but you don't have to think that their way is the best or only way. Even if they have more experience or seem smarter they're not always right (and the fact that they have the attitude of some mid-level developers means they are likely to still make the same mistakes).
Don't get too down on yourself for screwing up. Remember that you need experience just like everyone else and there's no shortcut for that. It will just be a matter of time before you're the same level of smartness that they are right now. You might close the gap some.
Keep kindling your passion for learning and improving.
My dad gave me my first push in QBASIC and simple batch programming around the same age, but ultimately it was my self-motivation that led me to learn C and C++. I'm glad it worked out that way because I have a better appreciation for garnering the underlying skills that let me put ideas that I have in motion.
I know it ultimately comes down to a person to execute an idea, but also showing that person that they can be resourceful by themselves in the first place is such a great potential.
I was about to switch to crunchbang today and realized it required too much customization to get it the way I need it. Sticking with unity for at least a little bit longer...
I'm going to go out on a limb here and say that humility might be the best course of action.
Keep learning, and growing. It's harder for some to do that when your coworkers are lower in skill because you won't have the mix of talent and experience. You need to learn not just in your field, but everything related to it: communication and interpersonal skills, business. Taking an interest in those and putting time into practicing or reading up on them is a great way to advance yourself.
Always be open to learning from your peers, but you don't have to think that their way is the best or only way. Even if they have more experience or seem smarter they're not always right (and the fact that they have the attitude of some mid-level developers means they are likely to still make the same mistakes).
Don't get too down on yourself for screwing up. Remember that you need experience just like everyone else and there's no shortcut for that. It will just be a matter of time before you're the same level of smartness that they are right now. You might close the gap some.
Keep kindling your passion for learning and improving.
-mh