Лучший способ изучить Rails. Почему Ruby on Rails является одним из лучших среди первых языков программирования для дизайнеров. Почему Ruby самый лучший выбор

Главное достоинство любого веб-дизайнера - это быть в состоянии понять - и даже организовать - то, что происходит «за кулисами».

По крайней мере, вам следует взять несколько уроков программирования. Я не говорю о языках front-end, типа HTML и CSS - вы, наверное, уже знаете многое из этого материала. Я говорю о back-end вещах.

Если вы знаете, как заложить фундамент, тогда вы сможете лучше понять, как спроектировать остальную часть сайта. Дело в том, что изучение программирования сделает из вас более эрудированного дизайнера. Кроме того, кому бы ни хотелось нанять дизайнера, который знает все от проектирования до разработки сайта?

Хитрость заключается в выборе места для начала. Изучение программирования может быть сложным процессом, особенно, если вы выбираете один из наиболее сложных языков, как C ++ или PHP.

Итак, с чего лучше всего начать? Ответ один: Ruby on Rails является одним из лучших языков программирования и фреймворком для изучения основ проектирования.

Почему Ruby самый лучший выбор?

Для начинающих, Ruby является одним из самых простых языков для усвоения, особенно если у вас есть некоторый опыт написания HTML или CSS, который у большинства дизайнеров есть.

Одной из первых программ, которую вы сделаете, начиная изучать какой-либо язык - это позорный «Привет мир!», который включает в себя выведение этих слов на экран.

С языками типа C ++, может быть где-то от пяти до семи строк кода, только чтобы отобразить эти два слова. А вот если использовать Ruby, там будет только одна линия, и одна команда.

Puts "hello, world!"

Вот и все! Это все, что вам нужно, чтобы напечатать слова «Привет, мир!» на экране. Довольно легко, правда?

Ruby on Rails также очень «сухой» язык. Являясь одним из принципов развития, DRY (сухой) означает «Don’t Repeat Yourself» (Не повторяйся!) - то есть, не программируйте элемент снова, когда вы можете использовать тот, что вы уже создали. Это делает Ruby очень легким и часто используемым для разработки языком программирования, так как он нацелен на быстрое и эффективное выполнение проекта.

Ruby или Rails?

Ruby - это язык программирования. Rails - это фреймворк, который использует Ruby, чтобы выполнить свою работу. Фреймворк Ruby on Rails - это коллекция сборных или предварительно написанного кода, который помогают ускорить процесс создания новых проектов. Изначально, он был создан, чтобы разработать средство управления проектами Basecamp. Кроме Basecamp, есть и другие популярные веб-приложения, построенные с помощью Rails, как например, 500px, ThemeForest и MyFitnessPal.

Как только вы поймете, как работать с языком Ruby, и заставите материал работать во фреймворке Ruby On Rails, вы сможете начать создавать веб-приложения.

Ruby - на пике популярности!

Благодаря взрыву популярности мобильных устройств и техники, которая всегда на связи, Ruby невероятно популярен сейчас. И, вероятно, так будет и дальше. Индекс TIOBE оценивает Ruby, как 13-ый самый популярный язык программирования. В соответствии с новыми тенденциями, по данным Indeed.com, Ruby также испытывает на удивление высокий спрос.

TIOBE Index

В любом случае, чтобы вы не выбрали - спрос или популярность - Ruby довольно популярен. Это делает его одним из лучших мест для начинания, потому что, как только вы разобрались в этом языке, вы можете получить работу довольно быстро. И это прежде чем вы приступите к изучению другого языка, чтобы расширить свои навыки.

У Ruby есть надежная опора!

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

Благодаря фреймворку Ruby On Rails, уже есть тонны предварительно существующего кода, который вы можете использовать в собственных проектах. Ruby Gems, библиотека фреймворков Ruby, имеет более чем 600 000 библиотек, из которых можно выбрать нужное.

Каждый раз, когда вы изучаете что-то новое, вам нужно много документации и поддержки. Есть тонна мест, где можно найти учебные материалы, учебники, руководства и даже Q & A форумы. Если вы столкнулись с конкретной проблемой, простой веб-поиск, вероятно, устранит ее. Это важно.

Простая документация и легкий доступ к поддержке необходимы, когда вы изучаете новый язык - когда вы, на самом деле, изучаете что-то новое.

Ruby «допускает» больше контроля над дизайном

Если вы просто веб-дизайнер, создание веб-сайта может быть длительным и сложным процессом. Когда вы садитесь за работу с программистом и обсуждаете необходимый back-end для вашего сайта, вам часто приходится жертвовать front end’ом, чтобы все работало должным образом.

