Programming or knowledge about that has such a high ceiling that the own knowlege always looks like nothing. I always tell myself i do alright to turn down my insecrurities.
Some cartoonist said everyone has ten thousand bad drawings in them, and the only way to get them out is to draw them.
Everyone's supply of bad code is limitless.
The engineering maxim is that to build something right you have to build it twice, but really, you can keep coding the same thing over and over and over, indefinitely, and you'll keep finding ways that past-you was an idiot. You'll discover there's some terribly clever and beautifully clean way to solve a problem that was once a tremendous pain in the ass. You make this look like progress and growth by abandoning things (sorry, "shipping") and using those clever new solutions in new projects.
In other words, we can't worry that our code might be terrible. It is. Everyone's is, to a more trained eye. And if there's some living ur-coder who is above all others, they look back at things they did last week and mutter "well that was dumb."
I mean that's exactly me only that my boss and some coworkers who are super nerds keep praising my working-for-only-1-year-now ass so it's a battle between insecurities and people telling me I'm doing good.