I'm a student studying computer science. I am about to enter my Senior year, but looking to (eventually) get a job working with a game development company, or other software development firm. Developing video games independently is my ultimate goal.
Since I've been in school, I have developed an intermediate skill in C++ (I can create basic console based programs). Because of my current job (a full time job unrelated to my major) and financial need (I have to work in order to get back and forth from school) I don't have time to get an unpaid internship. I try to practice and develop my programming skills, but lack the challenge and hands-on experience of being a part of the development process of actual software. From the job searches that I've done, most companies don't only want someone with a degree, but someone with experience, too.
So, lacking experience, what can I do to develop a portfolio impressive enough to land an entry level (or paid internship) position with a software development company (or improve the portfolio that I already have)?
To give you an idea of the portfolio I already have, I developed an interactive program dealing with data structures (arrays and sorting is all it consists of now, I'm still working on the linked lists and trees). It opens with a menu, giving the user the option to choose the type of data structure they want to create/manipulate. Once they choose the data structure type, they are taken to another menu that gives them the option of using randomly generated data(which is only integer data at this point), or entering the data themselves. Throughout the program the user is given the option to have the data printed to screen sorted (in ascending or descending order) or unsorted. Next, they can try the exercise again, or go back to the main menu. All possible actions are prompted. The program also prevents users from inputting data of the wrong type when prompted for info. And, again it runs in the command console.
(And the gamedev.net forums are one of the best places for game development specific questions.)
Maybe you should get involved with an open source project. I guess you already know about SourceForge.net, which is one of the biggest sites. As a first step you could download a projects code and then see if you can help them by fixing a bug.