Ruby on rails для начинающих

Сегодня в интернетах я нашел историю о том, как некто Джеймс Фенд учился Ruby on Rails в течение 12 недель. Ниже вы можете прочитать относительно точный перевод этой истории, и, надеюсь, вдохновиться на изучение этого прекрасного фреймворка (и прекрасного языка).

Прежде чем начать, я хотел бы представить Джоша Криуса (http://joshcrews.com) и поблагодарить его за то, что убедил меня начать изучать Ruby on Rails; без него, его помощи и без часов, которые он потратил на то, чтобы быть моим наставником, я не писал бы это сегодня. Спасибо.

23 января я запустил идею своей мечты, Freelancify.com. Ровно 12 недель назад я был техническим предпринимателем (tech entrepreneur), который тратил тысячи долларов, чтобы создать приличный MVP (минимально жизнеспособный продукт), потому что мне недоставало знаний. Одной из причин (как я тогда думал) было то, что обучение было для меня слишком сложным или заняло бы чрезмерно много времени. Я думал (как и многие другие), что программисты (и некоторые действительно) рождаются с набором волшебных навыков в решении проблем и математике, которые делают их гениями программирования. И именно 12 недель назад я принял лучшее решение за долгое, по-настоящему долгое время. Больше ни одна из моих идей не останется не более чем идеей. Теперь у меня есть возможность запускать рабочие версии, тратя деньги лишь на хостинг и прилагая некоторые усилия. На сегодняшний день этот набор навыков — это примерно как пригнать кучу тракторов во времена калифорнийской золотой лихорадки, пока все остальные используют простые лопаты. Я предлагаю каждому научиться писать код. Здесь я хотел бы добавить уточнение: ранее, назвал пост “Как я изучил Rails за 8 недель”, однако, если быть точным, то учитывая дату запуска, получается 12 недель. Однако за 8 недель я почувствовал, что знаю достаточно, а следующие четыре недели были потрачены в большей степени на то, чтобы заставить полученные знания работать, а не на обучение.


Какие навыки я имел прежде, чем начал изучать Rails?

Я был веб-дизайнером, обладающим познаниями в HTML и CSS, и, в основном, фокусировался на дизайне UI и UX. Самое сложное, что я делал с реальным кодом (не считая HTML) — это возможность настраивать WordPress. Одним словом, я абсолютно не имел представления ни о том, что такое MVC-фреймворк, ни о том, как в целом работают базы данных. Дизайн, макет и HTML для Freelancify были созданы мной за две недели в июне 2011-го.

Почему я принял решение учиться?

Возвращаясь в июнь 2011-го, когда макет был готов, я начал поиски кодера, который сделал бы макет функционирующим. Макет был практически готов: у меня были текстовые поля, выпадающие меню, формы, кнопки, ссылки, ведущие куда необходимо, и так далее. Нашел разработчика, и, если в двух словах, то парень мне не подошел. Я остался с кучей долгов и даже не близким к завершению продуктом. Тогда я связался с Джошем Криусом (с ним я познакомился на встрече, посвященной Ruby on Rails, которую он организовал в Нэшвилле), и встретился с ним, чтобы понять, можно ли сделать хоть что-то из того, что у меня осталось от разработчика. К сожалению, починка и доработка кода заняла бы не меньше времени, чем разработка с нуля грамотным программистом. Я упал духом, понимая, что не смогу позволить себе снова тратить тысячи долларов на разработку с нуля. И тогда Джош сказал… “Почему бы тебе просто не научиться обращаться с Ruby on Rails, этот проект был бы прекрасным способом” и затем “Я могу даже встречаться с тобой дважды в неделю и помогать тебе в обучении”. Я потратил целую ночь на раздумья. Моими вариантами было: найти комфортную работу и оплатить счета ИЛИ рискнуть всем, чтобы научиться Rails и, в конце концов, лакомиться лучшим раменом, который только готовят в Италии. Я решил. Позвонил Джошу на следующее утро. Я поставил все. Я выделил деньги из оставшихся сбережений и разделил их на три месяца (для неженатого парня, живущего в одиночестве и без детей одной тысячи долларов на месяц вполне достаточно). Время приниматься за работу, теперь я ученик на полном рабочем дне. Держу в уме: поиск в Google, Stackoverflow, IRC #RubyOnRails и сообщество Rails будут прикрывать меня, когда я застряну, уверен, что их будет достаточно.


Мои следующие три месяца — Миссия: получить MVP, получить достаточно, чтобы работать, но не “отстойно-достаточно”, чтобы оставить ужасное первое впечатление.

Недели 1 — 3

Это была, пожалуй, сложнейшая кривая обучения, но я НЕ сдавался.

Стены созданы для людей, которые, на самом деле, не хотят их покидать.

Установка рабочего окружения Rails для полного новичка может оказаться невероятно раздражающей. Подсказка #1: заимейте Mac. Подсказка #2: используйте Homebrew, RVM, Git и Heroku (на самом деле это все, что вам нужно, чтобы начать). Я потратил пару дней на установку, затем все удалил и снова установил. Достаточно повторить несколько раз, и вы привыкните к использованию командной строки терминала (консоли) и поймете, почему вещи работают так, как они работают. Затем, первая вещь, которой я занялся, были уроки TryRuby, Rails for Zombies и Rails Tutorial Майкла Хартла. Не беспокойтесь о том, чтобы на 120% понять материал, этого не случится, пока вы не начнете по-настоящему учиться. Я закончил Rails Tutorial и создал это похожее на Twitter приложение примерно за неделю, не совсем понимая, что я сделал. Позднее, по мере продвижения, я стал понимать, что все начинает обретать смысл.

Недели 3 — 6

С Twitter-приложением, созданным при помощи Rails Tutorial, я обрел некоторую уверенность. Руководство не сделало меня разработчиком, но теперь я знаю общие шаги в создании приложений, с создания самого приложения, и до установки его на Heroku. Все, что было между тем временем оставалось размытым. Как мне теперь ПО-НАСТОЯЩЕМУ начать учиться? Работая над реальным проектом, который что-то для меня значит. Джош и я решили, что мне стоит свободно поработать над Freelancify и посмотреть, что я смогу сделать. Первым, что я сделал, был перенос всего HTML с каркаса и организация его в файлы видов(views) и парциалов(partials). Я создал(scaffolded) шаблонные платформы для Пользователей(Users) и Проектов(Projects). Затем я начал изучать мой первый реальный гем Devise. Затем, возможность иметь отношения, например каждый Пользователь будет иметь портфолио. Но пользователи могут иметь множество портфолио, в то время как каждое портфолио может принадлежать лишь одному Пользователю. Когда вы поймете, как работают отношения между моделями и как вызывать/отображать вещи, которые принадлежат чему-то еще, жизнь станет намного проще. Если в какой-то части вы застряли и не можете сдвинуться с места, пропустите её, велика вероятность того, что пока вы разрабатываете другую возможность, вы так же поймете, как реализовать и то, что вы пропустили.

Недели 6 — 9

Шажок за шажком, я продолжал учиться, копируя и повторяя. Я мог заставлять какие-то вещи работать, а затем — бац — и я втыкался в стену и абсолютно не представлял, что же делать дальше. Заходя на Stackoverflow, IRC-чат #RubyOnRails, RailsCasts или дергая Джоша, в конце концов, я понимал, как действовать.

Делайте то же самое снова и снова, и вы научитесь всему довольно быстро. Тратить раздражающие часы, тестируя чей-то ответ со Stackoverflow, чтобы понять, что он не работает — это, на самом деле, полезно.

Ruby on Rails для начинающих. Изучаем разработку веб-приложений на основе Rails

Вы понимаете, чего не следует делать. И когда вы найдете ответ, вы начнете понимать, ПОЧЕМУ последнее не работало. Примерно в это время я начал осознавать, насколько велика картина вещей, и по-настоящему понимать, ПОЧЕМУ все работает именно так, как работает. Я чувствовал себя идиотом, возвращался назад и рефакторил код, который написал ранее, делая его более эффективным. И в какой-то момент я достиг стадии, когда все начало становиться на свои места.

Недели 9 — 12

Я был в режиме невероятной энергичности, дорабатывая Freelancify до стадии запуска. На этой стадии я чувствовал себя так, словно лечу, претворяя функции в жизнь. Последняя неделя была потрачена на отладку различных багов и ляпов. В этот понедельник я запустил сайт. Но я по-прежнему далек от завершения обучения… Вот так. Я опустил (во имя краткости поста) мелкие детали и технические моменты. Тем не менее, не стесняйтесь задавать вопросы в комментариях, я определенно постараюсь ответить. Джеймс Фенд.

P.S. — Несмотря на то, что мне сильно помогла помощь наставника, с которым я мог встречаться, вы определенно можете изучить Rails и без него. Или же попробуйте найти себе такого человека, многие Rails-разработчики любят вносить свой вклад в сообщество. Поищите локальные конференции и встречи.

Этой записи уже более двух лет (опубликована 27 января 2012-го года), но она, тем не менее, не утратила своей актуальности. Джеймс Фенд за это время успел продать Freelancify и вложиться в новый стартап, запись об этом он оставил 27 февраля 2013. Я считаю, что эта статья — прекрасный пример того, как человек может идти к поставленной цели. Достаточно лишь начать. 🙂


Учебник Ruby 2.2.1 от RubyCode.ru (RubyDev)

Этот учебник является форком проекта (rubydev), от которого автор решил отказаться.
Но небольшое руби сообщество, которым нравятся его мысли и идеи не позволило этому случиться. Так появился этот проект.
В свою очередь я попытаюсь исправить некоторые аспекты и улучшить для вашего понимания.
Учебник был написан для старой версии, с тех пор прошло много времени, поэтому каждый пост будет проверен и обновлен и дополнен новыми материалами.
Руби динамичный язык, который находится в постоянном развитии.

6 способов научиться программировать с нуля на Ruby on Rails

Так будет и с этим учебником. Как только я узнаю как более лучше подать материал или сделать код более совершенным сразу же подкорректирую книгу.
Буду очень рад к любой обоснованной критики. Сделаем эту информацию еще более понятной, современной и идеальной. Критикуйте все, что не понятно,
все что ошибочно, все что можно сделать проще и интересней и приводите свои доводы. Исправим)


