I didn't learn programming during my CS degree at University.
Yes, we had programming courses.
But even though I learned a whole lot about computer science, I didn't get my programming skills (which now pay my bills) from University.
Here's how I learned programming, and what I'd do differently in retrospect.
Programming is a craft, a science, and an art.
So, to get better you need to practice, learn, practice, improve your structured and logical thinking, practice, and be curious and open-minded.
Have I mentioned practice?
I learned programming in three ways:
If I had to drop one of them, I'd drop the University courses. Exploring on your own is much more aligned with how you work later on, and you'll learn more that way. Access to great senior engineers together with your own curiosity and willingness to learn are one of the best ways to become a great software engineer.
Yes, you'll learn many interesting things that may or may not be useful for your career.
But for my career path (web app full stack, and backend IoT), you can learn 90% of the knowledge that I use from my degree by reading the things:
The rest is experience.
So practice, practice, and practice.
Wherever you are on your journey to becoming a (better) software engineer, there is always an effective next step you can take:
Don't have an idea for a private project? Look at my list of 10 project ideas for developers.
One last thing: if you get your job, don't stop doing personal projects, at least for the first 2-3 years. This really boosts your learning rate. Trying out new technologies after work expands your skillset, and those learnings can massively improve your reputation in your day job.