Do Interviewers Frown at Potential Hires When They Use Ruby or Python to Solve an Interview Question?

The best answer to any question.
Aug. 16 2012 9:10 AM

Do Interviewers Frown at Potential Hires When They Use Ruby or Python to Solve an Interview Question?

ELau

This question originally appeared on Quora.

Answer by Edmond Lau, engineer at Quora:


Having interviewed a few hundred candidates across Google, Ooyala, and Quora, I would contend that the situation is quite the opposite, particularly if you're interviewing at the faster-moving end of companies like the typical startup. The choice of programming language matters, and most candidates I've interviewed who can code only in C, C++, or Java put themselves at a competitive disadvantage relative to those who use Ruby or Python.

In an engineering interview, you typically only have 30 minutes to an hour to impress your interviewer and to demonstrate that you can solve technical problems and get things done quickly. The faster you can complete a problem correctly, the more quickly I, as an interviewer, can move onto harder problems or assess your other skills.

Your choice of programming language is therefore important to the extent that it affects the speed with which you can solve problems. Languages like C, C++, or Java tend to be significantly more verbose than more productive languages like Python or Ruby that come with more powerful built-in primitives like list comprehensions, functional arguments, destructuring assignment, etc.

Research by Prechelt that compared 80 implementations of the same set of requirements across seven different languages showed that solutions written in C, C++, and Java were on average two to three times longer in terms of non-comment lines of code than scripting languages like Python. Paul Graham has also written extensively that one of the competitive advantages of his Viaweb startup was a more powerful and productive programming language.

The research lines up with my personal interview experiences, and I'd estimate that it takes the typical candidate roughly three times longer to express the same algorithm on the board in a non-scripting language than it does in a scripting language. In interviews where a candidate actually needs to write executable code on a computer, the time that a person spends compiling C, C++, or Java code is time that another candidate who's proficient at Python or Ruby is using to address the actual problem itself. Once you factor in the additional time needed to recover from mistakes or bugs, the absolute time differences start to compound. Each minute spent writing boilerplate code or additional syntax for a less productive language is a minute not spent tackling the meatier aspects of a problem.

The ability to choose the right tool for the job is an important skill. Choosing a less productive language makes me wonder as an interviewer whether you'd choose less productive tools on the job, like trying to write C++ or Java code to parse and format files when someone can be orders of magnitude faster using shell scripts or a scripting language.

There are two exceptions I would make for candidates that use C, C++, or Java on a problem that could be more quickly solved with a language like Ruby or Python:

  • If you're a fresh college grad who hasn't picked up a scripting language, I tend to be more lenient and evaluate whether I think you can pick one up quickly on the job.
  • If you're more experienced, really proficient at C, C++, or Java, and can solve a problem as quickly as a good programmer who uses Python or Ruby, then that's a strong a skill to have, and I'll take into account that it'd probably be easy for you to pick up a scripting language. Still, there would be a lingering doubt in my mind wondering why you didn't learn a more productive language over the years, since you would've been able to solve the problem that much more quickly.
Advertisement


All that said, there are probably certain interview situations where using a non-scripting language might be desirable. If you're interviewing for a search company or a company that focuses on iOS or Android development, using C++, Objective-C, Java, or whatever the core language is at the company would certainly help demonstrate that you could be effective on the job quickly. If you don't know a scripting language well, it's better to use a language you're proficient at, though it'd be even better to just get proficient at a scripting language. Ultimately, you want to pick the programming language that most effectively demonstrates that you'd be productive. My advice would be to ask your interviewer if he or she has a preference, and if not, to choose the most productive programming language for the problem.

More questions on job interviews:

TODAY IN SLATE

Politics

The Democrats’ War at Home

How can the president’s party defend itself from the president’s foreign policy blunders?

Congress’ Public Shaming of the Secret Service Was Political Grandstanding at Its Best

Michigan’s Tradition of Football “Toughness” Needs to Go—Starting With Coach Hoke

A Plentiful, Renewable Resource That America Keeps Overlooking

Animal manure.

Windows 8 Was So Bad That Microsoft Will Skip Straight to Windows 10

Politics

Cringing. Ducking. Mumbling.

How GOP candidates react whenever someone brings up reproductive rights or gay marriage.

Building a Better Workplace

You Deserve a Pre-cation

The smartest job perk you’ve never heard of.

Hasbro Is Cracking Down on Scrabble Players Who Turn Its Official Word List Into Popular Apps

Florida State’s New President Is Underqualified and Mistrusted. He Just Might Save the University.

  News & Politics
Politics
Sept. 30 2014 9:33 PM Political Theater With a Purpose Darrell Issa’s public shaming of the head of the Secret Service was congressional grandstanding at its best.
  Business
Moneybox
Sept. 30 2014 7:02 PM At Long Last, eBay Sets PayPal Free
  Life
Gaming
Sept. 30 2014 7:35 PM Who Owns Scrabble’s Word List? Hasbro says the list of playable words belongs to the company. Players beg to differ.
  Double X
The XX Factor
Sept. 30 2014 12:34 PM Parents, Get Your Teenage Daughters the IUD
  Slate Plus
Behind the Scenes
Sept. 30 2014 3:21 PM Meet Jordan Weissmann Five questions with Slate’s senior business and economics correspondent.
  Arts
Brow Beat
Sept. 30 2014 8:54 PM Bette Davis Talks Gender Roles in a Delightful, Animated Interview From 1963
  Technology
Future Tense
Sept. 30 2014 7:00 PM There’s Going to Be a Live-Action Tetris Movie for Some Reason
  Health & Science
Medical Examiner
Sept. 30 2014 11:51 PM Should You Freeze Your Eggs? An egg freezing party is not a great place to find answers to this or other questions.
  Sports
Sports Nut
Sept. 30 2014 5:54 PM Goodbye, Tough Guy It’s time for Michigan to fire its toughness-obsessed coach, Brady Hoke.