On the programming side of IT, if you think you can wait for someone to throw a spec over the cubicle wall, you’re just another interchangeable drone … and you’re screwed.
Turn off the computer and go get some experience in the real world. Working on avionics? Go get a pilot’s license. Business systems? Go work in an accounting department or at least take some bookkeeping classes (no, QuickBooks is NOT real bookkeeping). Point of sale systems? Work at Radio Shack for a while.
Seriously, most coding is easy if you’re halfway competent. The hard part is knowing which problem to solve.