I've more or less moved out of programming now but I did it for 30 odd years in the finance industry across various projects. I've used something like 8-10 operating systems and 20+ languages. My code is pretty robust, during dev maybe 1-2 bugs a year were raised against my code and post go live I'm aware of 1 bug that turned out to be me and that was a fairly trivial one. 90% of what I did was donkey work, read a message from IBM MQ, parse it, dump it out to a db, make a few decisions, call a stored proc etc. Mostly C and Unix. It was all commented to hell and back and very clearly structured and I also enjoy documenting, which I do in spades. However, I wouldn't have a clue on writing a compiler, doing any graphical work, etc although I'd know where to look should the need arise. Key point though is, I'm entirely self taught and have zero college. I went from school straight into my first job based on a 30 minute interview and the fact I programmed some 6502 on an Atari 800.
The message being, a lot of programming doesn't need super skilled people, anyone with a bit of common sense, a logical mind, a chunk of curiosity and hopefully a good quality threshold can do it.