Learn by doing

Всем привет, меня зовут Владимир Воробьев, я Ruby разработчик и один из организаторов RubyGarage.

Вдохновившись статьей Игоря Томича, я тоже решил поделиться нашим опытом обучения IT специалистов.

Кто мы есть и что мы делаем

Мы ­ команда Ruby/Rails разработчиков, называемся мы RubyGarage. Мы разрабатываем web и mobile приложения для наших клиентов. Своих продуктов пока нет, но очень хочется, начали делать шаги в этом направлении. Также, мы сделали трехмесячный обучающий Ruby/Rails курс для всех желающих научиться программировать в этой технологии. На данный момент курс бесплатный и именно о курсе я хотел бы рассказать.

Цель этой статьи — поделиться своим опытом, получить обратную связь от людей кто делает подобные вещи, найти людей которым это интересно и объединить наши усилия

Немного исторической хроники

Все началось в сентябре 2011 года. Именно тогда зародилась идея создать первые бесплатные курсы по Ruby/Rails. Проходили они на базе компании Ciklum, за что им огромное спасибо. В частности, отдельное спасибо Светлане Ефимовой ­ бранч менеджеру Днепропетровского офиса компании Ciklum, за поддержку и доверие, Ольге Маршалко, за то, что собрала всех желающих попасть на первый курс, Андрею Крайнему и Ольге Плуталовой, за поддержку и помощь в организации.

Желающих попасть на курс собралось около 60-70 человек, но количество мест было ограничено десятью. Десять, потому что программа курса подразумевает персональную работу с каждым участником. Решили отобрать людей с помощью тестового задания, по итогу, выбрали одиннадцать человек. Занятия проходили два раза в неделю по два часа в вечернее время по будним дням, и один раз в две недели по субботам. Первый экспериментальный курс продлился четыре месяца.

До окончания курса ‘дошли’ 6 человек, остальные, 5 ‘отвалились’ по дороге, не выдержали нагрузку, так сказать. Все шестеро выпускников сейчас успешно работают на должности ‘Ruby/Rails разработчик’ в различных компаниях.

Вчера, 29 апреля 2013 года, мы стартовали четвертый курс ‘Ruby/Rails разработчик‘ в Днепропетровске, он все еще бесплатный, но я уже не один и мы продолжаем экспериментировать. До чего мы дошли, какие темы даем, как построен процесс обучения ­ смотри ниже в разделе ‘О курсе’.

Параллельно, я активно ‘шарил’ презентации, структуру курса, рассказывал как его вести, в чем его суть, всем желающим из других городов (Киев, Львов, Харьков, Одесса, Ивано-Франковск, Москва, Минск, Лос-Анджелес, Сан-Франциско) . Все, кто хотели провести курс, получали такую возможность. Большинство компаний начинали читать этот курс под своим ‘флагом’, но мне было не важно, что занятия выходят не под моими авторскими правами, самое главное, что информация шла дальше, качество улучшалось, люди получали полезную информацию, навыки, умения и в итоге профессию.

Сейчас, группа киевских энтузиастов заканчивает уже второй Ruby/Rails курс. Спасибо большое им за то, что передают знания, это ­ Михаил Бортник, Денис Ягофаров, Сергей Гопкало, Александр Розумей, Александр Шило и Сычев Артем.

Так же много благодарности днепропетровской команде тренеров, это ­ Алена Меховова, Евгений Заболотный, Михаил Евсюков, Татьяна Ямнич, Виктор Долгишев, Любовь Колосовская.

О курсе

Теперь подробнее об идее, наполненности, структуре курса и кому он будет интересен.

На сегодняшний день, недостатка в IT образовании нет, существует превеликое множество ресурсов из которых можно почерпнуть информацию для саморазвития (книги, интернет, интернет-­курсы), а также, у желающих есть возможность обучаться в специализированных школах, колледжах и вузах и быть в «IT струе» уже с ранних лет. По сути, мы Америку не открываем и всю информацию, которую даем, можно получить из других источников. Смысл в том, что курсы ведут именно практики, те люди, которые сегодня работают на передовой, на реальных проектах. Эти люди, зачастую, не являются профессиональными преподавателями и на жизнь себе зарабатывают тем что программируют, а не читают лекции в вузах. Таким образом происходит прямая передача знаний и, что наиболее важно, опыта.

