One mistake that used to affect my productivity was the "I will fix this myself" mentality. I always stayed with blockers and tried to fix them myself in the false intention of trying to achieve. Now I know better. Ask for help early enough and move on. We work in teams and communities for this reason of complementing each other when we get blockers.
Also, I underestimated communication. I remember implementing dependency injection on some .NET codebase and merged the biz logic. When guys asked what I had done, I did not explain myself so much. I felt that they had to do some homework themselves and didn't want to labor. We reverted and when they got to read and understand, we went back to that implementation later. If I had communicated clearly what I had done, we wouldn't have gone through that much much time reverting and then pushing back the dependency injection changes.