First off, you've already figured out one of the challenges: bootstrapping your career is one of the hardest things you'll have to do. Once you have about 3 years of experience, you'll be in demand. Side note: 3-5 years experience is the most often requested amount in job postings because you've gained enough experience not to be a net drain on productivity, but companies also believe they can still get you for cheap.
So, I have a few pieces of advice regarding how to get your career started.
First thing: Complete your degree! When you're starting out and you have no applicable industry experience, that degree is the best thing you'll have going for you.
Here are some additional things (not exclusive to one another - you could theoretically be doing all of these):
- Starting applying, and hopefully interviewing, right away; especially if you're only a couple of months from graduating. You may as well start now to get some interview experience under your belt. Apply for anything in the field that looks remotely interesting and doesn't require a ton of experience. If it says "junior programmer" or something similar, that's you. Keep in mind: just because you land a gig doesn't mean you have to take it! Part of the interview process is for you to evaluate the company you're interviewing with. If anything feels off, or if the details of the job that they give you don't sound good, you can always turn them down. You can wait until after the initial interview to tell them that you can't start until after you gradate. However, if they ask you about it, be honest. Good companies will understand. Anyone that would get mad about that is someone you don't want to work for. The point here is to build up your resistance to the interview process. Get comfortable with it so that when the interviews really count, you've smoothed out all the rough edges. You'll want to bulk up your resume with any challenging programming tasks that you've taken on so far. When I started interviewing after college, I listed a few college projects on there, such as building a micro-pascal complier. Those count, too! Keep in mind that you're probably going to have to deal with a fair amount of rejection. Many of the places you apply to, you will never hear back from. It's ok, don't let that deter you!
- Look for contract work. There are a lot of small, independent contract jobs out there. Many of the junior programmer candidates I've interviewed have been going from one small contract to another to build their work history. You will probably want to set up an LLC first before starting out, just to protect whatever assets you have. Assuming you're in the US, you'll also want to make estimated tax payments assuming you're doing 1099. This stuff is a pain, but it also isn't as hard as it sounds. Also, make sure you get everything in writing. The key to this is being extremely organized and saving everything so that the client can't screw you over. My advice also would be to never do any unpaid work for a client.
- It was mentioned before, but it's worth re-iterating: contribute to open source. This is an option that didn't really exist when I was trying to break in. It sucks that you won't get paid, but these can be tremendous resume-builders. Open source is especially valuable because a potential employer actually gets to see your code. I can't tell you how much I would like to be able to see the code candidates that I've interviewed were writing. If you don't have any interviews coming up or paid stuff to work on, make contributing to an open source project your own part time job. Schedule out hours for it and everything, even if it is just a couple hours a day. Treat it just like you would a real job. The best part is that it doesn't really matter what the project is; so do something you're passionate about.
- If you don't have one already, create an account on stack overflow right now. Stack overflow is the best resource on the internet for programmers. If you're just starting out, there are some simple things you can do right away to gain reputation that the site highlights when you sign up - make sure you do those. You'll want to gain enough reputation to start upvoting things. If you're working on something and you find a stack overflow answer that helped you, make sure to give it an upvote! Obviously that helps the community, but it'll also help you; you can always go back in your vote history and find it again. I can't tell you how many times I've done that. Asking and answering questions on there is great for your resume as well. I always view contributions to stack overflow as a huge plus on resumes that I see, because then I know that you're a programmer that will help others on the team get better. That is a tremendously valuable skill.
The first job is the hardest to get, but we've all had to do it, so you know it's possible. Good luck, and don't give up!