funny you mention homework I actually just started school for an associates specializing in programming. but I haven't made it to the more interesting(programming related) classes yet.
Sweet! Good luck with that!
One thing Crash, myself and Gadget will agree on: challenge yourself, look at TopCoder stuff, even if it's the easy ones.
Assuming you guys hold real world development jobs, what are the jobs like? as in, is your code peer reviewed alot and do you get alot of micromanagement on your postion? or do you get alittle bit of freedom as a developer? I have an IT background and currently work in IT, but I think development is the next step for me in my career as i'm looking to move on from tech support.
Depends on the company. I'm one of one .NET developers in my company. The company culture determines a LOT of things. I have a few friends in startups where they work hard and play hard. They have office games, happy hours, you can bring your dog into work...but they work 12 hour days. I work a VERY predictable 8-hour days (40 hour weeks). When I worked at a big bank, my code was peer reviewed a lot. We wrote gobs of documentation, and I was micromanaged a lot. Now, where I am, my boss trusts that my decisions reflects the overall team goal. I meet with my boss twice a month, at best. I get a LOT of freedom, so as long as I get my work done and I communicate things to my boss. Otherwise, the company culture will dictate it.
Honestly though, I love it. I wouldn't trade my job for anything. Developers worldwide - open source or not - have one thing in common: you gotta love this stuff. You gotta love the challenge, otherwise, you'll honestly fail. You'll need to learn to embrace constraints and limitations, because 99% of the time, you're working with it. But you also gotta embrace other platforms and languages. The one advice I'll give you before you join the wonderful world of developers: find a user group in your area that focuses on what language you want to learn and stick with them. Talk to them, hack with them (in a good way), and learn from them. You'd be surprised what you can learn from them, and how a network of other developers can benefit you.