The previous post discussed building your resume. While an internship or a startup might work well when the economy is good, they aren't always good options when the economy is bad. So what can you do when nobody has internships for you? Or what can you do if the previous options do not appeal to you? First, it is important to note that a bad economy is not all bad for students. Students have few commitments and responsibilities: they are usually unmarried, and can continue living with their parents for a while longer. So as a student, the goal should be to continue working on your interests and wait for things to get better.
The best candidate in this section is writing Free Software: software that is licensed under a very generous license, like the GPL, the LGPL, and others. This is fast becoming one of the strongest signals for the capability of a technical candidate. Working on a mature product like Apache, and being able to make good progress says volumes about a candidate. These projects accurately reflect real-life software projects, and expose students to many problems that are difficult to simulate in classrooms. Being able to contribute to an existing project is much tougher than starting from scratch, so these make wonderful playgrounds. Even if you fix three big bugs in the summer (a bug a month), you are off to a flying start in terms of a resume. Free Software projects have a huge impact. Everyone from small startups to the biggest of online companies use a variety of Free Software. The projects are widely distributed, and contributors include the best and the brightest. Also, the wide variety of software ensures that there is bound to be a project that fits your interest and level of programming. All the resources are freely available. This is an amazing networking opportunity: working on the Linux kernel would put you in touch with some of the brightest systems engineers in the world! Finally, your contribution is visible to the entire world: all the source code is publicly available. The payoff from such work can range from little or nothing (you work and nobody pays you) to very competitive (you take part in Google's Summer of Code or other bounties). Free Software work on a resume shines through, so rest assured that your work is recognized even if it isn't financed. I took part in Google's very first Summer of Code while I was a student. It was an amazing program and has improved in successive iterations. I highly recommend it. The time required depends on your level of commitment, ranging from a month to three months.
If nothing else, you can build a community in a very direct way. Putting up a blog, putting up a forum, or a way for like-minded individuals to get together might just work. This pays nothing, will probably not amount to much, but requires little or no time. Many people make long-lasting connections through their local Linux User Groups, and learn a great deal as well. This is noteworthy only if your contributions are. In any case, you get in touch with people of similar interests that might suggest more fruitful ventures. Linux User Groups tend to have a high concentration of sharp people, and the number of fundies and fanatics has been limited in my experience. Your mileage may vary, but it makes a good start. As you can tell, the payoff varies widely. The networking opportunities have a very wide range, depending on the area. However, you do learn new things, and get to explore some field of your interest. This might not be the real world, but it comes pretty close.
I would caution students against unpaid internships. If pay is a measure of your worth, an unpaid summer internship speaks poorly about your skill or the employer's view of you. A far better option would be to spend time exploring your own interests and working on something that is directly interesting to you. Even a summer spent learning the guitar is more fruitful than being someone's slave. A friend of mine spent considerable time teaching in a third-world country, while another spent nearly a year bicycling through Asia. All these people gained vast experience. This experience did translate into some marketable skill, and it also reflects in their remarkable world-view. Another friend of mine spent his summer building huts in an earthquake-hit area. In addition to losing naivete, he lost quite some weight. That summer turned him from a chubby character to a fit, handsome boy. Neha volunteered at the SPCA for a month one summer, and enjoyed it thoroughly. I would recommend volunteer work over unpaid labor in a commercial organization. Here's the reason: unpaid work hints that you either do not have any marketable skills, or that the employer isn't capable of making use of them. Both speak poorly of the transaction. Even as a student, you do have valuable skills: new ideas, exposure to new technology, enthusiasm and time, in addition to your professional skills. So it means that the employer doesn't really know what to do with you, and is hoping that your slave labor will be compensated by their name on your resume. It isn't worth it. Good companies pay their interns well, and poor employers do not shine on resumes, making an unpaid internship one of the worst deals. If you do decide to volunteer, the time requirements for volunteering are completely up to you, the networking opportunities are limited. Why do it? You get a wonderful understanding of the world, and a remarkable feeling of achievement that is hard to match.
As always, your goal should be to do what is interesting and fun to you. Building on your interests is the best way to build your resume.