В процессе обучения постоянно используются такие практики как парное программирование и код ревью. Эти же практики преподаватели используют в повседневной работе, если не используют, учатся их использовать прямо на курсе. Да-да, именно учатся, многие программисты идут преподавать потому что хотят ‘прокачать’ свои скилы в публичных выступлениях, менторстве, парном программировании, код ревью, коучинге, тимлидерстве и, как ни странно, более глубоко погрузиться в технические аспекты, которые используют каждый день на своих рабочих местах, ибо чтобы дать кому то информацию/знания/умения/навыки надо их для начала иметь.

Студенты на курсе учатся не просто программировать, а правильно программировать, уровень правильности, конечно же, зависит от преподавателей :). Так же большой фокус не только на программировании, а и на способности решать задачи, работать в команде, строить рабочий процесс, налаживать коммуникацию. Если быть кратким, мы учим студентов не просто программировать, а учим их создавать продукт. Именно в софт скилз ‘прокачиваются’ не только студенты, а и преподаватели курса. Цель курса в этом и состоит, чтобы симулировать реальный процесс разработки на проекте, при этом уделять внимание не только техническому аспекту (как по мне, разработчик технически должен быть крут по умолчанию), а еще и психологическому. И на выходе те студенты и тренеры, которые пройдут все ‘круги ада’, смогут полноценно решать задачи на проекте, без всяких там PM’ов и архитекторов. Простите, если кого обидел :). Таким образом, все, и студенты и преподаватели, получают недостающий опыт, чтобы взойти на следующую ступеньку своей карьерной лестницы.

Краткая программа текущего Ruby/Rails курса

  • ­Основы языка Ruby
  • ООП в Ruby
  • Метапрограммирование в Ruby
  • Инфраструктура в Ruby и его социальные инструменты
  • Написание тестов
  • Как делать TDD
  • Создание первой собственной библиотеки на Ruby (создание собственного gem’а)
  • Введение в Rails
  • Модели и ActiveRecord
  • Routing и Controller
  • Views
  • Как делать BDD
  • Rails Engine
  • Frontend инструменты — Haml, Sass
  • Frontend программирование — CoffeeScript, Backbone.js, AngularJS, Jasmine
  • Rails инструментарий (изучение популярных gem’ов)
  • Развертывание Rails приложений на сервере — Capistrano, Chef
  • Знакомство с Agile методологиями и практиками
  • Создание первого собственного стартапа

Каждое занятие сопровождается обилием примеров и практических заданий на дом.

И так, что для себя получает студент, если закончит курс:

  • Навыки программирования на Ruby
  • Навыки создание web приложений на Rails
  • Опыт разработки по TDD и BDD
  • Опыт парного программирования
  • Опыт в разработке реальных проектов (зачастую именно первого опыта и не хватает начинающим программистам)
  • Опыт в построении коммуникаций в процессе разработки (учимся общаться)

Что получает преподаватель если проведет курс:

  • Навыки публичных выступлений
  • Навыки обучения других людей
  • Навыки создание команды
  • Навыки управление командой и проектом
  • Навыки общения
  • Навыки парного программирования
  • Навыки код ревью
  • Более глубокое погружение в технологию

Хоть обучение и бесплатное, плюсы есть для всех.

Почему бесплатно, не мышеловка ли это?

Мы уже долго думаем, а не сделать ли нам курс платным. У нас было, думаю еще и будет, много дебатов по этому поводу. Как всегда есть свои ‘за’ и ‘против’.

Обучение — это большой труд и его надо оплачивать. С другой стороны, мы учимся обучая других людей, и бывает что многие вещи мы делаем не очень идеально, также не хочется делать обучение своим основным ремеслом, а чтобы брать за это деньги, надо быть в этом профи и уделять много времени этому. Таким образом преподаватели курса могут превратиться в обыкновенных преподавателей, очень сильно «теоретизироваться» и забыть, что такое программирование в поле :). Конечно же бесплатность не мотивирует, но я верю, что придет тот миг, когда мы начнем зарабатывать с нашего хобби.

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

По окончанию курса мы не прощаемся с нашими студентами, после этого создается очень полезная и душевная тусовка.

Планы

