How to get a job in parallel programming

Competition for jobs is intense in the recession, so how can computer science graduates increase their chances of getting hired? This was a topic of discussion at the recent Supercomputing Conference, where there was a specific focus on the gap between what HPC employers need and what skills graduates have.

Abi Sundaram is an intern at Intel and recent computer science graduate, and she was daunted by the industry’s wish-list of skills, which included specific language skills (ideally in two languages), an ability to reason about parallelism, experience writing a shared memory program, an understanding of how to predict performance, and experience writing parallel programs. There’s much more detail in Sundaram’s blog post about the whole session.

The gap between industry and education has come up several times before, including at IDF. Parallel programming is hard, and the view seems to be that there isn’t enough time in an undergraduate programme to teach it. And yet, parallel processors are the default for the desktop now, and massively multicore systems are in common use in industrial applications. The result? Today’s computer science graduates are unprepared to create programs that fully exploit the hardware available, even on a simple run-of-the-mill office computer. Normally you would expect the most recent graduates to have a competitive advantage in the marketplace, because they will have been taught the latest systems. It doesn’t seem to be the case here, though.

There is hope, as ever. Firstly, Sundaram said parallel programming was part of her course, which suggests the opportunities might be there for those who want to specialise at university. If you’re offered that option, it might be a good investment of your time. Secondly, there are so many tools available for free online now. You can get yourself a free (and legal) copy of Visual Studio Express, and experiment with the tools and paradigms I report on in this blog. Nowadays, you can create and distribute your own software relatively easily, or can at least create a portfolio of software to take into your interviews with large programming shops.

If you’re job hunting and find you have any spare time, then arming yourself with some parallel programming skills and a portfolio to demonstrate them could be the smartest investment you make. There aren’t that many parallel programming jobs out there, but good parallel programmers are hard to come by. Show willing, and maybe someone will give you the break you need.

11 Responses

  1. Where to look for such job? Obviously this is not the type of skill required by most of the job offers that can be found when searching for general “programmer” position.

  2. So why can’t the companies sponsor interns to study what they want. They just want ready made robots!

  3. Thanks for your comments Reg and Electronicshelf and sorry for the delay approving them. I’ve been away.

    Reg: I think this is tricky. I imagine it’s a combination of networking, personal recommendations and demonstrating your worth through serial programming. Perhaps the key is to get into the company first, and then get into the right team. Having the right skills and being able to demonstrate them to the right person internally should help to open doors. If anyone has any tips to offer, feel free to share them here.

    Electronicshelf: You raise an interesting point. Clearly, there’s a value to education that goes beyond purely preparing people for work and a degree should give people good thinking skills and personal skills. However, I do think if I graduated from a computer science (or similar) course, I’d expect to have the kind of programming skills that companies are looking for in graduate recruits. It would be irritating to spend three or four years studying a subject only to be told by employers that the course didn’t teach me the right stuff. I expect companies are forced to train prospective parallel programmers themselves through internships and other schemes, but this requires a further significant investment of time on behalf of the student too. Given the level of debt involved in taking a degree today, we might find that some of our most talented programmers never reach proficiency in parallel programming purely for financial reasons.

  4. […] wrote last week about how serial programming is still the norm in the undergraduate syllabus, and over the last couple of years, I’ve heard a lot about how parallel programming is restricted […]

  5. […] Here is a recent and relevant blog post on how to get a job in Parallel Programming.  You can go here to check out well over a thousand open positions at most of the big name technology firms…Microsoft, Intel, AMD, etc. […]

  6. […] looked recently at the challenge of how to find a job in parallel programming, and solicited advice from Intel chief evangelist James Reinders on that […]

  7. This is Abi Sundaram. Thanks for the blog post! There is one correction though, I am a female. You have addressed as a ‘he’. If you could kindly change that, I would greatly appreciate it. Here is the link to my blog postings: http://software.intel.com/en-us/blogs/author/abi-sundaram/.

    .

  8. Hi Abi. I’m very sorry about that mistake, and I’ve fixed it at my earliest opportunity. Thanks for bringing it to my attention, and do keep us posted on your further experiences with parallel programming!

  9. Thank you for the correction! Also wanted to update you- I just posted a new blog surrounding my first personal experience with Parallel Programming. Check it out if you would like!

    -Abi Sundaram

  10. […] Here is a recent and relevant blog post on how to get a job in Parallel Programming.  You can go here to check out well over a thousand open positions at most of the big name technology firms…Microsoft, Intel, AMD, etc. […]

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: