Emotional resilience, and belief in one's self are common traits of many successful people.
The better developers I've worked with definitely demonstrate this. When debugging code or working through a problem they seem certain they'll be able to fix it, even when there's no solution in sight.
I'm the opposite of this. All too often I find myself thinking "it's too hard, I can't do it, I'm not intelligent enough.." etc. I know it's counter-productive and I try to fight it but these thoughts often seem to win.
I have failed at most things in my career so far. It might be that I simply don't have the intellect for it, but I suspect that my lack of self belief has also played a role.
Does anyone have experience of beating these feelings and becoming a more emotionally resilient person? Did you achieve more as a result?
Sometimes (through a series of events), people develop the Dunning-Kruger effect among their peers, so whereas you may be looking as though you are "fixing the problem", you are just mucking around and you know that those around you don't know any better. That is how long-standing bugs remain in large codebases (among other flaws of being human).
"I can't do it" is the wrong way to look at an issue. You must at least try. Try and fail a few times, then get some help. Acknowledging that you don't know something (after showing you have tried) makes you human and builds bonds with those around you.
Don't fritter away your life wanting to be "that guy" who can fix everything from wrong CSS to issues in Assembly code.
Try your best to do your work within your capacity. Learn and grow where you can. Remember though that work is work at the end of the day.
Nobody is going to remember that time 6 years, 5 months ago ... where you spent 80 hours in 1 week at work trying to fix an issue so that clients could add 1 more item to their shopping baskets.
Being able to live outside your work will give you more emotional resilience. You will have something greater to look forward to then to slog your organism away to enrich somebody who probably has and will have more money than you (in your lifetime).