I believe there are at least 4 traps every programmer needs to avoid.
The first is pride
Pride is the trap of convincing yourself that you don’t need any help from anyone. You believe you can do it all by yourself. You say things like: “I got this.” “I’m the architect.” “I’m better than them”. The truth of the matter is you are only as strong as the people you worth with; if you don’t believe me, ask a weight lifter.
The second is ignorance
Ignorance on the surface is not really a bad thing, but there’s a difference between not knowing and not knowing what you don’t know. This is unconscious incompetence. You can avoid this trap by investing time in learning things beyond the problem at hand; asking questions and not pretending you know something when you don’t know (especially when you think you should know). To avoid this invest time in your growth and ask others, have the mantra that the only dumb question is the one you don’t ask; because if you don’t ask, you’re still dumb because you don’t know.
The third is laziness
Whereas with ignorance, we don’t know or pretend to know, with laziness, we refuse to do what we know because “you just don’t feel like it.” It’s a refusal to get up and get going. A programmer who waits to do something only when he/she “feels like it” will never accomplish anything great.
The fourth is apathy
The fourth trap is the apathy trap. It’s adopting an attitude of “I don’t care”. It’s when you don’t care enough to refactor the code; when you don’t care enough to keep things tidy; or you don’t care enough to make the test pass.
What makes a great programmer
All of these traps, if not avoided, can jeopardize any system. We can’t always avoid them, but we should always be aware of them. A great programmer isn’t one who doesn’t make mistakes; a great programmer is one who learns from them and doesn’t repeat them.