Okay, your plan sounds decent, and good luck to you.
But now that I've learned that you are studying CS (it's a good guess, around here, but one hates to assume) I'll go out on a limb and offer some further advice: Stop. Change majors. Find something that's actually interesting or challenging for you.
Yes, you're obviously way into programming. That's great, every subject is now all about programming. Any other major will absolutely love you. You may start having to lie, telling them that you don't really know what Python is, just so that you don't end up programming all day and all night.
You might even be into CS, in theory, if you found the right program and the right teacher. But you need to remember two crucial facts:
A) Programming bears the same relationship to CS as the management of a professional NASCAR pit crew does to solving the Navier-Stokes equations. It usually doesn't hurt a programmer to have a solid grounding in CS, just as it wouldn't hurt a NASCAR mechanic to have a solid grounding in fluid mechanics, but it's unnecessary, and just because you love engines doesn't mean you'll love Carnot engines.
You can program quite successfully with almost no formal CS training at all, or so my customers and employers have assured me. Moreover, even the best CS program will teach you very little of what you actually need to know day-to-day when you're building software for customers. You will learn all that on your own, or perhaps you will learn it in classes that have nothing to do with CS. (Or, if your little summer project is any guide, you know a bunch of it already and will soon learn the rest through experience.)
B) Even if CS really is right for you and vice versa, that doesn't mean your school's "CS" is. Too many CS classes and programs are apparently designed to provide occupational certifications to future mid-level corporate Java programmers. If majoring in CS seems significantly easier than majoring in math, something is wrong. Go study something else. Math, for example.
I have a Ph.D. (Physics/EE) and I even did a postdoc once so I'm obviously stupidly in love with school at some level. So maybe it's just me. But I can't see any excuse for being bored in college. Colleges are full of interesting things, many of which are so marginally profitable that you'll never find time and money to do them anywhere else, even though they are awesome. Find them. Major in music and jam with some great musicians. (Two of the best software engineers I know started out as classical musicians.) Major in anthropological linguistics and learn to do fieldwork with disappearing language families. Study geology and do all your summer internships in a tent.
Major in ancient languages. (Another of my colleagues dropped out of physics, studied old Norse, bootstrapped his own way into the MMORPG industry after graduation and is now a programmer.) Study chemistry or (ahem) physics. Take some statistics. Neglect not your molecular biology. My usual advice: Study a laboratory science. You can spend the rest of your life sitting around typing for the price of a laptop, a chair, and a coffeemaker, and you don't even need a computer to enjoy a CS book, but after you leave school you will never again see anything like a university science lab unless you have tens of thousands of dollars, a big basement and one hell of a lot of spare time.
But now that I've learned that you are studying CS (it's a good guess, around here, but one hates to assume) I'll go out on a limb and offer some further advice: Stop. Change majors. Find something that's actually interesting or challenging for you.
Yes, you're obviously way into programming. That's great, every subject is now all about programming. Any other major will absolutely love you. You may start having to lie, telling them that you don't really know what Python is, just so that you don't end up programming all day and all night.
You might even be into CS, in theory, if you found the right program and the right teacher. But you need to remember two crucial facts:
A) Programming bears the same relationship to CS as the management of a professional NASCAR pit crew does to solving the Navier-Stokes equations. It usually doesn't hurt a programmer to have a solid grounding in CS, just as it wouldn't hurt a NASCAR mechanic to have a solid grounding in fluid mechanics, but it's unnecessary, and just because you love engines doesn't mean you'll love Carnot engines.
You can program quite successfully with almost no formal CS training at all, or so my customers and employers have assured me. Moreover, even the best CS program will teach you very little of what you actually need to know day-to-day when you're building software for customers. You will learn all that on your own, or perhaps you will learn it in classes that have nothing to do with CS. (Or, if your little summer project is any guide, you know a bunch of it already and will soon learn the rest through experience.)
B) Even if CS really is right for you and vice versa, that doesn't mean your school's "CS" is. Too many CS classes and programs are apparently designed to provide occupational certifications to future mid-level corporate Java programmers. If majoring in CS seems significantly easier than majoring in math, something is wrong. Go study something else. Math, for example.
I have a Ph.D. (Physics/EE) and I even did a postdoc once so I'm obviously stupidly in love with school at some level. So maybe it's just me. But I can't see any excuse for being bored in college. Colleges are full of interesting things, many of which are so marginally profitable that you'll never find time and money to do them anywhere else, even though they are awesome. Find them. Major in music and jam with some great musicians. (Two of the best software engineers I know started out as classical musicians.) Major in anthropological linguistics and learn to do fieldwork with disappearing language families. Study geology and do all your summer internships in a tent.
Major in ancient languages. (Another of my colleagues dropped out of physics, studied old Norse, bootstrapped his own way into the MMORPG industry after graduation and is now a programmer.) Study chemistry or (ahem) physics. Take some statistics. Neglect not your molecular biology. My usual advice: Study a laboratory science. You can spend the rest of your life sitting around typing for the price of a laptop, a chair, and a coffeemaker, and you don't even need a computer to enjoy a CS book, but after you leave school you will never again see anything like a university science lab unless you have tens of thousands of dollars, a big basement and one hell of a lot of spare time.