19 April 2014

Матрица компетенций Ruby on Rails разработчика

ItBursa corporate blogRubyRuby on Rails
Как начинающему Rails разработчику понять, в какую сторону копать, чтобы как можно быстрее стать опытным программистом? Понятно, что нужно работать, работать и еще раз работать. Но кроме этого важен горизонт, который даст понять, в какую же сторону нужно идти по дороге к званию профессионала.

Два месяца назад мы запустили оффлайн&онлайн курсы в Харькове по Ruby on Rails для начинающих RubyBursa. Из особенностей — половина занятий было в учебном классе, половина в формате вебинара. Мы поставили жесткие условия выполнения домашних заданий и за первое невыполнение участники получали желтую карточку, за второе — красное и выбывали с курсов. Такие «драконовские методы» позволили 35 из 40 участников дойти до конца со 100% выполнением всех домашних задач.

Некоторые ученики в процессе учебы интересовались: «а что же дальше?». Наш преподаватель Оксана специально в виде ответа на этот вопрос подготовила пробную версию матрицы компетенции Ruby разработчика. Не претендуем на академичность и понимаем возможную спорность предложенной схемы.

Определите сколько баллов у вас есть суммарно по всем направлениям и подведите итог в конце статьи:

2 балла 4 балла 6 баллов
Frontend
Html,css
знаю базовые вещи, могу подправить верстку могу сверстать отдельные части страниц могу сверстать весь проект (корректно будет отображаться во
всех браузерах)
Haml, slim, coffee, sass, less (что либо из)…
знаю, что это и зачем используется. сам лично не использую знаю, что это. использую в проекте. иногда приходится пользоваться конверторами (даже для небольшого кода) использую в проекте, пользуясь различными плюшками (например, миксины)
JS, jquery и различные фреймворки
знаю базовые вещи, могу подправить что есть могу написать код для отдельных частей функционала. могу полностью написать весь js для проекта (если надо будет)
Testing
Понимание разницы между TDD и BDD, могу написать простенький тест. Но в проекте оно как-то не задалось Пишу тесты (unit), стараюсь тестировать по-максимуму знаю, что тестировать, как и зачем
DB
SQL
Знаю чуток SQL (select * from users) Умею составлять запросы различной сложности Процедуры, функции, тригеры, индексы — знаю!
NoSQL
знаю разницу с SQL, основные типы умею использовать в реальном проекте могу проконсультировать по этой теме
Deploy
Могу настроить сервер с помощью опытных разработчиков и гугла, методом тыка и плясками с бубном Могу настроить сервер, но не на уровне: ребят, да тут же все просто Могу самостоятельно настроить сервер, знаю различие в настройках и конфигурациях
Rvm, rubygems, bundler...
С чужой помощью или тем же бубном ставлю необходимое для работы (rvm, ruby, rails.....) Знаю, как все ставить, но периодически вылазят ошибки, с которыми не понятно, что делать Да что там — пару команд…
Patterns
Нууу… эм… слышал. Хорошая штука Знаю основные паттерны, умею применять на практике, но сложно понять по реальной задаче, где какой нужен Активно применяю и использую, могу рассказать для чего какой паттерн предназначен
What do you know about RoR?
Я его использую Я знаю очередность запуска файлов, могу использовать компоненты rails отдельно друг от друга Я знаю, как он устроен, так сказать внутренности rails
Caching
знаю, что это и зачем. лично не использовал знаю, что это и зачем и использую (использовал) в проекте хорошо понимаю принцип работы, преимущества, знаю, что и как лучше использовать
Queue
знаю, что это и зачем. лично не использовал знаю, что это и зачем и использую в проекте хорошо понимаю принцип работы, преимущества, знаю, что и как
лучше использовать
Metaprogramming
Знаю, что это. На практике не применяю Знаю базовые вещи Знаю на продвинутом уровне
Git
Знаю основы Хорошо работаю с git, но иногда возникают проблемы, которые приходится гуглить Знаю на продвинутом уровне (думаю, как git). Понимаю прекрасно принцип работы, слияние, изменение истории, как родные, в общем
Writing the code
пишу, как получится, логика в контроллере. Если код не нужен — я его закоментирую — вдруг пригодится. иногда подумываю о рефакторинге… стараюсь держать логику в модели, драить свой код. методы не большие, код понятный при чтении другими программистами код чистый. использую различные паттерны (знаю когда и что лучше), ну не код, а загляденье :)
Planning, estimating
провожу планирование своих задач и эстимейты. предварительные эстимейты часто не сходятся с реальным временем выполнения могу запланировать и оценить систему средней сложности. в реальности все слодится по плану (с небольшой погрешностью) могу запланировать и оценить сложный проект (для себя и команды), распределить задачи. все сходится по плану (с небольшой погрешностью)
RoR news
Читаю некоторые посты… на русском… если кто ссылку кинет… Периодически пробивает на чтение/просмотр новостей в мире RoR
Слушаю подкасты/читаю свежие новости, в общем что ни на есть в курсе

Подводим итоги:
до 25 слабенько… очень слабенько… зато сколько интересного впереди!
25-52 ты уже кое-что знаешь и можешь. Начальная база есть,
но еще многое предстоит узнать
52-78 ты обладаешь хорошими знаниями. не все идеально, но уже есть
что показать и чем похвалиться. не останавливайся, и будешь мега-крут!
78-102 ты крут. без сомнений. это успех.


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

P.S. Сейчас мы проводим набор на двухмесячные онлайн курсы Ruby on Rails RubyBursa, которые начнутся с середины мая. Курсы рассчитаны на начинающих Ruby разработчиков, а также «IT полиглотов»
Tags:ruby on railsматрица компетентностиобучение
Hubs: ItBursa corporate blog Ruby Ruby on Rails
+1
8.3k 51
Comments 1