Я не знаю куда приведет нас этот эксперимент, мы просто делаем это в свое удовольствие. Сейчас, различные компании предлагают провести этот курс на коммерческой основе, но не для сотрудников, а для новых людей, а это противоречит нашей философии. Так же, поступило предложение от ребят из CodeSchool о совместном сотрудничестве, но это интересно тем, кто хочет перейти из профессии программиста в профессию преподавателя. В своей практике мы планируем создавать стартапы вместе со студентами в процессе их обучения. Возможно, предвещается появление интересного продукта. Есть огромное желание найти людей которые подготовят обучающую программу по технологиям Phyton, iOS, Android, JavaScript server side. Наша позиция такова — пока что­то делается будем делать!

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

Всем желаю, каждый день открывать для себя что-­то новое и двигаться только вперед! Когда картинки и люди меняются перед глазами, жить намного приятней и веселей.

Регистрация на курс.
Email для контактов info@rubygarage.org

👍НравитсяПонравилось0
В избранноеВ избранном0
Подписаться на автора
LinkedIn



Підписуйтесь: Soundcloud | Google Podcast | YouTube


38 комментариев

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

Звучит классно! Планируете ли Вы организовать что-то подобное в перспективе в Харькове?

А есть уже что-то подобное в Харькове )))

Да, что-то в Харькове есть
Нас можно найти вот тут вот:
vk.com/ror_kharkov
www.meetup.com/kharkov-rb

курс оффлайн? или это что-то вроде coursera?

а есть где-то программа курса?
ну там место, время (со скольки до скольки) и т.п.

сейчас нашими силами курс проходит в Киеве и Днепропетровске, следующие группы, в двух городах, стартуют в середине-конце сентября, подробную программу можем выслать на email, в двух словах можно почитать тут rubygarage.org/course

вот за имейл буду благодарен. курс очень интересен, но если это с утра до вечера — то вряд ли с работой смогу совместить :(
mail: ramirez.twiggy[at]gmail.com

это по вечерам(в Киеве еще по Сб будет) — все работаем

rubygarage.org/course для записи, а так — делаем новый сайт для курсов, будет готов — покажем :)

Коль пошла такая свадьба, я про Киев напишу:
Недавно закончили, на этом курсе у нас значительно увеличилось количество коучей: нас теперь пятеро и как-то веселей стало. Одной из основных задач мы ставили добавление практики, и ее стало значительно больше. В планах еще добавить практических занятий +8 часов на каждую неделю.
Уменьшилось количество выпускников, не смотря на увеличение количества желающих и поступивших. Прежний курс состоял в основном из сильных разработчиков желающих изучить новые технологии или уже пишущие на руби. На втором курсе хоть их тоже было не мало, но мы их учитывали больше как слушателей, а не студентов. Боюсь что по результатом финального задания студентов закончивших курс будет пару человек из 40 поступивших.
За лето мы планируем провести работу над ошибками, подготовить еще лучше материал (что-то переделать заново). Будет время подумать над мотивацией студентов - скорей всего на следующий курс мы будем отбирать студентов лично с собеседованием, закреплять их за коучами, привлекать к работе над open source проектами, и возможно стартапами. Но это уже будут решать сами ребята.

Денис: Отозвавшись на предложение “потренировать будущих рубистов” я ставил для себя несколько личных целей. Среди них были: прокачать навыки публичных выступлений, узнать что ещё я не знаю о Ruby и найти новых друзей. Я считаю, что всё это было достигнуто.
Что же по поводу целей курса, то главную цель мы достигли - мы решили продолжить дальше и не переругались. Сделать хороший курс и получить навыки преподавателей, это не одного “сезона” дело. Потому я с оптимизмом смотрю на начало осени, когда объявят о новом курсе.
Но до осень нужно сделать не мало - написать программу курса. Под программой я понимаю не скучный список тем. У нас должны быть: чёткий план лекций/мастер классов/практик, слайды, материалы вроде приложений-заготовок/виртуальных машин/домашних заданий. И это всё предстоит нам до осени.

есть к вам вопрос.
давно давно я работал несколько лет на php. последние 4 года — iOS (Objective-C). Есть желание получить возможность быстро писать серверный веб, но бесконечно не хочеться возвращаться к php. Рассматриваю Python или Ruby. Какой язык вы бы посоветовали начать изучать и почему?

Python исключительно Python, как Ruby разработчики мы просто не можем его не рекомедновать!

я предпологаю, вы делали осознаный выбор, становясь Ruby разработчиком? почему именно Ruby?

потому что не освоили Яву, очевидно же

