I have learned programming by both at recognized school and self-studying. If there's a sample, I can develop similar thing easily. But I don't understand any single purpose there. For example, I haven't learned and done any j2se coding & today at work, I have told to make a screen and validate and so on. I just studied the similar screen in that project and just do copy paste. And yes, modify something. Then my task is accomplished. But I don't know some main things in those coding like mediator, logger and so on. I tried to figure out what are those but I don't get it just by theory explanation. One of my geeky friends explained me that Logger is to send message to system. And I think "Send Message, what's this?" And today, my supervisor told that it's for debugging! I lost my confidence by thinking am I too far away from programming?
Here's my question: Is programming like this? Can we do it without understanding every single line of coding. I want to understand those concepts well till I can use it. If I study theory, I can't write codes according to that theory. If I study coding, I don't know it's theoretical purpose. What should I do?