В конечном счете, это может привести к продукту, который выглядит совершенно по-другому, чем ваше первоначальное видение. Программисту может быть все равно, но для вас это, вероятно, будет проблематично.

Вы не столкнетесь с проблемами, подобного рода, если вы будете программмировать сами. Не обязательно зависеть от других, чтобы получить законченный проект, и вы будете гораздо лучше понимать, что может быть достигнуто с точки зрения разработки. Конечно, было раз или два, когда цели вашего проекта были слишком высоки для одного программиста или команды разработчиков? Когда вы изучаете язык подобный Ruby, вы можете наслаждаться простотой понимания потребностей, и возможностей, с другой стороны.

По сути, Ruby предназначен для использования в веб-приложениях и веб-разработке, поэтому это идеальное место для начинающих веб-дизайнеров. Как только вы поймете этот язык и узнаете, как использовать фреймворк Ruby on Rails, вы будете иметь гораздо больше контроля над вашими проектами.

Где учиться Ruby?

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

Если вы хотите традиционное обучение, как в классе, вы можете пройти обучение на специальных сайтах по изучению программирования. Вам не обязательно поступать в университет или колледж, чтобы получить рабочее образование.

Один из моих любимых ресурсов - и, совершенно бесплатный - для обучения Rails - это Учебник Rails Майкла Хартла. Он проведет вас от простого до сложного проекта в вашем собственном темпе обучения, и вы можете начать с самого начала абсолютно без знаний Ruby on Rails.

Независимо от того, какой путь обучения вы выберете, помните, только практика приводит к совершенству. Установите личные цели, чтобы проводить определенное количество времени каждый день, работая с Ruby. Придерживайтесь этих целей и будьте настойчивыми. Прежде чем вы узнаете этот язык до конца, вы уже будете экспертом, который может создать просто фантастические проекты.

Ruby начал разрабатываться 23 февраля 1993 года и вышел в свет в 1995 году. Название навеяно языком Perl, многие особенности синтаксиса и семантики из которого заимствованы в Ruby (pearl - «жемчужина», ruby - «рубин»). Целью разработки было создание «настоящего объектно-ориентированного», лёгкого в разработке, интерпретируемого языка программирования.

Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями. Кроссплатформенная реализация интерпретатора языка является полностью свободной.

Ruby on Rails (RoR) - фреймворк, написанный на языке программирования Ruby. Он реализует архитектурный шаблон Model-View-Controller для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером баз данных. Является открытым программным обеспечением и распространяется под лицензией MIT.

Чтобы помочь вам в изучении этих технологий, мы собрали подборку книг. Как всегда, если вы знаете книгу, которая не попала в этот материал, делитесь ей в комментариях.

Эта книга предназначена для тех, кто хочет писать на Ruby как профи. В ней рассказывается, как проектировать красивые API и работать с приёмами функционального программирования. Новичкам книга не подойдёт, а вот тем, кто уже разбирается в Ruby, она точно пригодится.

Цель данной книги - научить читателей эффективно использовать язык Ruby. В книге рассматривается версия Ruby 2.1. Издание содержит около 400 различных примеров, сопровождающихся четкой постановкой задачи и ее решением с подробными комментариями.

Книга отличается достаточно низким входным порогом. Для ее изучения необязательно знать основы веб-разработки. В книге материал о Ruby on Rails, популярного фреймворка для разработки веб-приложений, дается с нуля. Автор Майкл Хартл, помимо Ruby on Rails, знакомит читателя с основами самого языка Ruby, языка запросов SQL, CSS, HTML. В книге много внимания уделено практическому использованию возможностей фреймворка. Также можно ознакомиться с фрагментом книги.

А эта книга пригодится именно начинающим. Её сложность увеличивается по нарастающей, и в каждом следующем разделе используются навыки, полученные в предыдущих.

С «Изучаем Ruby» вы в легкой и увлекательной форме на практике освоите все возможности этого языка, который сначала стремительно захватил сердца программистов Калифорнии, а затем и России.

Прочитав эту книгу, вы научитесь писать элегантный код с применением всех его уникальных особенностей.

В этой книге подробное разбирается внутреннее устройство языка Ruby. Знать сам Ruby читателю не обязательно, но вот знание C и, в особенности, принципов ООП будет огромным плюсом.

Эта книга отлично подойдёт для знакомства с Ruby. В ней разбираются все необходимые основы: от установки языка до обработки файлов и ООП. Каждая тема снабжена понятными примерами.

