28 December 2009 0 Comments

Non-Mainstream Languages, Bad for your resume?

Hi folks, I got my BS in Computer Science about seven years ago. I spent two years in neuroscience research and the next three providing what amounts to tech support.

But I love computer programming – and I have since written, as a freelancer, non-trivial commercial code in Haskell, Smalltalk, and Objective-C. I used these languages because I find them rewarding, they make me a better programmer and thus, I thought, more attractive to companies.

However the polar opposite has occured and I am now unhireable. The freelance market has bottomed out and I am looking for regular employment. But I am being repeatedly turned down, even for entry-level positions, because I don’t specifically fit the requirements – eg. Java programmer with 2+ years with JUnit, JavaMail, Servlets etc. And none of the hiring managers, let alone the recruiters, have heard of either Haskell or Smalltalk and more disturbing is their thinly veiled contempt for my background.

My question is , how should I market myself to these positions? Is anyone here in a similar position? What should I be doing different professionally? More broadly is this contempt for non-mainstream experience occurring everywhere or just my town? And if there are any hiring managers reading this, I’d love to hear your side.

Please be brutally honest.

thanks, joe

steampunk-pc1[1]

Answers

1.

Learning non-mainstream languages is good. Learning only non-mainstream languages might not be so much, especially if you want to work in the corporate programming world. There’s a huge class of jobs these days where your job is not to be so much a programmer as a Java technician, and that’s what you’re finding. They don’t want somebody who can creatively solve hard computer science problems — they want somebody who can plug functionality X into their big enterprise app, like, yesterday. If you want to get one of these Java jobs, it would be very much in your best interest to learn Java and get some experience there.

However, with the iPhone platform really hot these days, your Objective-C experience could be useful if you try looking for companies either in that market or looking to get into that market.

2.

Putting together a resume is never an easy thing. One suggestion is to break your resume into "what you have done" and minimize the "how you did it". So if you have worked on commercial applications for the last two years say "Commercial application design – 2 years", if they ask how then you can tell them what you did and how you did it.

Haskell, for sure is a marketable language as its design and implementation principals are very similar to SQL (T-SQL, PL/SQL, etc) but it is not a common development language outside of structured needs like template design.

While your looking for a position start working on learning Java or .NET, PHP or ASP.NET, as well as some scripting languages like Powershell or Perl. Ruby and Python are good as well.

When listing your experience with these languages (after your feel comfortable with them) for at least as long as you were in college. Most languages are very similar in practice, just different in syntax.

Also, as a last point. If you havent already focus your resume on projects, not on languages. Talk about what the projects did and why they were cool, not the language and how it made it easy to do.

3.

Three-step résumé rehab…
  • Learn Java. If you are really so smart (I know that sounds snarky; really it seems like you are actually a smart guy) you will have no trouble learning more languages. Contribute your Java code to an open source project or do something useful and create an open-source project with it. The point here is that you can now put java on your résumé with a "place" you worked with it.
  • Learn Ruby and RoR. Ruby has Smalltalk’s object model, so you will love it, but unlike Smalltalk and your other current languages, Ruby, combined with Rails, can actually get you a job. You win! You should do something with PHP too, just in case. Contribute to a Ruby project if possible so you can put something more than I know language X on your résumé.
  • Contact sophisticated employers directly. The best places I know of don’t actually care what languages you know. They are looking for smart people. Still, do your best to learn their language and framework in the two days before your interview. If they give you a test it will help tremendously.