I resonated very deeply with this post. I just graduated with my degree in Computer Science. The difference is I am already in my career field, writing software. I consider myself very lucky for a few reasons I would like to point out in this response.
1) Academia does not teach how to program (I would say the greater majority of schools and programs in CS do not teach this). This means the burden of developing skills which are marketable fall on your shoulders in the case of pure programming.
2) There sometimes exists a huge mix match of conceptions: the job market expects you to know how to program because "that's what you learned in school", and Academia expects you to learn how to program in your career because "that's what you'll learn when you join the work force". At the end of the rope, your left there holding the burden of bridging those gaps.
I just graduated, and for all I'm concerned I could have written the very topic you posted here 2 semesters before I graduated. What no one tells you, is that your last year in your CS program should be 80% bridging that gap, and 20% staying in tight with Academia. That way when you leave your school with your degree, you don't feel overwhelmed with the next step.
Here's what I did, some of it may help, and some of it is advice too late:
1) Write software every day. Pick a language and master it. It doesn't matter what you write, as long as your writing (at first). During the last year in school, you should be working on your portfolio of computer programs you have written. Write a calculator. Write a CS-related calculator with conversions and helpers. Write a text editor. Keep writing every day. Spend about 2 hours a day writing, and more on the weekends if you can. Grab something simple and extend/build on it (write your calculator, then try extending it to have a "CS Mode" for CS-specific functions). The bottom line is that your trying to master a language, and you'll run into issues of software complexity and the inherit difficulties associated with managing complex software. Writing games are great (I did one using OpenGL and JOGL bindings), but just focus on writing lots of software and seeing it through.
2) Find an internship, and start it ASAP. Find a mid/large corporation with some flexibility in their internships. I say mid/large because typically they can afford to hire on inexperienced interns to do some cheap coding. While your there, you will want 2 things out of it: expand what you know about the art of programming, and plant seeds which may grow into a full time job when your graduated or when your ready (network and make relationships). This is what I did and I got an offer to come back full time after I graduated (the bridge was built). I still consider myself lucky though, because the management at the company I work for understands the dilemma and misconceptions some businesses have and what Academia thinks. I just showed them I was very willing to learn and work hard. In the end it's passion and work ethic that drives you there - period.
3) Join school organizations. I joined the student chapter of the ACM, which held monthly talks/speeches from businesses in the job market. When they gave their presentation (almost always software/coding related), the small number of students and the direct employer/company giving the presentation gave excellent opportunity to network directly and possibly skip past needing an internship.
4) Focus your talents during interviews on what you know well. When I interviewed for my internship this meant some Automata theory and Mathematics. Show them you have a brain, even if your lacking coding skills (which are generally developed over a long period of time, not learned in a class room over 1 quarter or semester).
Don't get discouraged, just find the passion in programming and focus in on it. You'll be fine in the end. Focus on your strengths during interviews, and expand your knowledge about CS/programming as much as possible.