I just discovered the what c# knowledge should I have? question and wondered about the same, but for Ruby. I consider Ruby to be my favorite programming language, and beyond learning the basics, at least what I’ve picked up from numerous Ruby on Rails projects and a few Ruby scripts, I’ve tried to learn from reading blogs like Gluttonous, O’Reilly Ruby, Ola Bini, and Polishing Ruby. I’ve also read in books like The Ruby Way.
However, I haven’t felt fully prepared when being interviewed about my Ruby skills. I was asked once if I knew about closures and at first I responded that I didn’t, but then I asked if the interviewer meant code blocks, like lambda and do…end, and he did. How did I go about 3 years of programming Ruby and trying to learn the language without learning that closures = code blocks?
So, my question to you is what knowledge should a Ruby programmer have of the Ruby language? What would you expect, as an interviewer for a Ruby position, me to know? Just list some topics, and I’ll do the reading about them. Listing Ruby-specific tools like Ruby on Rails, Rake, Rack, etc. is good too, if you think that’s necessary.
This is sort of from the top of my head; I’m sure I am missing a lot. Besides the things mentioned here, understanding programming and object-oriented programming in particular is a must, of course.
A few important language features:
[],[]=,==,+,<<, etc. on an object.collect,inject,join,zip, etc. where appropriate.attr_accessorand friends, and how you can define them yourself.ModuleandObject).Hashmethod argument as a substitute for named arguments (even if it’s just because it’s a common pattern).Some vital tools:
Some framework knowledge:
Ultimately, keep in mind that the above is “just knowledge”, and not skills. It’s probably easy to pick up most of this if you’re not familiar with it.