Основной офис Рус Визардс находится в небольшом городе Таганроге, и даже наличие института под боком не приводит к очередям программистов у дверей. Выход один — растить кадры внутри компании.
Но нас не учили учить, нас учили программировать, поэтому все пришлось осваивать самими, изобретать велосипеды, падать с них, набивать шишки. С момента прохождения первой студенческой практики в наших стенах прошел почти год, можно рассказать о том, к чему мы в итоге пришли и как устроен процесс обучения сейчас.
Рассказывать буду на примере родного отдела разработки под Android, но основные моменты не сильно изменятся для других областей.
Определяем базовый уровень
Сначала будущий сотрудник проходит собеседование, где отвечает на общие вопросы IT тематики и специфичные вопросы по Android. Выявляются слабые стороны и уровень подготовленности стажера.
Выдаем литературу
Стажер получает список «литературы». Это — внутренний стандарт кодирования (на 90% основан на стандарте Java) и книжки издательства Apress по Android 2, и 3.
Выдаем серию «Лабораторных работ»
Теперь стажера нужно дотянуть до некоего базового уровня. У нас есть список коротких заданий, максимум на день, по основным аспектам разработки для андроида, это:
- Интенты (Intent)
- Активити (Activity)
- Настройки приложения (Shared Preferences)
- Сервисы (Service, Intent Service)
- Списки (ListView, ArrayAdapter)
- Разметка (Layout)
- Многопоточность (Thread, AsyncTask, Handler, Thread Pool)
- Работа с системой (BroadcastReceiver, ConnectivityManager, LocationManager, SensorManager...)
- Http
- Базы данных (SQLite)
Параллельно также проверяется умение работать с основными инструментами для контроля версий (Git) и трэкинга задач (Redmine).
Первый «боевой» проект
Как только стажер созрел, он, под контролем кого-либо из разработчиков и/или менеджеров, приступает к своему первому интересному проекту. Специально для этого на внутреннем форуме компании есть раздел «Хочу себе программу», где сотрудники могут описать идею хорошей программы, которой пока не существует, но хотелось бы. Не обязательно идея должна быть нова, аргумент «Все существующие мне не нравятся, потому что...» абсолютно уместен. Проект является абсолютно полноценным, и это подчеркивается, только так (по нашему мнению) человеку будет интересно его делать. Также сразу устанавливается цель — публикация в магазине приложений Google (ну или Apple, для iOS). В рамках таких «студенческих» проектов были сделаны, например, мобильные клиенты для биржи oDesk (Android/iOS)
Боевой проект рассчитан на срок около месяца. Таким образом, по его окончанию заканчивается и испытательный срок стажера.
Итоги проекта
Дизайнер оформляет кнопочки, иконки и прочую приятную мишуру, чтобы результат смотрелся солиднее. Проект публикуется, а стажер параллельно учится готовить программы к публикации.
+1 программист
Теперь, и только теперь, у нас есть готовый программист, на которого можно назначать проекты, приходящие от заказчиков (фирма в основном ориентирована на аутсорсинг). Ситуация, при которой кто-нибудь из начальства скажет «А чем занимается тот парень? Пусть сделает нам ХХХ!», недопустима (теперь, после набитой шишки, конечно).
Само собой, успешная работа поощряется материально и, что важнее, морально и публично!
Еще не все! Внутренние «конференции»
Программист уже готов, но опыта у него еще мало, поэтому мы проводим внутренние мини-конференции. Формат следующий: на форуме сотрудники предлагают интересные темы, связанные с работой (Облачные сервисы, особенности многопоточности в Android, технология PUSH и т.д.), а молодые специалисты берут по одной теме, готовятся и выступают с кратким докладом на 10 минут. В результате об интересной технологии (хотя бы в общих чертах) узнают все, а, чтобы было еще интересней, лучший доклад месяца поощряется подарком (который заранее почти никому не известен).
А как вы растите специалистов? Что делаете чтобы сотрудникам было интересно двигаться вперед?
Автор: fo2rist