I have a few ideas, but you can alternatively hit
Rent A Coder:How Software Gets Done and pick a few projects which sound interesting to do. This way you might even get some money for it.
But I'd say try to familiarize yourself with the concepts of bigger corporate architecture instead of just hammering away at code. The dev's on my teams are usually missing core ideas of how modern corporate software works. I don't review code saying to myself "wow, I can't believe he used a bubble sort instead of quicksort" often. Far more often I read through code and say "dear lord- why transmit individual records through a web service when .NET 2.0 has cleaned up the serialization problems of datasets?" or "good god- that data maniuplation should have happened in a stored proc instead of in code".
Get narrow and long before you aim for depth. Building a simple web app that:
- Has data driven content stored in a DB
- Uses some for of abstraction (sprocs, etc.) to interact
- Has a data layer using something like the Microsoft data application block or similar (built into a separate assembly- not incorporated into webpage code)
- Performs some function in a business layer (built into a separate assembly- not incorporated into webpage code or datalayer code)
- Displays some data and allows modification of that data
- Uses CSS to change the page display
Bonus points for:
- Incorporating some form of audit log and or versioning/history in the DB
- Indexing DB and optimizing stored procs for speed
- Having data layer do DB sproc discovery
- Using AJAX on page
- Building framework such that all pieces are inheritable
- Hitting a web service to populate something (could just synch up time with atomic clock)
Do all that and I could bring you in tomorrow. Naturally you'll eventually want to get *better* at doing certain parts... I suck at UI and CSS manipulation but I can make a DB and business layer code better than most. But having the basic idea of the architecture from the ground up is far more important than specializing early, IMO.
I'll also agree- from a career POV, get your name out there on something early and often. Volunteer to make a webpage for the local boy scout troop or something. Don't just get involved. Get involved and get published.