A young man who's studying computer science in college asked me for information regarding how to get an internship in the software industry. Here's what I told him :
There is great demand for programmers with a bit of experience. You just need to get a bit of the right (or desired) experience.
I think there are several ways to do this :
- Contribute to an open source project. I work with Drupal, a PHP-based web site builder, so I'll use that as an example. You can contribute to Drupal in ways outlined here : https://drupal.org/contribute. Find something that interests you (ex. writing tests) and jump in.
- Learn the basics of Git. Regardless of your programming language (Java, PHP, Python etc.), no one will hire you if you don't know Git.
- Get a user account on GitHub.com and start putting code examples up there. I have a simple GitHub account here :
It's not impressive, but at least shows that I know a bit about Drupal. Also, if you want to contribute to open source projects to establish credibility, that's done on Github. Find a project that interests you, fork the project, and submit pull requests. A pull request can be as simple as correcting grammar in a code comment, but it at least gets you started.
- Regarding how to contribute to a community, read this post :
It's oriented towards Drupal, but describes the contribution ethos.
- Ask and answer questions on sites like stackexchange.com. This lets you learn and build up a 'resume' showing what you know or want to know.
- Participate in coding activities like Google Summer of Code or local "Hack fests" (ex. http://www.the-hackfest.com). These hack fests are recruiting tools for companies. If you win Facebook's hacking contest, they'll likely offer you a job.
- Visit local Meetups (http://www.meetup.com) or user groups in an area (ex. computer games) that interest you. Again, in the Drupal area, there's a very strong group in the LA area (https://groups.drupal.org/downtown-los-angeles). Visit some local meetings and put a post in the group saying you're looking for an internship.
Doing these things won't guarantee you a job, but you'll learn a lot, meet a lot of people, and become a more valuable professional.