└── 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 | 
Rails Interview Questions by Aidan Feldman is licensed under a Creative Commons Attribution 3.0 Unported License.
81 |
--------------------------------------------------------------------------------