Да, это очередная статья по старту с Ruby сейчас, общению с Ruby on Rails в будущем, но с одной лишь разницей, тут будет намного больше советов чем кода.

Поехали… Мой вам совет, начните с установки Linux дистрибутива. Почему linux? Ответ прост, первое: вы получите базовые навыки общения с командной строкой, а это уже здорово; второе: веб приложения размещаются в основном на серверах с операциооной системой семейства *nix, а следовательно вы будете уверены, что приложение, которое вы строите локально, будет работать на любом сервере в продакшене. Приведу пример. Саша лепит куличики в песочнице, засовывает песок себе в уши, в общем ему все нравится и он даже построил замок из песка. Но однажны, добрая тетя Анфиса купила Саше и невесть откуда взявшейся Алисе билет в зоопарк. Саша гулял по зоопарку, смотрел на животных, смотрел на Алису, и подумал: дай ка я построю для нее замок из песка. К несчастью в зоопарке, было очень мало песка, и он был грязный и вонючий. Без вопросов Саша был мастером своего дела, и даже из такого песка он смог построить замок, но у замка была только 1 башня, вместо задуманных 3. Так вот, если вы пользователь ОС windows и планируете писать сложные веб приложения используя Ruby on Rails, вам нужно мигрировать на *nix подобную ось. Иначе в какой то момент «высококачественного песка»(какой нибудь нужной библиотеки) рядом может не оказаться, и вы отправитесь в ближайшую больницу за костылем, которым будете выгребать непонятно что непонятно откуда… Если я вас убедил, то я молодец. Если нет, то Алису вам удивить вряд ли получиться.



Про установку ruby на свою машину написано куча статей, и я пожалуй не буду повторяться. Приведу лишь ссылку. Удивлены что это гугл? Все хорошо, программист должен уметь добывать информацию. Скажу лишь об одном моменте, не пишете во всех подряд командах sudo. Иначе… ну впрочем пробуйте, эксперименты это замечательно.

Вы не спали 3 дня, вам было тяжело, но вы справились. ВЫ УМНИЦА или МОЛОДЕЦ!!!

Предположим вы посмотрели пару уроков на тыц. Настало время окунутся в потрясающий мир ruby с головой. Да вы не ослышались, РУУУУБИИИИИ. Вы можете сказать: «я хочу писать веб приложения на Ruby on Rails, потому что я много слышал про этот фрэймворк(зная или не зная что такое фрэймворк), а не копаться в уже успевшей надоесть мне консоли». Но деваться некуда, вы же пойдя в школу сразу не прочитали «Войну и Мир», а начали учить алфавит. Ну так вот, руби это алфавит Rails.

Вам не хватает терпежки? Вспоминайте Алису, ну или повесте ее плакат на дверь… Поможет. В конце концов каждый чем-то сам себя мотивирует. В моем случае, я уволился с работы и засел дома, сутками сидел за ruby, зная что если я не устроюсь в скором времени на работу программистом, мне придеться собирать бутылки на улице. Вы можете пройти 30 уроков. Думаю этого будет достаточно. По крайней мере мне вроде как было достаточно.

И тут начинается самое интересное. Вы воскликните: «О да. Я начинаю изучать/учить(да что угодно) Ruby on Rails». Нет, вы поторопились. Для того чтобы получать удовольствие от обучения и разработки, вам нужны цели или хотя бы 1 цель, вам нужен воображаемый замок, который вы хотите построить для воображаемой Алисы.

Что я могу вам посоветовать. Опять же ссылку, хороший туториал, библию rails, логики, терпения и здравого смысла. Читайте про ruby/rails, наслаждайтесь процессом, не забывайте отдыхать(отдых очень важен для мозга, когда то один хороший человек советовал мне устраивать перерывы по 10 минут, держа при этом стакан с водой в вытянутой руке. Очень помогает отвлечься) Запомните, когда вы посмотрите на замок, вам будет хорошо, вы увидите какой путь прошли, и вам обязательно захочется идти дальше. Вам сейчас очень будет полезен ресурс.

И так, вы сгенерировали свой первый scaffold, посмотрели результат и возомнили себя гуру(по крайней мере я себя возомнил гуру =) ). Не спешите радоваться… Вы в начале пути. Вы уже наверняка знаете что такое MVC, если нет, бросайте все и бегите в википедию. Без основательного понимания что это такое вам придется туго.

Предположим что вы сгенерировали scaffold под названием post.

rails generate scaffold post что_то_что_есть_у_записи: тип_этого_чего-то

С понятием тип вы должны быть знакомы… Будте так любезны, откройте ваш любимый текстовый редактор и загляните в app/controllers/posts_controller.rb и confog/routes.rb, не забыв выполнить rake db:migrate(вы должны знать что это такое). Вам все понятно? Тогда вы снова УМНИЦА или МОЛОДЕЦ!!! Если нет, то гуглите или яндексите что такое REST и CRUD, вам обязательно нужно понимать что такое ресурс и какие действия с ним можно совершать. В нашем случае ресурсом является post(запись). Запись можно создать(create), посмотреть/прочитать(read), изменить(update), удалить(destroy). Вы все поняли? Рано радуетесь, найдите еще какой либо пример из жизни, например пирожок, я уж не знаю как можно изменить пирожок. Дайте волю своему воображению, например можно вытащить начинку, засунуть в пирожок бомбочку и дать попробовать другу. Наблюдая как после этого ваш друг собирает зубы по квартире друг смеется вместе с вами. В общем поэксперементируйте и как говорится «дайте волю своему воображению»…

Я могу много и нудно рассказывать про базовые вещи в Ruby on Rails, но выше я предоставил некоторое количество ссылок. Если вы владеете английским языком, а вы владеете(я сказал владеете!), то настоятельно советую купить подписку на этом забугорном интернет ресурсе. Там есть все что вам нужно и будет нужно.

В завершении столь бесполезной статьи, я хочу помаячить перед вами Алисой(помните такую?). Если вы не бездельник и у вас есть цель + немного характера, вы сможете работать junior программистом через 2-3 месяца с начала обучения. По крайней мере так получилось у меня, а значит и у вас получится, с учетом того что я живу в не столь крупном городе. Скорее всего вы будете получать не слишком большую зарплату(если над вами будут потешаться хорошо обеспеченные товарищи или друзья, угостите их пропатченным пирожком =) ), но на данном этапе вам очень важен опыт и понимание таких вещей как БД(базы данных, такие как mysql, postgresql), тестирование(хочу посоветовать начать с rspec), git(вы просто обязаны это знать, ни в коем случае не откладывайте!). Даже если вы уже нашли работу, хочу посоветовать заходить на разного рода порталы с вакансиями, искать вакансии с указанием Ruby/Ruby on Rails, брать тестовые задания и выполнять их. Так вы сможете быстрее понять что от вас скорее всего потребует работодатель(или будущий работодатель), получить хоть какой то, но опыт, начать составлять свое портфолио. И помните, дорогу осилит идущий. Всего доброго, досвидания.