В этой книге рассказывается об одной из самых интересных фич Ruby - блоках. Они похожи на замыкания и лямбды и используются как в простых структурах языка вроде блоков, так и в сложных приёмах.

Эта книга разбита на несколько секций, различающихся по сложности. Сперва рассказывается о настройке и основных возможностях Ruby, а затем речь идёт о стандартной библиотеке и темах для продвинутых.

В этой книге рассказывается об основах веб-разработки на популярном фреймворке Ruby on Rails. Чтобы дать читателю представление о работе с реальными проектами, в книгу включены примеры использования Git, GitHub и Heroku.

Эта книга посвящена использованию принципов ООП в веб-проектах на Ruby on Rails. Фокус смещён в сторону практических решений, которые берут наилучшее от «пути Rails» и объектно-ориентированного подхода.

Изучение нового языка программирования может занять много времени и может быть крайне скучным. Разработчики.Net точно сейчас рассвирепеют и воскликнут: «Зачем мне вообще это учить, ведь я профессиональный разработчик.Net, и моё ежедневное расписание вряд ли сможет втиснуть в себя процесс изучения нового языка!» Но это будет крайне опрометчивым заявлением, так как при изучении новых языков программирования, вы изучаете много нового и полезного, особенно если этот язык представляет собой обновленную версию уже существовавшего ранее другого языка. Ruby как раз относится к такому типу языков. Я согласен с тем, что процесс перехода от разработчика-новичка до профессиональна в рамках того или иного языка программирования – это наисложнейший процесс, но опыт стоит того. Сейчас я могу лишь ввести вас в курс дела, и я уверен, что вы точно не захотите останавливаться. Отнеситесь к этому проще!

Примечание: учтите, что данная статья несет в себе лишь поверхностное знакомство с Ruby (языком программирования) и Rails (приложением-платформой). Главная цель в том, чтобы ввести вас в курс работы с Ruby, и мотивировать вас сделать толчок, требуемый для того чтобы начать изучать новый язык программирования.

Что же такое Ruby?

Ruby, как уже было сказано, - это обновленная комбинация различных подходов в программировании. Ruby – это превосходная смесь простого в понимании подхода к рабочему процессу от Python, утонченность Smalltalk и облегченная стилизация, сопутствующая процессу разработки на Perl. Ruby – это высокий уровень объектно-ориентированного программирования (как и в случае с большинством других языков программирования в наше время), начало которому было положено еще в середине 90-х в Японии. Со временем Ruby распространился и на территорию США и Европы.

Ruby известен за счет системы динамического типа и автоматического распределения памяти. Под динамическим типом я подразумеваю то, что большинство типов, проверяемых в программе Ruby, выполняются во время запуска, а это значит, что вам можно не беспокоиться о типах целых чисел или строчных. Ruby сделает это за вас. Мы увидим это в небольшим примере позже.

Основная цель при запуске Ruby заключалась в том, чтобы облегчить людям взаимодействие с машинами и процесс понимания кода. Основатель Ruby, Юкихиро Матсумото (Yukihiro Matsumoto), настаивает на идее о том, что Ruby был разработан для повышения продуктивности программистов, а не для оптимизации приложения со стороны машины.

«Часто люди, особенно компьютерные инженеры, концентрируют свое внимание на машинах. Они думают, что тем самым можно ускорить работу машины, можно повысить ее эффективность, что можно улучшить всё-всё-всё, что касается машины». Они зацикливаются на машинах. Но на самом деле нам нужно фокусировать свое внимание на людях, заботиться о них, облегчая процесс работы с приложениями, посредством машин. Мы настоящие и живые, а машины всего лишь подчиняются нам.

Что же такое Rails?

Rails представляет собой невероятно продуктивное приложение-платформу, написанную на Ruby Дэвидом Ханссоном (David Heinemeier Hansson). Предполагается, что разработка веб-приложения на Rails происходит в 10 раз быстрее, чем на платформе, основанной на Java. Rails представляет собой платформу, основанную на Ruby (конечно же!), и распространяемую с открытым исходным кодом, которую можно использовать для быстрой и легкой интеграции базы данных.

Rails известен за исключительно первоклассные идеи, которые позволили использовать различные новые подходы к программированию и создавать динамическую структуру программирования. Код основного приложения и обновленная база данных всегда будут включать в себя все требуемые свойства Ruby для выполнения программы от начала до конца.

Обычная программа Ruby

Давайте посмотрим, насколько простыми и интересными будут вещи после этого:

