2. Thinking their job is to write code, when really it's to solve problems. https://codewithoutrules.com/2017/07/10/stop-writing-softwar...
3. Falling into dichotomies of good code vs. bad code. It's all about goals and situation. https://codewithoutrules.com/2017/11/07/no-such-thing-as-bad...
Another problem junior coders have is not knowing what to name things. Coding is just as much about writing code others understand as it is about writing correct code.
Finally, I'd consider self-doubt as one of the big obstacles. Your colleagues may seem so much better simply because they've worked on a large code base longer. This ties into my first point-- if you are patient, you will also learn the code base and become proficient at it.
Thinking because it works the code is good enough.