I think you just need to find the right job. My first job was as a custom programmer - I worked on already built software, making slight changes to customize it for different customers. Because everything was already built, I didn't have to know ~everything~ -- I just had to know how to change things here & there. And as time went along, I learned more & more, to the point where I could build my own programs from scratch. I got pretty good at that, and learned some key fundamental concepts that I've built upon over the years.
I'm a .NET developer now. There are A LOT of moving parts - from databases to email servers & web servers, desktop clients, web services, console apps, file system watchers, services, loan balancers, DMZs, Active directory, phone systems, report builders & servers.... SOO many things to learn.
I can give you these pointers:
GOOGLE IS YOUR FRIEND. I guarantee you that whatever you're trying to do, someone else has already done something like it. If you're facing a problem, someone else may have already solved it. Google is a good developers best friend.
DRAW. I think it's very important to learn to express the ideas that you have for the software you're building on paper. In other words, you need to be able to draw what's happening. You went to school for it, so you know the symbols for databases & relationships, and you know what kinds of UI controls are available. Draw them on paper, and write notes about how everything is going to work. If there's a database, draw up the data model. If there are different machines (i.e. web servers, db servers, web services, client apps, etc.) account for them as well. Drawing diagrams of your architecture, UI, database, etc. are very important to be a successful programmer.
NETWORK. Whatever language/tool you're using, find a community or forum an join it. Try to help other people solve their problems, and ask the people there for help when you have problems yourself. By having other people at your disposal to help you when you get stuck, you make yourself that much more versatile.
DEBUG. Previously I said google was your best friend. Well, your second best friend is your debugger. Hopefully the language/tool you're using has a good debugger. If so, you should learn every possible thing you can about it, and become an expert with it. You should be able set breakpoints, step through code, watch variables, see the stack trace, and even manipulate code on the fly. The debugger is HUGE in helping you to understand how stuff works. It's like being able to cross-section an engine in a car while it's running.
Sorry this is so long, I hope it's useful. Keep your head up, keep trying!