Как я стал Junior Ruby developer

Illustration of a cartoon plumber character before and after power-up with a mushroom, showing a small version and a larger, happy version jumping with arms wide open. Illustration of a cartoon plumber character before and after power-up with a mushroom, showing a small version and a larger, happy version jumping with arms wide open.

Я прошёл путь от «я почти ничего не смыслю в веб-разработке» до «я зарабатываю на этом деньги» за 4 месяца.

В конце 2015 года я всерьез задумался о смене профессии, мне было 25. Последние 6 лет я работал на веселой, неплохо оплачиваемой, но совершенно бестолковой работе.

Мой выбор пал на программирование → Web → Ruby on Rails. Не буду объяснять почему, я довольно много гуглил на эту тему и выбирал, что будет мне интереснее и лучше подойдет для профессиональной деятельности.

Мои навыки на тот момент составляли: HTML и Pascal в школе и несколько лабораторных на С на первом курсе в институте (я учился на энергетика). Институт я закончил, но энергетиком так и не стал.

В этой статье я постараюсь по шагам описать как я действовал, чтобы максимально быстро получить знания и навыки, достаточные для устройства на должность Junior Ruby dev. Забегая вперед скажу, что, спустя примерно четыре месяца, я прошёл три собеседования и получил все три предложения о работе.

Надеюсь это небольшое руководство поможет вам пройти этот нелегкий путь от новичка до junior'a.

Первый месяц — Знакомимся с HTML, CSS, RUBY

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

На тот момент я всё ещё работал на своей прежней работе. Первое с чего я решил начать — это освежить свои школьные воспоминания о HTML и познакомиться с CSS. По несколько часов в день я занимался на площадке HTML Academy. Базовый курс по HTML и CSS там бесплатный. Не обязательно проходить весь курс, я прошёл где-то 85%.

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

  • Очень классный учебник — «Learn to Program», Chris Pine. Дает отличное введение в Ruby: http://www.shokhirev.com/mikhail/ruby/ltp/title.html;
  • Далее закрепляем знания на https://ru.wikibooks.org/wiki/Ruby. В процессе чтения этих книг выполняем, приведенные задания;
  • Теперь самое время потренироваться с Ruby на практике. Попишем методы на https://www.codewars.com;
  • Также рекомендую для пробуждения своих аналитических способностей, порешать задачки на Играх Разума. Отличный способ отвлекаться от программирования с пользой.

Второй месяц — Пробуем RAILS

Я так увлёкся изучением программирования, что решил уволиться с работы, и всё время посвятить обучению. Я был почти на 100% уверен, что через несколько месяцев смогу найти работу. Ну или на крайний случай можно всегда вернуться к прежней работе, чего я конечно не хотел.

Теперь мы знаем достаточно для знакомства с Ruby on Rails.

На этом этапе нам необходимо развернуть всё рабочее окружение. А именно — ОС Linux (я поставил Ubuntu) или MacOS (придётся попрощаться с Windows, но вы можете иметь сразу две ОС и выбирать какую нужно загрузить), Git, RVM, Ruby, Rails, редактор кода (я выбрал Sublime). Гуглите как всё это установить и ставьте последние стабильные версии.

Гуглить неизвестную информацию — должно стать одним из ваших основных навыков.

Теперь можем продолжить:

Я советую вам пропускать все, что касается тестирования (TDD) в последнем руководстве. Сейчас тесты вас только запутают. Сосредоточьтесь на написании и главное понимании самого кода приложения. Писать тесты мы научимся чуть позже. По завершению у вас будет работающее приложение.

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

Третий месяц — Занимаемся с ментором

Мы уже хорошо продвинулись в обучении, но нам не хватает практики написания своего кода. Не того кода, который мы писали следуя туториалам, а именно своего. С нуля до работающего приложения на сервере. Здесь мне очень помогли занятия с ментором на mkdev.me. Это оказалось самым весомым вкладом в моё самообразование. И именно этот код смотрели работодатели, прежде, чем пригласить меня на собеседование. Хороший практический опыт правильного кода + научитесь тестировать. На эти занятия у меня ушёл ровно месяц.

Автор этой статьи учился у наших менторов по программированию на Ruby on Rails Нанять

После курса рекомендую просмотреть эту книгу «Мир Rails». Для меня она оказалась очень полезной. Отличное изложение материала, написана для новичков в Rails.

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

Четвертый месяц — Устраиваемся на работу

Теперь самое время составить резюме и направлять его работодателям. Не забудьте добавить ссылку на GitHub со своим проектом. Я направлял отклики + короткие сопроводительные сообщения на вакансии hh.ru. Не только на junior вакансии, но и просто на Ruby on Rails вакансии. Поверьте, многим нужны толковые Junior Ruby разработчики, даже без коммерческого опыта. Можно также поискать вакансии на прямую — на сайтах компаний.

Я направлял отклики в своём городе — Новосибирске, а также на вакансии в других городах, с пометкой в сопроводительном сообщении о том, что рассматриваю варианты удалённой работы.

Периодически вакансии для junior'ов появляются в этой гугл-группе Ruby on Rails и на Ruby Jobs.

Сейчас самое время подготовиться к собеседованию и подтянуть теорию. Гуглите запросы вроде: «собеседование junior ruby». Убедитесь, что вы понимаете на базовом уровне: парадигмы ООП; как работаю сети; протоколы HTTP, TCP, IP; что такое DNS; как работают связи в СУБД, как писать простые SQL запросы, зачем и как работают индексы в БД; какие основные структуры данных — хэш-таблицы, списки(массивы), графы. Вопросы на эти темы были во всех моих интервью.

Начните читать книги по проектированию:

Изучите более глубоко Ruby. «Язык программирования Ruby» — отличная книга от создателя Ruby - Matz'a.

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

Спустя неделю, после направления откликов, я начал получать приглашения на собеседования. Одно я проходил по скайпу в московский стартап, и два — в офисах крупных новосибирских компаний. Одно приглашение на работу я получил через пару дней, одно через 10 дней и одно после выполнения тестового задания — через 2 недели.

Я уверен: после хорошего самообразования и занятий с ментором вы скоро сможете найти работу junior ruby разработчиком. Не раздумывайте — действуйте, да прибудет с вами удача!

Александр Мешков/Merff/июль 2016