Как стать успешным Ruby on Rails программистом
Открытое письмо другу Щмуку.
Это черновик статьи. Когда-нибудь я ее допишу. Она будет доступна в том числе и по этому адресу. Если есть вопросы, или помочь хотите — милости прошу.
Вот ты жалуешься — работу не найти, платят мало.
А с моей стороны все наоборот. Нужны рельсовики, много рельсовиков. Зарплата от 100 000 до сколько попросят. А их нихера нету. Вообще.
Рельсовик-фрилансер берет 150 000 за двухнедельную итерацию. Пиздец. И еще в очередь к нему становятся. И неизвестно, сколько он там проектов за раз берет.
Недавно знакомые менеджеры попросили пособеседовать кандидатов в чужую контору. Ну я не против, чо. Интересно же. Собеседовал троих. Первый ничем не приметился. Третий первый делом сказал: «о, привет, Комар». Здрасте жопа новый год, блять. Второго через две недели нанял мой начальник мне в напарники. Парень слегка охуел, когда снова меня увидел.
На всю Москву три с половиной рельсовика. И пиздец.
Спрос большой, предложения нету нихрена. А знаешь, почему? Вот и я думаю. Фреймворк-то проще некуда.
Есть у него, правда, одна особенность: высокий порог вхождения.
Че ржешь, блять? Вот как-то так и есть. В похапэ красота — наговнил себе index.php
, нахуярил инклудов и все сразу работает. А тут какую-то хуйню изучать, модели, блять, контроллеры, миграции, гемы, хуе-мое. Любой долбоеб может почитать трехстраничный мануал по PHP и зарабатывать на свой доширак. А тут, блять, книжку по рельсам в магазине купишь, а в новой версии половину API уже поменяли нахуй. А референц читать — так там все по-английски и непонятно. Средний долбоеб пугается и в ужасе убегает.
Ну так вот. Фреймворк-то проще некуда. Поэтому запиливаю для тебя особый мануал, чтобы ты сразу был enterprise ready специалистом во все поля.
Как стать успешным рельсовиком за две недели
Сначала надо поставить руби
Свой системный пакетный менеджер засунь себе в жопу. Руби — скриптовое говно. А в скриптовом говне постоянно ломается зависимости всего от всего, и поэтому нужно тянуть по сто версий каждого пакета, чтобы хоть что-то работало. А так как ни один системный пакетный менеджер (кроме nix’а, разумеется) не умеет ставить несколько версий одного пакета сразу, то для скриптового говна пишут свои, велосипедные пакетные менеджеры. Ruby — не исключение. Там такой пакетный менеджер называется gem’ом.
Кроме того, нужно будет поставить rvm, чтобы можно было несколько версий интерпретатора одновременно держать.
Набираешь в консоли:
$ \curl -L https://get.rvm.io | bash -s stable --rails
И это говно тебе ставится вместе с рельсами. Потом набираешь source ~/.rvm/scripts/rvm
, чтобы оно тебе в консоль загрузилось.
Дальше тебе надо скачать книжку для долбоебов посвежее, например, вот эту. Читаешь ее и попутно упражняешья в машинописи. Да, совсем забыл: Ruby отдельно изучать не надо. Хули его там учить, он сам выучиться. Простой язык же ж. Нечего на это время тратить. Время программиста стоит дорого.
Но все эти книжки — хуйня. Даже если ты прочитаешь их все вдоль и поперек, то все равно будешь сраным новичком, и остальные рельсовики будут смотреть на тебя как на говно. Потому что методы, которыми в книжке решаются задачи, не имеют никакого отношения к реальным.
У рельсовиков свои, особые методы. Вот про них я сейчас и расскажу.
Для начала сходи в магазин и купи себе кеды и макбук. Я серьезно. Вот у меня берцы и хинкпад, и у меня лютые проблемы при взаимодействии с коллегами. Нахуй надо. Ах да, в кедах нужно ходить и зимой. Привыкай.
Потом: забудь нафиг, что ты программист. Если у тебя возникла необходимость решить какую-то проблему — не строй в голове никаких моделей. Не думай о коде. Это совсем не rails-way. Если ты так будешь делать, то у тебя будет похапэ и говно вместо кода.
Когда у тебя возникает проблема — иди в гугол. Сначала набирай «gem проблема». Потому что для решения проблемы уже сто лет как гем написали. Ты думаешь, блять, что вебня — это такая разнообразная поебень охуительной сложности? Ага, щас.
Гемы — это пакеты для руби. Их надо прописывать в Gemfile и после этого набирать команду bundle. Аутентификация, регистрация, посылание говна по емейлу? gem 'devise'
Разбить выдачу на страницы? gem 'kaminari'
Ну и так далее.
Ах да, важное правило. Используй только модные вещи. Немодные и упаси Боже старые не бери ни в коем случае. Если ты будешь брать authlogic
вместо devise
и will_paginate
вместо kaminari
, то тебе пиздец. Ты потом сам поймешь, почему.
И есть еще несколько вещей, которые ты обязан использовать. Иначе тебе пиздец, опять же.
Во-первых, если твои сайты не будут выглядеть модно и охуенно, то тебе пиздец. Всем насрать, что там у тебя за код. Сайт должен быть таким же, как и все остальное хипстерское говно, иначе от него все блевать будут.
Не ссы, фотошоп осваивать не нужно. Надо только поставить Twitter Bootstrap. Это такой специальный фреймворк для того, чтобы даже самый бородатый программист смог нахуярить верстку, от которой твой менеджер за аймаком будет кончать в штаны. И за айпадом. И за айфоном. Потому что бутстрап, кроме всего прочего, еще и responsive. Я не ебу, как это перевести, но слово охуенное.
Правда, освоить его будет сложновато. Там какие-то контейнеры, хуейнеры, хуй пойми. Не, ну ты потом во всем разберешься, конечно, но не сразу. Работать-то тебе надо вотпрямщас. Время разработчика стоит дорого. Потом разберешься. А сейчас сделай две вещи. Во-первых, поставь себе в фаерфокс плагин firebug. С его помощью ты сможешь жать F12, нажимать там мышкой на стрелочку и наводить курсор на всякие элеметы, а он будет показывать тебе HTML. И CSS. Охуенно. Так вот, с этой нереальной дичью идешь в каталог Built With Bootstrap и пиздишь оттуда любые понравившиеся элементы верстки. Я прямо не знаю, как я без этой хуйни раньше жил.
Во-вторых, в вебне много ебли с формами. Ее много даже с использованием специальной хуйни, которая убирает еблю с формами. Формы, они, блять, такие. Поэтому надо будет поставить еще simple_form
, nested_form
и cocoon
. Короче, прописываем в Gemfile вот такую хуйню:
gem 'twitter-bootstrap-rails'
gem 'simple_form'
gem 'nested_form'
gem 'cocoon'
И запускаем bundle
, а затем пишем в сосноль вот это:
rails generate bootstrap:install static
rails generate simple_form:install --bootstrap
И добавляем в app/assets/javascripts/application.js
строки:
//= require jquery_nested_form
//= require cocoon
Все. Теперь с формами проблем не будет. Если ты прочитаешь по странице на гитхабе про каждый гем, конечно. Тепеь набирай git add ./ && git commit -a
. Ты git init
еще не сделал? Ну мудак, блять.