First, if you feel like you're not ready to be a professional programmer, that's about the right feeling. That's how I felt when I was about half-way through my CS degree, and had I not worked my way through uni, I'd have crossed the stage unqualified to code my way out of a paper bag.
But you will improve your skills fairly quickly and even a bit predictably as you get that first job and start learning from others how this "software engineering" thing is done. The key to success is to understand that you will learn from others, including others you might disagree with or not get along with so well. At the peak of my CS career (I've since moved on to other things), I lead a team of 12 developers for a major software vendor. All the new hires thought they were really smart. The ones that listened advanced rather well and the ones that kept thinking they were really smart didn't.
But enough of that. Let me share with you my observations after 31 years in the software business.
When I first started, I slung code. And that's pretty normal -- most of your assignments in uni were probably very small and that's what a lot of people do with small coding projects. They sit at their computer and they keep on typing until the problem is solved. There's nothing wrong with that and if you develop some good rapid prototyping skills, the ability to sling code will pay off well in the future.
After about five years I had a fairly large body of work -- some of it had been open sourced (we used to call it "public domain" -- sticking a notice in the source code that says "this software is in the public domain"), some of it was "No commercial use" or "You can do anything but sell it." There was no GPL. But what I learned after about five years is that my code stank because I couldn't make sense of anything I'd done more than a few years ago. And from this you'll learn that comments are your friend -- code I wrote in the late '80s had a nice code-to-commentary ratio. Code from the early '80s -- not so much. But this gives you an idea of the problem -- a four year uni degree isn't enough time to learn what you're doing wrong.
After ten years I started needing to reuse my own code in ways I never imagined. Some of the code worked out, some of it didn't, and over the next few years I got tired of reworking my code and learned how to be a software architect. I have code in the open source world that is now 23 years old and some of the original structure is still in there. That is what a good design and a solid architecture looks like -- old code that has stood the test of time, because computers today are nothing like computers 23 years ago. My phone is more of a computer than the PCs I had 20 years ago. So, you'll start to learn how to actually design software, and that's really not something you can learn in a 14 to 18 week CS class that meets 3 hours a week. Right? When I was an architect I'd take months to design the software that was going to be developed in the next release. So, start to look for patterns -- and that's one of the things about object oriented languages that makes them attractive (if used properly). They make you think more. Every time you write something, think about the future.
From years 15 to 25, I lead a team of developers. Some were new hires, some were experienced, and I had to deal with what I had because I wasn't a manager who could go hire just the people I wanted. Somewhere along the line that's what you're going to have to learn to deal with -- different people on your team are going to have different skills and abilities. I had guys with good networking skills, guys with good multi-threading skills, and guys who were just generic developers. The people who moved forward in their career were the ones who got along with others and were able to learn from them. When you get that first job, find a mentor. Don't go for the brightest or whatever, find someone who is senior enough to you that you can at least understand what you're being taught. But whatever you do, learn from others around you.
In the last few years I tired of being in the software business as a business. I still develop software (my current application is about 100KLOC of Java -- all written by myself), but I'm working mostly outside the software industry. It's a great career field, and 30 years was a nice ride.