22

I have a question that can be best answered here, given the vast experience some of you guys have!

I am going to finish my bachelor's degree in CS and let's face it, I am just comfortable with C++ and Python. C++ - I have no experience to show for and I can't quote the C++ standard like some of the guys on SO do but yet I am comfortable with the language basics and the stuff that mostly matters. With Python, I have demonstrated work experience with a good company, so I can safely put that.

I have never touched C, though I have been meaning to do it now. So I cannot write C on my resume because I have not done it ever. Sure I can finish K & R and get a sense of the language in a month, but I don't feel like writing it cause that would be being unfaithful to myself.

So the big question is, are two languages on a a resume considered OK or that is usually a bad sign? Most resumes I have seen mention lots of languages and hence my question. Under the language section of my resume, I just mention: C++ and Python and that kinda looks empty!

What are your views on this and what do you feel about such a situation?

PS: I really don't want to write every single library or API I am familiar with. Or should I?

6
  • Can you rephrase this so its more of a question?
    – Jeremy
    Commented Nov 21, 2010 at 22:04
  • 10
    Knowing 2 languages coming out of college is probably OK. It's more important that you can demonstrate you understand what you are doing.
    – ChrisF
    Commented Nov 21, 2010 at 22:22
  • I think its better to be good at something, even if its just 2 languages, than to know many and is not good at any. And like @Jas said, I recommend some higher level languages like C#. Also since you know Python, you can try django/google app engine? Web Apps are the thing of the future I think
    – Jiew Meng
    Commented Nov 22, 2010 at 0:11
  • I'm surprised you avoided C in pursuit of your BS. Most CS degrees have a chain of 'hardware' based courses that use C extensively such as Comp Organization and Operating Systems.
    – Nayrb
    Commented Nov 22, 2010 at 0:24
  • 3
    Promise to never touch Perl, would ya?
    – Job
    Commented Nov 22, 2010 at 3:27

12 Answers 12

24

As long as you know how to think the problems through, it does not matter how many languages you are proficient in. But since you are proficient with C++, you could invest a few months time to gain some skill in C# or Java (or Ruby, for that matter).

5
  • +1 @Jas: excellent advice on familiarization with newer technologies. It is important to give yourself the added skill depth.
    – IAbstract
    Commented Nov 21, 2010 at 20:43
  • 2
    "As long as you know how to think the problems through, it does not matter how many languages you are proficient in." I don't want to rain on the OP's parade, but, yes it does matter. Sometimes we have to wear a lot of different hats for a job and have to be able to switch them quickly. I currently write in shell, Python, Perl, Ruby and SQLs daily at work and being able to switch without "retooling time" is important. But, I have been doing this stuff a long time so that's expected. As long as the OP takes it on himself to keep learning more languages he'll do fine. Commented Nov 22, 2010 at 0:31
  • 2
    Very good advice. I would consider picking up "Seven Languages in Seven Weeks" by Bruce Tate as a way to wide variety of languages and then think about the kinds of work you'd like to do and learn the languages that would apply. Commented Nov 22, 2010 at 1:04
  • I second the recommendation for Tate's "Seven Languages in Seven Weeks". Commented Nov 22, 2010 at 5:22
  • Make sure you know data structures, big oh notation, and you can code on a whiteboard on a dime, and you can get hired almost anywhere. You just need to find a little dev shop like google where they hire programmers that know c++ and python.
    – Kevin
    Commented May 28, 2011 at 17:39
6

It's not that bad if you're applying for a job that's exclusively C++ or Python. Some employers might take the knowledge of multiple languages as a sign that you can be trusted to learn new ones quickly, but since you're just graduating a reasonable employer will probably take that into consideration. It'd be a different story if you had 20 years of job experience but knew only 2 languages.

You might consider starting to get familiar with a new language that you're interested in and mention that your resume. It'd show that you're dedicated to broaden your language selection and to develop your skills.

1
  • I've been programming professionally for over 30 years, and have lots of languages under my belt. I'm always learning something new and that has paid off time and again. Commented Nov 22, 2010 at 0:32
3

Two problems with knowing only two languages:

  1. There are a number of programming models that can help improve how you think about problem design. A lack of knowledge around these other models limits your ability.

  2. Your skills aren't as portable to other languages, and you're out of practice in learning new languages.

As for what goes on your resumé, that's a different question: some employers will be very happy to find someone focused on only a few things. I don't believe this to be a good mark for a programmer, but there are many different needs and businesses.

I suggest learning at least one language a year, outside of what your employer requires. It's good for the brain, your design mojo, and for your future resumé.

