Getting an entry-level job in computer programming

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 : 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 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 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. 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 ( 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 ( 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.