
Questions to Ask During a Ruby Interview - matt1
http://blog.ritirisi.com/2008/06/17/15-questions-to-ask-during-a-ruby-interview/#more-3
======
coffeemug
I think a good question to think about is why someone would want to design an
interview to specifically hire Ruby on Rails programmers. Other than a few
very rare situations when you want an expert fast, what would a rails
programmer offer that a C++ and Lisp programmer with a solid grasp of data
structures and algorithms wouldn't? Even in the few cases when specialization
is important, I still wouldn't design an interview entirely around Ruby on
Rails. Every framework has some gotchas that you only learn with experience,
but beyond that there is a ton of other stuff a good programmer should know
that's outside the realm of any given framework, or even any given language.

I've seen programmers that were hired specifically for C++ positions struggle
to move to J2EE projects, and it wasn't pretty. It's usually not a good idea
to hire one trick ponies.

~~~
lonestar
These interview questions were about Ruby, not Rails.

If you are hiring for a position where the developer will work primarily with
Ruby, it makes sense to ask Ruby-specific questions or have a Ruby coding
exercise. That shouldn't be the whole interview of course; as you mention, an
all-around strong candidate is preferable.

That said, the questions in the article don't require much Ruby experience.
Anyone with a grasp of OOP concepts could probably get most of them right.

~~~
tptacek
Coffeemug beat me to my comment about this post. We're an all Ruby shop, and I
don't think we've ever hired someone who (a) knew Ruby well coming in and (b)
wasn't up to speed in under a week. If you're strong with Python, Perl, or
Lisp, you will do fine in Ruby.

It is not a buyer's market for Ruby devs. Any post that suggests you screen a
candidate based on whether they know what the "||=" operator does is offering
bad advice.

~~~
oscardelben
Yes but if you are looking to hire people who already know Ruby, they should
know at least those basic questions.

~~~
xtho
The precise semantics of ||= were subject to a longer discussion on ruby-talk.
I don't think it's really that important whether it expands to 1.) a || a = b
or 2.) a = a || b, is it? So all you would know about a person giving answer
1) is that he/she was subscribed to ruby-talk at that time.

I find his answer to his own questions about proc/lambda/blocks unsatisfying
since that would be IMHO a good question to identify people who know ruby
well.

------
ghotli
I wouldn't design an interview just for a specific programming language. If
they can prove to me that they understand OOP and functional programming
concepts up to my standards, then they should be able to write useful code
given a week or two to learn the language at hand. In the case of Ruby, this
time line could potentially be shorter. The syntax is dead simple and the API
is rather intuitive.

~~~
oscardelben
The fact that the syntax is simple doesn't mean it's easy. I could learn lisp
syntax in two days but that doesn't make me ready to work in a lisp shop.

------
shin_lao
I don't see a strong correlation between these questions and being a great
programmer.

Being a great programmer doesn't mean knowing the nomenclature.

It is - in part - knowing which structure and algorithm is appropriate to
solve a problem, and how to implement it efficiently with the given language.

------
blasdel
_Variable typing is one of those topics that everyone sort of understands it,
but is hard to put it into words. I’ve iterated and improved the next series
of questions to really test a senior level candidate’s knowledge of static and
dynamic typing. This is my best attempt so far._

And a naive, inapt, incorrect, nomenclature-misusing attempt it is!

Please read and re-read the nearly perfect "What To Know Before Debating Type
Systems" before broaching this topic in any forum:
<http://www.pphsg.org/cdsmith/types.html>

------
onewland
That gotapi.com link is sweet. Is it commonly known?

~~~
carbon8
I think so. I've been using it in a fluid app for a long time now.
<http://railsapi.com/> is good for Ruby, too, especially since it's
customizable.