Код:
personal = “I don’t love my girlfriend”
puts personal
На выходе:
I don’t love my girlfriend
Да-да! Никакой инициализации, никаких точек с запятыми и никаких методов.

Теперь давайте постараемся увидеть разницу между PHP и Ruby на примере случая, когда нам нужно перевернуть строку:

PHP:
strrev(“string”);
Ruby:
“string”.reverse
Вуаля! Мы практически не тратим времени и полноценно переворачиваем последовательность записей. Нужно учитывать разницу в усилиях, проделанных в обоих языках. Язык программирования, основанный на Ruby значительно облегчает процесс написания программы. Это напоминает написание на английском языке, нежели на языке программирования. Это будущее для всех языков.

Преимущества использования Ruby (и Rails)

Всем известно, что мир Ruby очень большой, и сегодня мы не охватили даже 1%, но данная запись позволит вам ощутить мощь данного языка программирования и простимулирует вас начать самостоятельно знакомиться с ним. Теперь давайте окунемся в мир преимуществ Ruby:

* Доступность . Как было сказано ранее, именно в этом заключается одно из главных преимуществ Ruby. В качестве языка программирования Ruby является очень уточенным, и очень напоминает английский язык. Именно сходство с обычным разговорным языком позволяет новичкам без труда освоиться в работе с Ruby.

* Лаконичность и мощь . Пример, приведенный выше, демонстрирует нам то, каким лаконичным является код Ruby. Он настолько краток, насколько это вообще возможно. К тому же, Ruby представляет собой язык, настолько же мощный, насколько ими могут быть и другие языки, так как он представляет собой язык объектно-ориентированного программирования на высоком уровне.

* Нет нужны изобретать велосипед . Rails (основанный на Ruby) – это один интерфейс программирования, с которым вам больше не придется «изобретать велосипед». Он генерирует код, который может быть использован многократно в различных случаях.

* Встроенное тестирование . Rails популярен за счет безопасности и возможности внесения исправлений. Платформа будет снабжать вас возможными вариантами написания кода, что значительно облегчит процесс разработки. Также, в Rails представлены некоторые простенькие тесты, которые могут быть расширены по желанию программистов.

* Среды Dev, Test и Prod . Rails позволяет начать ваш проект в трех различных средах, называемых Dev, Test и Prod. Все три среды ведут себя немного по-разному.

Подборка

Теперь давайте ознакомимся с некоторыми веб-сайтами (популярными), в разработке которых был применен инструмент Ruby. Вы увидите, насколько ловко дизайнеры управляются со своими проектами за счет Ruby.


02.


03.


04.


05.


06.

К написанию данного текста автора подтолкнуло изучение ряда найденных в Глобальной Сети материалов, которые вполне можно было бы обозначить одной и той же рубрикой/тегом: Как я выучил Ruby (или Ruby on Rails, PHP, JS, C++, etc) за три дня .

Ну или тому подобное. Автору, в свою очередь, сразу же припомнился (неконтролируемые ассоциации) ряд анекдотов, объединенных опять-таки общей тематикой, заключающейся в оценочной характеристике действий, которые возможно выполнить сдуру... русский язык могуч и невероятно афористичен, но, к сожалению, не представляется возможным процитировать эти шедевры здесь; соответственно, ничего не остается, как предложить вниманию читателя собственноручно написанный вариант доки из цикла Как с удовольствием и относительно быстро научиться работать в Ruby on Rails .

Рабочий пример описанного в статье кода, в числе других Rails Examples - всегда возможно найти в тестовом блоге автора на herokuapp.com , welcome.

Методика проста, и автор совершенно не претендует здесь на лавры первооткрывателя: необходимо, чтобы было интересно, а результаты бы не заставили себя ждать. Не мешает таже попробовать поиграть на собственных слабостях, порой ведь и тщеславие способно быть на пользу делу; итоги разработки должны быть таковы, чтобы их можно было с гордостью предъявить читателям, друзьям и коллегам в Сети, задеплоив куда-нибудь на Heroku или Amazon , также - чтоб можно было вновь и вновь к ним возвращаться, перестраивая и усовершенствуя, форумы и StackOwerflow нам всем в помощь. Вот я и говорю, почему бы не написать, для начала, свой блог на Ruby on Rails ?

