└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Rails Interview Questions 2 | 3 | I get a fair number of questions via [Hacker Hours](http://hackerhours.org) and elsewhere regarding what questions to use/expect in an interview for a Rails developer, so figured I would get it together in a tidy list. Pull requests welcome. 4 | 5 | ## Tips 6 | 7 | ### Interviewers 8 | 9 | * Personalize your list of questions. 10 | * Don't ask questions you don't know the answers to. 11 | * Mix trivia questions with open-ended ones. 12 | * Use [Codr](http://codr.io/) or a similar online collaborative text editor for doing coding challenges 13 | * Can be seen in real-time by remote team members 14 | * The unique URL with the solution can be easily sent around or added wherever you a tracking information about the candidate 15 | * About a third of the way through the interview, however you're feeling about the candidate (:+1:/:-1:), try and convince yourself otherwise. 16 | * This is to help yourself fight your own biases. 17 | 18 | ### Interviewees 19 | 20 | * Don't study to the test. Not all of these questions will be used, and others will be asked that aren't covered here. Know your stuff. 21 | * Rails skills != CS skills 22 | * Know whether you are interviewing for a full-stack vs. backend-focused position. 23 | * Have code up on Github/Bitbucket/wherever - the more side projects you have to talk about, the better. 24 | * Be comfortable with *some* version control system. 25 | * Community awareness and resourcefulness can be as important as technical knowledge. 26 | 27 | ## The Questions 28 | 29 | ### General 30 | 31 | * What is a tree? What is a DAG? 32 | * Pseudo-code depth-first and breadth-first search. 33 | * Given a sorted array, what is the fastest way to find a element? What is the Big-O time to do so? 34 | * Explain how ajax works, hitting all parts of the stack. ([@abestanway](https://twitter.com/abestanway/status/278967644705677312)) 35 | 36 | ### Ruby 37 | 38 | * What is the difference between a lambda, a block and a proc? [I have gotten this one at every Ruby interview I've been in] 39 | * How do you sort an Array of objects by a particular attribute? What is a better way to do sorting with ActiveRecord? 40 | * What are some of your favorite gems? What are their alternatives? 41 | * In Ruby, which is generally the better option: a recursive function or an iterative one? 42 | * What are `#method_missing` and `#send`? Why are they useful? 43 | * What are the various Ruby runtimes, and how are they different? 44 | 45 | ### Rails 46 | 47 | * What is the general history of Rails? 48 | * What is new in Rails 4? 49 | * Explain the different pieces of Rails. 50 | * Walk through the flow of a request through Rails. 51 | * What are the different server options for running a Rails/Rack app? 52 | * Explain CSRF and how Rails combats it. 53 | * Explain mass-assignment vulnerability. 54 | * Why do some people say "Rails can't scale"? 55 | * What is Rack? 56 | * What is middleware? How does it compare to controller filters/actions? 57 | * Explain various forms of caching available in Rails. 58 | * What are some Ruby web server options? 59 | * How is something like `30.seconds.ago` implemented? (c/o @harrisj) 60 | * On a scale of "I've heard of it" (0) to "I maintain it" (10), how would you rate your Rails proficiency? 61 | 62 | ## Resources 63 | 64 | (no particular order) 65 | 66 | 67 | * [@darcyclarke](https://github.com/darcyclarke)'s [Frontend Interview Questions](https://github.com/h5bp/Front-end-Developer-Interview-Questions) (inspiration for this repo) 68 | * My [Advanced JavaScript](https://github.com/advanced-js/syllabus) class materials 69 | * [Video](https://www.youtube.com/watch?v=xPY1uqq1cgk) of the Junior Developer Panel that I hosted 70 | * [Ruby Koans](http://rubykoans.com/) 71 | * [Project Euler](https://projecteuler.net/) 72 | * [Flatiron School Prework](http://prework.flatironschool.com/) and [background](http://blog.flatironschool.com/flatiron-school-prework/) 73 | * [Job Interview](https://github.com/ruby-jokes/job_interview) by @ruby-jokes 74 | * [Developer Evangelist Interview Questions](https://github.com/MurtzaM/Developer-Evangelist-Interview-Questions) 75 | * [Resources](http://hackerhours.org/resources.html) from Hacker Hours 76 | * [Technical interview cheat sheet](https://gist.github.com/TSiege/cbb0507082bb18ff7e4b) 77 | 78 | ------------ 79 | 80 | Creative Commons License
Rails Interview Questions by Aidan Feldman is licensed under a Creative Commons Attribution 3.0 Unported License. 81 | --------------------------------------------------------------------------------