Я на Python не делал коммерческих приложений, опыт работы с ним совсем невелик, мой совет очевиден — Ruby, а Rails, с его комплексом готовых решений, для этого очень подходит — быстро, просто, качественно, есть много документации и готовых примеров на эту тему. Думаю не зря проводят вот такие конференции iosonrailsconf.eu , что то наверное в этом есть. Я так же уверен что приблизительно похожий набор инструментов есть и на Python.

Я предпологаю, что конференцию эту во многом проводят потому, что Matt Thompson (github.com/mattt, написавший несколько хороших либ под iOS во время работы в Gowalla, и написавший также ruby джемы под некоторые свои либы, ушел работать в Herouku, где отвечает за разработку ruby инфраструктуры для iOS разработчиков.

Я действительно слышал о Ruby вокруг iOS больще чем о Питоне. Про минусы Ruby — слышал о сильно непривычном синтаксисе.

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

да, Ruby синтаксис как наркотик, за неделю подсел, а потом не можешь слезть, на самом деле идея синтаксиса именно — ’Language and I MEAN Language’

5.times { print «ведмедик» }
5.раз напечатать «ведмедик»

exit unless «мишутка».include? «утка»
выйти если «мишутка» не содержит «утка»

более детально можно почитать об этом в ’Душевном Учебнике по Ruby’ - mislav.uniqpath.com/.../chapter-3.html

Ну такое... Неоднозначные эмоции она во мне вызвала )))

Ну я считаю Вам больше подойдет Ruby. Все таки в руби всё объекты. Плюс синтаксический сахар, метапрограммирование и DSL. А ну и конечно же блоки, ламбды и проки. После того как Вы начнете их использовать Вам ничего не захочется использовать. Есть конечно же истерички по типу Zed Shaw... Но без них скучно.

спасибо за ответ
кто такие

проки
?

Объекты Proc являются блоками кода, которые связаны с локальными переменными. Блок кода может быть выполнен в другом контексте.

Более подробно тут — rails.vsevteme.ru/...i-lambda-v-ruby

nodejs, чувак — жаваскрипт всеравно придется знать:)
вотте сервер:
var http = require(’http’);
http.createServer(function (req, res) {
res.writeHead(200, {’Content-Type’: ’text/plain’});
res.end(’Hello World\n’);
}).listen(1337, ’127.0.0.1′);
console.log(’Server running at http://127.0.0.1:1337/’);

Отличная идея ;) Я кстати тоже Владимир Воробьев :)

Ребята! Вы молодцы! Так держать:)

На ДОУ есть тайный обряд, когда владельцы компаний обьявляют о курсах, а местная тусовка оьясняет, шо авторы не клевые) Важно выстоять)

ну я всегда нас считал клевыми :) , лучше расскажи про ваш опыт, какая статистика, как и что учите, я думаю это интересно читателям, мне так точно

Вы готовите специалистов и ничего не зарабатываете? Странно такое слышать.

Идея № 1: брать деньги за обучение.
Идея № 2: «продавать» выпускников компаниям. Railsware, Svitla и другие Сиклумы без проблем должны заплатить 200-500 долларов за специалиста.

Во Львове есть «Школа тестировщика» (было интервью на ДОУ), в Харькове — курсы Java Ивана Головача. Как я понимаю, оба проекта успешно зарабатывают.

брать деньги за обучение
мы к этому постепенно идем, вырисовываем продукт на практике, идея дать профессию, как будет готова программа, хотя такое ощущение что она вряд ли когда то будет готова, постоянные изменения :), будем формировать цену и выходить на рынок
«продавать» выпускников компаниям
на данный момент просто рекомендуем, а компании если хотят, платят за рекомендацию, но не позиционируем себя как кузница кадров
сейчас прорабатываем Идею № 3: делать такую услугу компаниям — быстрая переквалификация программистов из одной технологии в другую, построение рабочего процесса, архитектурные решения для существующих приложение (код ревью, рефакторинг кода и архитектуры на существующих приложениях)
Спасибо за идею, лишний раз подтверждаюсь надо формировать продукт!

www.hackerschool.com — не плохой вариант когда платят компании :)
Очень не хочеться отсекать людей которые хотят учиться, но не могут себе этого позволить.

Понимаю. С другой стороны — мотивация «платящих» обычно в разы выше, «you get what you pay for». Ну и гораздо лучше когда проект сам себя кормит — тогда не нужно искать «инвесторов», «спонсоров» и тому подобный time distraction.

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

Подписаться на комментарии