I wanted to be a programmer from the age of 8. I noodled around a bit in BASIC, and then taught myself C at around 15 or 16. I was easily into my 20s before I could even reasonably claim that I understood C.
I've turned 40 this year and even though I've written a lot of code in the last 30 years, I still don't really feel like I'm a good programmer, so I tend to always blame myself before the libraries or the compiler or the daemons or the hardware.
I've not been programming as long, but a fair chunk of years now. I feel the same way. I think being self taught makes it worse for me as I'm in a workplace where the majority of people are hugely intelligent and have university degrees, I just felt like I didn't belong. I'm just now starting to come to terms with the idea that I'm actually as good at what I do as anybody, so I no longer feel like as much of an impostor, but this has done nothing to change the fact that I still think I just don't know enough. There is so much more to learn that I haven't even touched on, it is both intimidating and inspiring. Reading similar sentiments from people who have been programming for much longer than I have is giving me the sense that this feeling might not go away, ever.
You can get a pretty good assessment of someone's C++ knowledge by asking them to rate themselves out of 10, and then subtracting their answer from 10.
If they say 9/10 and they are not Bjarne Stroustrup, it's a good bet their actual ability is close to 1/10.
Yeah, if you still call yourself bad at something you've practiced daily for thirty years, most likely what needs to be corrected is not your skill set but your definition of competence.
If you don't feel like you know less and less every year that you are doing something then you are not gaining any wisdom and will likely never be truly great at it.
Plus, programming is extremely broad. You could spend 10 years mastering embedded linux programming yet know little to nothing about data science programming, game programming, GPU/VFX/shader programming, HDL programming, etc. There's simply too much to learn.
Yes! This is a healthy attitude. Others say don't beat yourself up about it, I would say it's not about that, just not making assumptions that are useless.
Sometimes it is a network error, or a hardware error, but at the end of the day, you can't just point at that and blame it, you've got to try to work around it, or at least fail in a way that looks like you tried and point out what the source of the issue is. It feels like playing whackamole sometimes though.