Оттолкнуться предлагаю от отличной доки Getting Started with Rails либо его русскоязычной адаптации Rails для начинающих , также Build a Blog with Ruby on Rails , также в помощь материалы этого блога, ссылки на которые легко находятся в левом сайдбаре. А дальше - все, дальше магия, на первых порах все расписано как по нотам, открываем консоль - и вперед... автор считает своим долгом сделать лишь несколько пояснений и технических рекомендаций, призванных облегчить адепту поиск и обретение Светлой Стороны Силы, и не более того. Это - только ваш бой, смелее вперед и возвращайтесь с победой.

Итак. Step-by-step первого мануала отлично выверен и не вызовет у вас, я надеюсь, никаких хлопот; все, что от вас требуется - быть внимательным, скрупулезно повторяя подробно прокомментированные шаги... и через час ваш первый блог уже готов, можно передохнуть и переходить ко второму, несколько более интересному. И именно вот здесь, может статься, вам пригодятся несколько напутствий, к которым сейчас и приступим.

Начнем с утверждения, что вот эти методы вполне способны (как вариант) выглядеть так, как показано далее, но никоим образом не так, как в оригинале:

app/controllers/posts_controller.rb

# Update action updates the post with the new information def update if @post.update_attributes(post_params) flash[:notice] = "Successfully updated post!" redirect_to posts_path else flash[:alert] = "Error updating post!" render:edit end end # The show action renders the individual post after retrieving the the id def show end # The destroy action removes the post permanently from the database def destroy @post = Post.find(params[:id]) if @post.destroy flash[:notice] = "Successfully deleted post!" redirect_to posts_path else flash[:alert] = "Error updating post!" end end

А впрочем, попробуйте и так и эдак, почему нет. Идем далее.

Второй блог, хотя и более сложный (добавлены редактор статей CKEditor и devise , гибкое средство для аутентификации в rails-приложениях), почему-то лишен в оригинале возможности оставлять комментарии. Вам придется собственноручно восполнить этот недостаток: действуйте по аналогии с описанием создания первого блога, потребуются лишь совсем незначительные изменения: попросту говоря, вместо article и articles первого блога будут у вас post и posts в блоге втором, вот и вся, по сути, разница. Будьте внимательны, и все получится.

Recaptcha к комментариям привязать придется также самостоятельно: да-да, это вам тут не Joomla, привыкайте. Впрочем, титанических усилий не потребуется, процесс подключения Recaptcha подробно описан в статье Подключаем Recaptcha в Rails application . Далее совсем нелишне отрегулировать devise таким образом, чтобы блог работал (хотя бы на первых порах!) в однопользовательском режиме, позволяя многочисленным своим читателя режим READ ONLY, иными словами - запретим для начала регистрацию новых пользователей. В Сети достаточно самых разных рецептов на предмет того, как это сделать, но, на мой взгляд, самый грамотный хак такого рода находится в Wiki devise, в материале под названием How To: Set up devise as a single user system . А именно: создаем новый контроллер:

app/controllers/registrations_controller.rb:

Class RegistrationsController < Devise::RegistrationsController before_action:one_admin_registered?, only: [:new, :create] protected def one_admin_registered? if ((Admin.count == 1) & (admin_signed_in?)) redirect_to root_path elsif Admin.count == 1 redirect_to new_admin_session_path end end end

затем переопределяем его в routes.rb, и это все:

#devise_for:admins devise_for:admins, controllers: { registrations: "registrations"}

CKEDITOR.editorConfig = function(config) { // config.enterMode = 2; //disabled

Completely config.enterMode = CKEDITOR.ENTER_BR // pressing the ENTER KEY input
config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input

Config.autoParagraph = false; // stops automatic insertion of

On focus };

Пожалуй, для начала это действительно все... черт, самое главное я чуть было не забыл. Если деплоить свой новый блог собираетесь на Heroku - добавьте эти три строчки в

config/application.rb

Config.assets.precompile += Ckeditor.assets config.assets.precompile += %w(ckeditor/*) config.autoload_paths += %W(#{config.root}/app/models/ckeditor)

Иначе CKEditor откажется у вас работать на новом месте.

Сегодня в интернетах я нашел историю о том, как некто Джеймс Фенд учился 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, чтобы понять, что он не работает - это, на самом деле, полезно. Вы понимаете, чего не следует делать. И когда вы найдете ответ, вы начнете понимать, ПОЧЕМУ последнее не работало. Примерно в это время я начал осознавать, насколько велика картина вещей, и по-настоящему понимать, ПОЧЕМУ все работает именно так, как работает. Я чувствовал себя идиотом, возвращался назад и рефакторил код, который написал ранее, делая его более эффективным. И в какой-то момент я достиг стадии, когда все начало становиться на свои места.

Недели 9 - 12

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

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

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