Its useful for pathfinding and AI.. though it might be weird for collision. I recommend storing everything collide-able inside of an array and iterating through them while checking to see if the edges of the objects over lap with each other via box collision or separating axis theorem.
If you're good enough to intern thats the best thing you can do because you get to focus on programming all day long. It also gives you a chance to work with 'professionals' (occasionally there is the guy who thinks they know what they're doing).
The quickest and maybe the cheapest way is to become friends with someone who is in the industry and knows what they're doing. (or hire a tutor; again make sure they know what they're doing). A lot of teachers don't teach 'clean code' which is the next best thing to learn after syntax.
I make the game I want to play. Ideas come to me as I play other games. Not only that video games are always on my mind, and I'm very analytical to the current games I play where I notice how different aspects of the game effect me.