Lets see where this goes with votes, should be interesting...
Why are employers so picky about hiring software developers when there is a shortage?
Ok, so you just got your degree and now you want to work - I hate to break it to you, but academia and the real world are very very different, and many companies are simply not willing to nurture a new software developer during that transition period.
I hire software developers - I've hired a lot of software developers in the past year. I mainly hire mid- to senior-level developers, and thats precisely because we want the developer to be somewhat productive in their first week on the job.
With an established codebase and project, it can take developers a while to come up to speed - you might know how to code, but you don't know your new employers approaches, tooling or processes. You don't know how to leverage the existing codebase to produce better solutions. And we know this when we hire - we know that its going to take weeks, sometimes 4 to 6 weeks, for a developer to come up to speed and have everything gel for them.
And thats an experienced developer. You are not an experienced developer, you are fresh out of academia, which means that you have baggage - you were taught to solve software problems for your academic qualifications, and all too often what you have been taught does not translate well into the software development real world.
For a new graduate in their first software development job, having demonstrated no experience through any means other than their degree, I wouldn't expect value from you in the first year - you would have to be nurtured and helped to grow. And unless you are willing to work for a pittance, most companies don't want to make that investment - because you will probably leave before or shortly after you start adding value.
I've worked with degree holders who couldn't code their way out of a wet paper bag.
I've worked with people who didn't finish school who make me sit back and stare at them in wonder.
I've worked with pretty much everything in between those two extremes. Yes, there are good degree holders out there, and yes there are good degree holders who have just graduated out there. I'm not saying there aren't.
So, how do you improve matters?
Experience doesn't just come from paid jobs - as a software developer, you automatically get noticed more if you actively take part in open source. Start a project, scratch an itch, or join an existing project and get committing to the codebase - put that on your CV, have a link to an active GitHub account with your code on it.
By doing that, you grow as a developer - and you grow publicly. You interact, you learn that real world requirements are very much incomplete, that bug reports are often unhelpful, and that there is value in maintaining and improving existing codebases.
Sorry for the brutal honesty, but thats the way things are.