I am new to programming and wanted to know, at what point is it exceptable to put a programming language on your resume? How much experience, projects, time would you suggest?
I think that's an excellent question and I'm interested to hear what other people think.
I'm the kind of person who picks up languages for fun, so I learn a new language pretty fast. So, I'm usually willing to say I have "experience" in a language I've dabbled in (and done a couple projects solely for the purpose of learning the language); if I need the language for the job, I know I'll be able to handle it just fine thanks to Google.
A CV with a million niche languages on it looks ridiculous, however, so I try to tailor the list to what I think would look good to whoever's reading it: enough languages that it looks impressive, but not so many that they question whether it's possible or not.
I would only recommend doing this if you have sufficient programming experience and a firm enough grasp of fundamentals to be able to pick up new things quickly, however. Also, this assumes that you know enough about the language that you can discuss it intelligently.
What I do is to put a skill rating along with every technology on my resume to ensure that nobody gets the wrong idea and so I can quickly shut down any misunderstandings that arise.
For instance, I used PHP about 5 years ago for my first paid programming project, and have not touched it since. It's equally untrue for me to leave PHP off my resume (implying I have no experience) and to put it on unqualified (implying I have recent experience). I simply rate myself low (I think I'm a 3/10) and explain what that means if anyone asks. That way I can list everything I've worked with and would consider using again while bypassing any mismatched expectations early on in the process.
I've heard of some "standard" rating schemes, particularly one that Google uses, but I don't recall them off the top of my head.
Fair point, and I agree that years of experience is thinly veiled bullshit. It only gets perpetuated because people don't know exactly what they need employees to do. Life would be much easier if job listings said things like "you need to be able to work with Python with access to other engineers for help" or "you need to have encyclopedic knowledge of JVM options, internals and optimizations" instead of crap like "Python - 2-3 years", "Java - 10+ years" which don't really say anything but filter out candidates needlessly.
To your under/overrating problem, I think that's where ?'s have to come into play. Someone who ranks themselves very highly needs to be able to back it up, and it's your responsibility as an interviewer to get appropriate people to do that vetting if you can't. Someone who rates themselves as a 10 with Solaris, for example, needs to be vetted by the best damned sysadmin you can get. Someone who rates themselves as a 3-4 can probably be comfortably vetted by an experienced engineer.
I try to knock myself down roughly a point off where I think I ought to be, and I've found that works well in interviews. For instance, at my second job interview (after only a six month internship), I was asked "on a scale of 1-10, how do you rate yourself as a software engineer?" I replied that I rated myself a 2-3, but I considered 10 to be an engineer with a world-class reputation like Steve McConnell or Steve Yegge. Compared to the people with my experience, I rated myself an 8, but I recognized that I had a long way to go.
Humility works well if you make it sound rational and not just like kow-towing.
I think this is a good method. A good tip for people to remember: the resume isn't there to get you the job, it's only there to get you into the interview.
I'd only put a language on my resume if I was prepared to answer questions on it in the interview. It doesn't help you or the interviewer if you mention a language you hardly know.
Likewise, you could omit languages that you know well but don't want to use in your job.
Your resume, along with your cover letter, needs to be relevant and tailored to each individual business you send it to. You should never have a "generic" resume to send. If the business your applying for is looking for java programmers, you need to put any relevant information that pertains to the java world, like work experiences, and what frameworks you use.
They don't need to know about how you know python, lisp, or whatever. In fact you are more than likely wasting their time. You literally get 10 to 20 seconds of time to shine in your resume - because thats the normal time it takes for a hiring manager to scan your resume. These people get a ton of resumes, so don't waste what little precious time you have.
Maybe when you're mentioning your projects, mention which languages you used. That way interviewers can see what sorts of things you've done with the language. Haven't done anything cool with it? Probably not worth putting on your resume.
I've found I take off languages from my resume as I get more experienced, because the bar to put one on grows. Instead, I add experience, and often mention what languages I used on a particular project with the project itself. Let them judge whether that means I actually know the language.
I've found that playing skill-bingo usually results in lower quality potential employers anyway...at this point in my career, I'm looking for people who want to hire me because I can ship finished projects, whatever the language, and not because I know Java or C++ or Django or JQuery.
Aha, a time to put forward my personal mantra about when you "know" a particular programming language. It is not perfect, but it is more meant to be thought provoking. It is:
"You only know a language when you know when not to use it"
10 comments
[ 12.8 ms ] story [ 81.6 ms ] threadI'm the kind of person who picks up languages for fun, so I learn a new language pretty fast. So, I'm usually willing to say I have "experience" in a language I've dabbled in (and done a couple projects solely for the purpose of learning the language); if I need the language for the job, I know I'll be able to handle it just fine thanks to Google.
A CV with a million niche languages on it looks ridiculous, however, so I try to tailor the list to what I think would look good to whoever's reading it: enough languages that it looks impressive, but not so many that they question whether it's possible or not.
I would only recommend doing this if you have sufficient programming experience and a firm enough grasp of fundamentals to be able to pick up new things quickly, however. Also, this assumes that you know enough about the language that you can discuss it intelligently.
For instance, I used PHP about 5 years ago for my first paid programming project, and have not touched it since. It's equally untrue for me to leave PHP off my resume (implying I have no experience) and to put it on unqualified (implying I have recent experience). I simply rate myself low (I think I'm a 3/10) and explain what that means if anyone asks. That way I can list everything I've worked with and would consider using again while bypassing any mismatched expectations early on in the process.
I've heard of some "standard" rating schemes, particularly one that Google uses, but I don't recall them off the top of my head.
"Years of experience" isn't a great indicator either. The language I'm most proficient in today is the one I learned most recently.
To your under/overrating problem, I think that's where ?'s have to come into play. Someone who ranks themselves very highly needs to be able to back it up, and it's your responsibility as an interviewer to get appropriate people to do that vetting if you can't. Someone who rates themselves as a 10 with Solaris, for example, needs to be vetted by the best damned sysadmin you can get. Someone who rates themselves as a 3-4 can probably be comfortably vetted by an experienced engineer.
I try to knock myself down roughly a point off where I think I ought to be, and I've found that works well in interviews. For instance, at my second job interview (after only a six month internship), I was asked "on a scale of 1-10, how do you rate yourself as a software engineer?" I replied that I rated myself a 2-3, but I considered 10 to be an engineer with a world-class reputation like Steve McConnell or Steve Yegge. Compared to the people with my experience, I rated myself an 8, but I recognized that I had a long way to go.
Humility works well if you make it sound rational and not just like kow-towing.
Likewise, you could omit languages that you know well but don't want to use in your job.
They don't need to know about how you know python, lisp, or whatever. In fact you are more than likely wasting their time. You literally get 10 to 20 seconds of time to shine in your resume - because thats the normal time it takes for a hiring manager to scan your resume. These people get a ton of resumes, so don't waste what little precious time you have.
I've found that playing skill-bingo usually results in lower quality potential employers anyway...at this point in my career, I'm looking for people who want to hire me because I can ship finished projects, whatever the language, and not because I know Java or C++ or Django or JQuery.
"You only know a language when you know when not to use it"