Введение в Ruby, подготовка

Базовые типы данных в Ruby

  1. Строки
  2. Числа
  3. Диапазоны
  4. Массивы и многомерные массивы
  5. Хеш и символы
  6. Булевы типы данных

Базовый конструкции в Ruby

ООП в Ruby. Объекты и классы.

Случайные числа в Ruby

Регулярные выражения и грабинг, парсинг в Ruby

Сайты на ruby on rails

наверх

.

Отличный курс!

Подборка материалов по Ruby и Ruby On Rails

Все по существу. Полное отсутствие воды. Хорошая дикция автора. Легко слушать. Говорит доступным языком, все понятно объясняет. Можно задавать вопросы. Автор курса оперативно на них отвечает, если непонятно, то терпеливо вновь и вновь разъясняет непонятные моменты. Я доволен. Повезло, что нашел этот курс. Самая большая удача, что после курса я нашел работу веб разработчика в компании CARBONFAY.

Пётр Хиленко

От прохождения курса получил большое удовольствие!

Из плюсов могу отметить:
Грамотная, внятная речь ментора Константина, объясняющего каждый шаг.
Каждый урок содержит короткое видео по 1 теме и плюсом текстовое сопровождение урока, что не мало важно! Т.к. очень часто приходится сталкиваться с тем, что авторы пытаются запихнуть в видео как можно больше так, что забываешь где, про что говорилось. А уж текстовое сопровождение вообще редкость
Константин прививает полезную привычку гитхабить все изменения. Такого я вообще нигде не встречал и познакомился с этим, собственно, на этом курсе. Теперь это стало моей регулярной привычкой в каждом проекте!