3
  • 2
    +1 for pointing out that different languages help you think in new ways. The more languages we know the better we are able to pick the right tool for a job. Commented Nov 22, 2010 at 0:35
  • And even better, certain languages hint at different solutions (take Prolog and Hanoi, for example, or SQL and slicing and dicing sets of data). This understanding sets your thinking for problems in any language. I've applied SQL concepts to C++ and the STL, and Prolog and Lisp fundamentals in little languages I've designed. Commented Nov 22, 2010 at 5:19
  • regarding 2., since he's fresh out of college, I doubt he's out of practice learning. Regarding 1., I am mitigated, both C++ and Python are multi-paradigms languages so it's not as bad as Java/C#. Commented Feb 18, 2011 at 18:26
1

It would only probably hurt you with non-technical people who don't realize that learning languages is the trivial part of programming.

4
  • 5
    Learning a new language is only trivial if at adds absolutely nothing but syntax to what you know. Learning to write C++ programs in Python or Ruby is trivial but actually learning Python or Ruby is non-trivial if you have to pick up new programming paradigms as well. You can really tell the difference between someone who just learned the syntax and then hacked something out and someone who actually learned the language.
    – asm
    Commented Nov 21, 2010 at 23:29
  • trivial, but absolutely vital
    – Javier
    Commented Nov 22, 2010 at 2:17
  • From my experience, only the first few languages are difficult to learn. As you understand how languages work, you have better questions and intuitions, and you start to work through the concepts quickly. Commented Nov 22, 2010 at 5:21
  • @Andrew, absolutely, I certainly meant that learning syntax is trivial, and that's all a resume can really show.
    – user1842
    Commented Nov 22, 2010 at 14:21
1

I would focus your resume on your demonstrated work experience - show that you've completed projects. That is worth so much more than what classes you took. Truth be told, unless a CS graduate has actually completed a real project - and I'm not talking school work, I'm talking something they've worked on for months or years that was actually used by real people to solve real problems - they probably dont have enough experience to claim they 'know' any language. Since you have actual work experience with Python for a company, you're probably a step ahead of a lot of people already.

Also yes, definately include API's and frameworks you've worked with. Also dont forget SQL, if you've worked with databases.

1

The number of languages on your resume is irrelevant. Having the languages on your resume that your employer uses is what's important, and even that is negotiable.

I've passed on people who "knew the language" in favor of someone with a good foundation in Computer Science and knowledge of a programming language "close" to the one we use. Learning a language's syntax is often trivial. Learning the language idioms, and standard approaches usually take more time.

BTW I only put languages I'm current with in my resume. You won't see eiffel, scheme, C, etc. I don't put Java on there either, but that's because I dislike using the language.

1

I'd hire you for the sincerity. that is as valuable as a third language. Which you're going to learn soon, right ?

Too many language can raise suspicions as well. Good for potential salesman/salesgirl showing off his bullshitting skills.

API background can easily come up in the interview. Some see API knowledge as more relevant than language itself. If you know the API weaknesses, that can help a business to avoid mistakes. If you know the API strengths, that is useful as well.

One strategy is giving a short recap of the APIs on the resume, but keep the tastier part for the interview, to build a conversation.

1

I don't think it matters that much, especially because those are a good pair of languages:

  • both are multi-paradigms, therefore you're not stuck in OO
  • they complement each other rather well, C++ being relatively low-level (memory management) and Python allowing you to quickly hack a script together when necessary (and it is, in programming)

I've seen resumes with lots of languages, and frankly I am not impressed. Anybody can learn a language syntax (apart from C++ :p) in a week or two, but there is a difference between knowing the syntax and writing good (idiomatic) code.

By declaring only those 2, you show that you're honest and upfront. Stress the projects you've realized to show that you do know them, it's much more likely to impress your future employer.

1

I was lucky enough to interview with a company that "got it" way back when I was a student... Even though I had an embarrassingly long list of stuff I "knew" (being very liberal with that term), I actually got the job based on a VMS assembler program I wrote... Which I didn't put on the resume but came out in the interview.

Literally.

Like, I had it in my backpack (this was back when you used to print your programs out on industrial dot matrix printers).

So no. Companies that "get it" will probably look on that combo as a positive.

1

For a first position out of school, intangibles matter more than experience. Even later in life, you can get a job as a specialist in just a few technologies. (That's not to say don't learn other languages, just that it won't make you unemployable)

Be prepared to discuss algorithms, write in the languages you know on a white board, and show enthusiasm for solving problems. If you can do that, you'll find someone who can use your skills.

Remember that hiring is relative to position. Juniors are expected to be smart and eager. Seniors are expected to have more specific experience - that's why they get paid more.

0

Most graduates don't have much language experience, just the one or two their degree focuses on. And most I have met struggle with those few as well.

0

It depends on what kind of job you are trying to get, really, as well as who is doing the choosing.

Personally, were I hiring a junior coder, I'd look mostly for mindset and only expect them to know a language or two. Were I hiring a lead coder, I'd want to see a laundry list of languages, as those who haven't worked in many languages invariably have no clue about language design, and it is my personal philosophy that someone who understands at least the basics of language design is a much better big picture sort of coder.

Not the answer you're looking for? Browse other questions tagged or ask your own question.