Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

If I am asked to program an algorithm, say binary search, in languages other than Java during an interview, I will have a hard time trying to remember the syntax.

Is it okay to tell my interviewer that I can only code this in Java, because I have worked with other languages before but have not used them for a while?

If not, what suggestions do you have (i.e. what languages and parts of those languages among these should I pick up the syntax of before my interview)?

share|improve this question
1  
As related questions state, many consider syntax errors ok when you're writing code without compiler assistance. But if you "can only code in Java", are you really proficient? –  delnan Dec 2 '11 at 22:33
1  
@delnan I did not say "I can only code in Java", I meant for that particular question, I can only coe "this" in Java. –  Newbie_code Dec 2 '11 at 22:39
2  
It would be ridiculous to expect perfect syntax in writing/whiteboard exercises. But I still feel that those types of exercises should be asked to be done in pseudo-code because it exposes your problem solving skills better than your (insert language) skills. –  Chris C Dec 2 '11 at 22:59
2  
As an interviewer, I'm happy with "more-or-less" code, and pseudo-code is fine too. Elegant expression in more-or-less Python beats perfect nested loops in Java. –  kevin cline Dec 3 '11 at 1:01
    
In Interviews, i Always stress what I can do right now, and what i will need to RTFM. This way i can still say, i CAN do x, just not as quickly as y. –  NWS Mar 7 '12 at 12:10
add comment

8 Answers 8

up vote 14 down vote accepted

You do not have to be an expert in every technology listed, but you should have something interesting to say.

Last year, I interviewed a number of new graduates. One candidate mentioned linear programming on his CV. I asked him "What is a linear program?" He replied "It's when you have more equations than variables." You need to do better than that.

If you mention a language, I won't ask you about specific syntax. It's not important. I am going to ask you what you did, and how you liked it compared to other languages you mentioned. I'm going to expect a reasoned opinion. If you have no story, then leave it out. Yes, I am impressed when a candidate lists seventeen programming languages. If I ask about one of them and they have nothing to say, then I start to doubt the entire CV.

It's fine to say "I'm not sure" or "I don't know." Do not attempt to hide a lack of knowledge. The interviewer will know (if not, you don't want to work there). You probably won't be called on it immediately, but your candidacy will probably end at that moment.

share|improve this answer
2  
I totally agree with a candidate stating that they don't know about something. I've often followed that up with asking if the interviewer wouldn't mind describing something to me. Sometimes you'll find you actually know the answer, but you understand it in a different way. On the other hand if you really don't know, it gives you something to learn. Even better if you can take a couple of notes, and then thank the interviewer for enlightening you. I'd hire most grads on the spot if they simply showed they didn't know but were willing to learn something. :-) –  S.Robins Dec 3 '11 at 10:00
1  
I am not impressed when a candidate lists seventeen languages. In fact, to me that's a red flag that says they are padding their resume in an attempt to impress. There are exceptions, of course, but only if they have a decade or two of experience. Though, it depends on how they list those languages. If they are listed equally ("cobol, fortran, java, erlang, lisp, pdp-11 assembler") it means something different than if they are listed separately ("proficient in ... familiar with ..."). –  Bryan Oakley Dec 3 '11 at 13:49
    
@BryanOakley Heh, that's exactly the wording I use on my resume. Is that pretty standard? –  Tikhon Jelvis Dec 4 '11 at 21:17
add comment

I'd suggest listing the ones you feel comfortable working in. I don't list LISP, Prolog, Eiffel, and all the other languages I only ever used in school because I don't feel comfortable enough with them to dive into an existing code base tomorrow.

If you list your skills by degree of skill, you could list the others such as:

Proficient: Java, C, SQL
Less proficient: C++, LISP, Prolog, Brainf*ck

Of course, you really should pick a better title than "Less Proficient", something that sounds better and more professional ;)

share|improve this answer
    
The problem is im still at school, and as you may expect probably, it's hard to become proficient in multiple languages in only two years while you have a lot more than learning programming languages to do. So if I only list languages that I am comfortable working with w/o needing to search on Google, there probably will only be one or two languages. –  Newbie_code Dec 2 '11 at 22:42
    
I agree with Frustrated...'s last comment. I would suggest you list the time you have spent with each language, and not worry yet about using words like proficient until it becomes too hard to remember how long you've used each language for. I usually refer to those languages I've only touched on as "Old skills I could revive if needed", and the rest I am expected to be proficient at simply because I listed them. –  S.Robins Dec 2 '11 at 23:06
    
@Newbie_code: you may end up with only one or two languages on your resume, but it will be accurate and truthful. Nothing wrong with that. Employers are interested in what you can do, not what you briefly studied at some time in the past. –  Bryan Oakley Dec 4 '11 at 14:12
    
@Newbie_code That's ok. Just claim you're proficient in one language, and "competent" in others. –  Stephen Gross Dec 7 '11 at 17:47
add comment

There's no one right answer to this question. Many people feel that there is, but then what will happen is that they'll be on one or the other side of the interview table with someone who takes a different view. No matter what you go with, some people will agree with you and others will disagree.

Common answers that don't involve tiering range from only listing things in which one is fairly proficient to the opposite extreme of listing anything one has ever worked on (the "buzzwords to get in the door" theory). There are many shades of grey in there with bits of wisdom such as "only list those technologies you'd actually want to use".

