I am still rather young (Just turned 21) and only have a hand of finger counting of years of programming(c++ only) on me, but so far the greatest difficulty I face is the insecurity of not knowing if what you do is actually good or bad. Since you usually find out everything yourself and some documentation which only tells you what X does, you will do what you think is good while asking yourself whether or not this might actually be really bad in the eyes of someone who has been educated by a professional.
I as an example also don't follow any writing guidelines which are usually present in the code of someone who has had a teacher, but this comes from me simply thinking they are unnecessary if the code is very easy to read (By choosing smart variable names, excluding prefixes and I don't even know if "prefixes" is the right word).
There are also self-taught programmers who don't struggle with this kind of insecurity at all and just think they are fine as long as it works, but I believe that this is just pure ignorance rather than optimism.