There are a lot of people who want to work in the field, and not a lot who are particularly good at it. If your problems are trivial and your budget is large, you can find plenty of warm bodies to sling Java for you and they'll probably manage something close enough to what you need eventually. If you're doing something hard or can't afford the cost of making your developers work in a straightjacket, it's much harder to find someone who can do the job. Programming is a great career if you want to eat, breath and dream code, because if you're good competition is slim. It is a bad career if you just want to trade a third of your day 5 days a week for decent money. People who talk about programming on the Internet make it sound like it's great for everyone, because people who want to spend their time talking about programming on the Internet are usually the former.