As FrustratedWithFormsDesign mentions, another possibility is tiering but even that is fraught with peril - what does "Less proficient" mean, exactly? One person's 5 out 10 is another person's 9 out of 10. While it provides more information to the hiring manager/HR, all it really shows is your own personal self-assessment of these technologies and not your actual skill level.

Personally my preference (for myself and for resumes I might look at) is to list the languages that one has some reasonably substantial amount of experience with (professionally or otherwise) as my feeling is that one can pick things back up fairly quick if need be. These items should then be sorted in order of competency with some weighting for importance.

share|improve this answer
add comment

I've been writing software using various languages for more than 20 years. If you asked me to code some killer algorithm in a language I used 10 years ago, I too would be hard pressed to remember the actual syntax. On the other hand, I would remember the form of the algorithm and I would be expected to be able to quickly find a reference that I could use to refresh my memory. What you need to remember is the general pattern of the algorithm. This then can be translated to the language of your choice.

Most employers won't expect too much of their graduate employees. Senior developers are expected to teach and mentor. What we DO expect is that you have the ability to continue to learn, and the capacity to discover the things that you might not find so easy to remember. Even at my "lofty age", I am expected to do the same.

I think you are expecting too much of yourself, and that what you are feeling is a lack of experience. You won't be able to demonstrate a high degree of proficiency until you've had the time to further develop your skills, and that requires experience using real world problems where there is no single correct solution to the problems that you are expected to solve. When it comes time to find employment, sell your abilities, and state that you have been exposed to several languages, and the sort of things you have worked on and found interesting. the rest will sort itself out in time.

Cheers.

share|improve this answer
add comment

Just be completely honest during the technical interview about your currency with the languages.

Many programmers with years and years of experience have picked up and long forgotten bunches of technologies, but those still being parts of successful accomplishments suitable for a summary listing on ones resume IMO.

Also useful for getting past silly HR keyword filters.

share|improve this answer
add comment

I have done some things in Python, PERL, Java, C, C++ but the majority of my work is C# so I listed a few projects I have worked on in my CV and explicitly said that it was C#, WPF/MVC/Silverlight. But that I had some subjects where I used some other languages so that I am familiar with them and will (hopefuly) get "up to speed" quicker then someone who hasen't used them at all.

Just describe what you are good at, where you have some expirience so that they get a (somewhat) clear view of your competence

share|improve this answer
add comment

In short, No! Put in your CV what you feel you can bring to the company you are interviewing with. If you are weak in some areas, do not put those areas first and be clear at interview which areas you consider you need more experience in. As a recent graduate, the person reading your CV will understand.

I have read and dumped in the garbage many CVs. I have only one concrete rule; if I can find a single lie in it, it goes in the bin immediately. No second chances, ever. And that includes gaps in employment. If you worked at MkDs, say so, never pretend you are better than you are.

Remember, your CV is to get you the interview. Only the interview will get you the job. If you and your CV do no match at interview time you will not get the job.

share|improve this answer
    
-1 "if I can find a single lie in it ... that includes gaps in employment". How can a gap in employment be considered a "lie"? –  Mark Bannister Dec 3 '11 at 16:57
    
"never pretend you are better than you are" - evidently I have been doing it wrong all these years. I thought job interviews were all about pretending to be better than I am! –  Kirk Broadhurst Jun 3 '12 at 23:11
add comment

I agree with a lot of the other posts.

It is not a good idea to post what worked for me (because I expect there will be downvotes, etc.).

So I think it depends on the specific situation.

My strategy was:

  • be exceptionally good at programming
  • lie a lot in the CV, but only about experience with programming languages
  • go to many interviews

One third of programming languages on my CV I have never really programmed in. Yes, this is questionable. I was very good with haskell, so I wrote experience with Scala, F# and Ocaml on my CV. And further C#, but I never programmed in C#.

In one situation I got check on my Javascript knowledge. I could answer the first one. The second questions I did not know. I said "I don't know. I think this is the answer. This can be written in haskell as a lambda expression like this...".

In one interview it just counted that I had very good grades and they didn't care so much about the programming details. In another interview they where just impress about the detailed knowledge I had in user interface design.

Another time it just counted to have very detailed knowledge about the specifics of design patters. Questions like "what architectural design patterns do you know?". Of course I knew all design patters listed on wikipedia. (And from my OOP classes the details about their use.)

So in my special case lying about my programming language experience did not have a negative impact.

Going to many interviews helped, because as soon as I had two very good offers in my pocket I was quite relaxed at the following interviews.

Presenting yourself during the interview is the most important aspect. And luck, e.g., being at the right place at the right moment.

share|improve this answer
    
Risky is all I can say. As soon as I find out you cant actually code in some language youve listed you're done. But I imagine interviewing a lot helps; eg you'll eventually get an offer somewhere. –  Kevin Jun 3 '12 at 18:20
    
the key of the strategy was to be in the top 0.1% of programmers (I'm not yet there probably but almost?). Further is it important to have that top 0.1% knowledge in object oriented and functional programming. –  mrsteve Feb 6 '13 at 4:09
    
and while I am here I advertise some nice programming languages :-) look at Haskell, MS Nemerle, Scala, MS F*, Coq, Agda. I am not sure about a OOP language, but 'Eclipse Object Teams' is quite good, and unfortunately the 'Newspeak' programming language (a smalltalk dialect) is not quite finished yet. (F* tutorial is not so simple to find, look at rise4fun.com/FStar/tutorial/guide) –  mrsteve Feb 6 '13 at 4:13
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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