Don't follow your passion. Passion will come if your work is meaningful, you are competent and respected for it. So instead work on your competency in whatever field. Leave if the environment will never respect you anyways.
All software problems can be solved if you work on it long enough. Do not give up just because StackOverflow does not have the answer.
A really good question to ask for a task is "How do you know you are done?" It might prompt to clarify requirements. It might prompt you to make things more measurable or testable. It makes you think about implicit things like following code guidelines. It makes you better at estimating time.
Never assume anybody is stupid. Instead, figure out how these intelligent, well-intentioned and experienced people have come to a decision which is stupid now.
Do not just fix symptoms but (at least try to) fix the root problem.
Participate in discussions instead of just listening. If you are wrong, then you learned something at least.
Sit together with experienced developers. Watch how they use their tools.