Считаю большим плюсом то, что обучение проходит на реальном проекте и, соответственно, материал подается исключительно по потребности. Разумеется, учить язык и разбираться во фреймворке нужно, но когда все начинается со стандартных: циклы, массивы, функции и т.д. , то это плохо запоминается, т.к. реально не понимаешь, где это может пригодиться и зачем это вообще нужно. А доучить язык и фреймворк можно дальше в процессе, на других проектах, натыкаясь на проблемы, которых не было в курсе.

Очень порадовала поддержка, т.к. в процессе развертки Rails у себя на машине, обнаружил ряд проблем, которые мешали полноценно обучаться дальше. Константин приложил максимум усилий, чтобы помочь мне разрешить эту проблему. По мере прохождения я понял, что сам курс собран на Rails. Это тоже очень привлекает. Т.к. приходилось попадать на странички, где авторы обещали сделать меня мега-разработчиком на базе Rails, а страница было собрана на облачном конструкторе, да ещё так, что ребята не старались убрать лого конструктора.

Спасибо огромное Константину за курс! Желаю дальше продвигаться на данном поприще! Действительно качественных материалов по разработке, за которые хотелось бы платить, очень мало! Также желаю Константину периодически по рассылке слать какие-нибудь бесплатные плюшки по разработке.

