По поводу того, что нужно знать из основ - полностью согласен с Денисом
Хотел бы добавить свои мысли по поводу пути изучения RoR
Довольно часто возникает вопрос в том, какую технологию стоит изучать. Обычно выбор стоит между Ruby on Rails, Python + Django и Node.js. Я считаю, что программист не должен замыкаться на одной технологии. Он должен иметь представление о смежных/новых технолоигях, и уметь, при необходимости, довольно быстро переключится на новый инструмент.
RoR считаю идеальным в плане начала обучения, потому что рельсы, по сути, являются аккумуляцией многолетнего опыта в веб разработке, и понимание их подхода позволит легко и эффективно изучать и использовать другие технологии.
Соответсвенно, в таком случае самостоятельное изучение не будет хорошим решением, потому что нужен наставник, который поможет в освоении лучших практик и не допустит велосипедостоительства.
Лучшим путем будет практика в какой-либо конторе, с решением реальных задач. Но, тут проблема вот в чем - обычно новичек примерно 3-5 месяцев практикуется на несложных проектах, и это, на мой взгляд довольно медленно.
Идеальным, на мой взгляд, является практика в небольшой команде. Я так начинал, у меня был очень опытный наставник, проекты заходили намного сложнее, чем я мог потянуть и мне приходилось очень быстро учиться, с чем очень хорошо помогает опытный наставник. Альтернативой может послужить практика падаваном у упытного программиста, но тут главное не упустить тот момент, когда ты уже месяц решаешь знакомые тебе задачи и не продвигаешься вперед.
Альтернативой может послужить прохождение курсов. Я знаком с материалами курсов
rubybursa.com и
ror.thinknetica.com, но они не показались мне интересными. Довольно интересными выглядят
https://mkdev.me/. Не знаком с материалом (их нет на торрентах=)), но блог Кирила очень интересен, и я думаю, что курсы, скорее всего, тоже на уровне, тем более там несколько курсов для различного уровня подготовки.
Я также планирую запустить свой курс. Он будет направлен на то, чтобы достаточно быстро (примерно месяц обучения) получить практические знания, которые помогут за месяц пройти этап неинтересных проетов и попасть в разработку серьезных приложений с сильным руководителем. Если интересно - подписывайтесь на твиттер, там будут обновления.
https://twitter.com/c3gdlk
P.S. Для начала ruby учить не надо. Основы учатся за пол часа
learnxinyminutes.com/docs/ruby - остальное изучается через практику.
Самым важным пожалуй является понимание того, что такое блоки и как их использовать и осознание того, что методы класса могут быть вызваны сразу же после их описание. Т.е. все эти немного не привычные scopes, validates, has_one и belongs_to - не что иное, как вызов методов класса, которые в этот самый класс добавляют какие-то данные.