A career in programming consists more of “on the job learning” than “on the job training.”
Training
Training as something someone else teaches you to do. There may or may not be any real expectation of advancing the concepts covered in the training. The analogy would be that if you work in a sprocket factory, you are not taught about the design of the sprocket nor any concepts behind the design of sprockets, you are taught how to make sprockets given direction. Training is limited, it can only take you so far in a programming career.
Learning
Learning is progressive and continual and a critical necessity for a career in programming. You should spend lots of time learning concepts, principles, and techniques. Then you should attempt apply and further those ideas. A good programmer is always learning from their experiences and asking, “How can I do this better?,” “Have I clearly communicated my intentions?,” and “Did I do a good job?” Will you ever find that you have done a bad job or written crappy code, most certainly! I think that realization is a sign of progress.
TLDR; Be a good programmer, don’t stop learning.