Number 1 was the biggest for me, coming into programming from an entirely different profession. I never learned how to code until I was about 28. I didn't realize that I brought what I call the "consumer attitude" towards electronics into my programming practice in the beginning. The consumer attitude is that machines
work. If they don't work, something went terribly wrong.
So when I made a mistake, I'd just crush myself with doubt and anxiety. It literally would hurt my brain and give me the sinking feeling that I'd never be able to do this because I can't code anything without screwing up somewhere.
But now, after about 6 years of doing it, I've developed an entirely different attitude. The correct attitude towards machines is that they do not work. They are broken by default. So if they work, something went terribly right.
Now, when I write a line of code, and it breaks, it's just business as usual.