Павел Полищук

В этом посте мы обсудим такие вещи как:

  • Краткая история Ruby
  • «Учить еще один язык программирования? Зачем?»
  • Основные принципы и конвенции Ruby

История Ruby

  1. Руби был изобретен Юкихиро «Matz» Мацумото
  2. Первая версия (1.0) была выпущена в 1996 году в Японии
  3. Язык был популяризован фреймворком RoR в 2005 году

Ruby динамичен.

Ruby также объектно ориентирован, и почти все в Ruby — это объект.

Еще один язык программирования?

Ruby — элегантный, выразительный и декларативный. Это три слова, которые я бы использовал, чтобы описать его как язык.

На него повлияли такие языки как Perl, Smalltalk, Eiffel и Lisp.

И, как однажды сказал сам Matz, «Ruby был разработан, чтобы сделать программистов счастливыми». («Ruby was designed to make programmers happy».)

Основы Ruby

В Ruby рекомендуется ставить два пробела для каждого вложенного уровня.
Это не требуется, как в Python, но это рекомендуется.

Вы используете для комментариев. Комментарии должны использоваться в умеренных количествах, потому что сам язык довольно выразителен.

— стандартный метод в Руби для вывода строк в консоль (сокращение от «put string»)

— выводит внутреннее представление объекта.

Скажем, у вас есть файл test.rb.

Врубись в Ruby: подборка книг по Ruby и Ruby on Rails

Чтобы запустить файл из командной строки, нужно ввести в терминале «ruby test.rb».

Конвенции

Переменные пишутся в нижнем регистре или как если имеют несколько слов.

Константы пишутся капсом или с первой заглавной .

Классы и модули также принято записывать с первой заглавной: .

Отбросьте двоеточия. Не ставьте двоеточия в конце строки.
Хотя иногда двоеточия можно ставить между двумя утверждениями, это не рекомендуется, лучше разбивать их на разные строки.

IRB — интерактивный Ruby. IRB это консольный интерпретатор Ruby, который идет сразу с установкой языка и дает вам поэксперементировать.
Вызывается командой в консоли.

Ruby

Добавить комментарий

Закрыть меню