I've always been a big believer of practice over theory, especially for learning programming. I like going to hackathons, participating in game jams, and working on personal projects.
That is why I've been really enjoying my time with Major League Hacking! Their Fellowship Program has given me the opportunity to see what working in the software industry is like.
I like to think of it as a way to ease myself into the world of internships and looking for a job. Sadly, programming is not the only skill you need to make it in the tech business. An important general life skill is collaboration, and that's my favorite part of the fellowship. You get to work on a real-world project, together with other people!
I've been working on a map data conversion software, to convert Overture Maps data to Open Street Maps format. While it's not the shiniest piece of software, it feels good to know something I worked on will be integrated into a real world tool that gets used by others. (Specifically, the Rapid Map Editor)
Also, it's nice to see what projects everyone else works on. During a fellowship, I got to be a part of a bigger group of people working on other projects, called a pod. There is a big variety of projects: translation software, audio watermarking, psychophysics experiment software, there's always a lot going on! Everyone is really nice to work with, whether it's the other fellows or our pod leader. (Hi Alex!)
Overall, I'd recommend trying it out if you're looking for a taste of software engineering. It'll probably be a good experience! You also don't have to apply almost a year in advance like tech internships, as fellowships run quite a few times per year.