So I'm a hobbyist game developer for years whose day job is writing reports/troubleshooting database issues with MSSQL.
I'm a bit over half way through a CS bachelors degree!
I'm aware of three ways to get experience to help me find a job once I graduate, and wondering if one is superior to the others, or if there is another way!
Personal projects. There is a very large programming project I've been working on off and on for 2ish years and I feel like after my recent programming classes I can probably start it off right and trash all my previous prototypes.
Work on open source projects. This one is a bit scarier at this point, as I'd have to find one I like, one that is active, one that my skills fit with, one I can get accepted with, etc.
Find entry level freelance things. I'm aware I could maybe do cheap tasks on Fiverr, or sign up for things like Data annotation, to earn a bit of money and have "something" directly related to programming on my resume.
3.5 Could do coding challenges, but most of the ones I've seen don't seem super relevant to making large programs, but solving convoluted puzzles. But would love to hear if there is a site that has more real world challenges.
My personal experience for previous projects (and favorite programming class so far) has been python (shocking I know). Hoping I'll fall in love with C# programming once I get into the advanced classes with it, as I know that pairs much nicer with my MSSQL experience. Oh my game dev has also been in Game Maker, which uses GML, so not superrr helpful experience.
Whether you’re working on FOSS project or your own personal projects, building cool and diverse stuff that you’re passionate about is the best way to get experience quick.
Regarding your personal project, starting over is usually not a bad idea. Especially if your own skills have grown a bunch since starting. Make sure you keep old versions around for reference!
I’ve personally never gotten much out of freelancing or coding challenges. I think it depends on if you see CS more as a career or more as a passion (both of those are perfectly legitimate). I should also mention, a lot of professionals don’t do any programming outside of work. You don’t need to dedicate time outside of work to be good at this job.
The most important thing is to have fun and not to burn yourself out. Take care of your body and mind!