Рассказ О Маленькой Стажировке В Маленькой Компании [Часть Ii]

Это вторая часть истории о небольшой стажировке в небольшой компании.

В этой части я рассказываю о том, как на самом деле прошла стажировка 2013 года относительно ранее разработанного плана; наблюдения и результаты собраны здесь.

Первую часть можно прочитать на сайте эта ссылка .



Введение

Предыдущая часть статьи носила чисто теоретический характер.

Результатом теоретических размышлений стал план стажировки.

Далее нужно было установить сроки готовности каждого объекта и реализовать план:

  1. Подготовка текстов объявлений для поиска ( к середине мая ).

  2. Запускаем рекламу на всех выбранных каналах ( в середине мая ).

  3. Немного ждем (все заявки обрабатываются HR как можно скорее , планировали начать приглашать людей на собеседования, когда будет определенное количество заявок).

  4. HR проводит телефонные собеседования ( до середины июня ).

  5. Мы проводим очные собеседования в середине июня ( за неделю-две до начала стажировки ).

  6. Мы отбираем стажеров по результатам собеседований ( за неделю до начала стажировки ).

  7. Мы разрабатываем план лекций с учетом технического уровня обучаемых ( к началу стажировки ).

  8. По каждой теме придумываем практические задачи( в первую неделю стажировки ).

  9. Готовим ноутбуки для новичков перед началом стажировки( за день до начала стажировки ).

  10. Мы запускаем двухмесячную стажировку( с 1 июля ).

  11. Мы следим за прогрессом обучаемых( на протяжении всей стажировки ).

  12. При необходимости мы рассмотрим некоторые темы более подробно ( на протяжении всей стажировки ).

  13. В начале сентября мы подводим итоги стажировки и делаем назначения в команду( в первую неделю сентября ).

Все даты были привязаны к началу стажировки; 1 июля нельзя было никуда перенести: ни на июнь из-за студенческой сессии, ни на сентябрь, так как стажировку планировалось завершить до начала учебы, а сокращение продолжительности неизбежно привело бы к снижению ее качества.



Подготовка к стажировке

В данном разделе представлены результаты подготовки к стажировке вплоть до выхода стажеров.

Для удобства мероприятия сгруппированы относительно пунктов плана, но с сохранением общего хронологического порядка (почти).



Тексты объявлений

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

В объявлении на математическом факультете УрГУ подчеркивалась близость кабинета к зданию университета (2-5 минут пешком).

Наблюдение №1 Первые ответы выявили необходимость прохождения студентами обязательной практики.

В результате мы были вынуждены быстро разобраться и согласовать, что с нашей стороны необходимо для покрытия такой потребности (этот вопрос был полностью делегирован HR).

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

Это (слегка запутанное) объявление подготовил наш HR.

Рассказ о маленькой стажировке в маленькой компании [Часть II]

Наблюдение №2 Понимая, что учащимся необходимо обязательный практики, мы впали в некоторое уныние.

Попробуйте ответить на вопрос: кто летом будет искать летнюю стажировку? Вы, наверное, представляете себе последних дураков.

Вот как мы нарисовали эту картину.

К счастью, спойлер , все оказалось намного лучше.



Заявки на стажировки

Заявки принимались с середины мая до середины июня.

Если я правильно помню, было много непрофильных заявок (иностранцы, студенты 1-2 курсов, нетехнические специальности и т.д.).

Среди кандидатов было 16 человек, соответствующих профилю.

Наблюдение №3 То, чего мы боялись, когда полностью делегировали телефонные собеседования HR, произошло: в ответах мы получили новые принципы ООП типа «полимарксизма», новую топологию «все не со всеми» и так далее.

К счастью, простая постобработка ответов решила проблему.



Отбор на стажировку

Собеседования проводились с интервалом примерно в 3–7 дней в зависимости от контакта с отделом кадров.

Приглашения на собеседования основывались на данных анкеты и представленного резюме.

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

Так вот, согласно резюме, каждый второй пришедший студент обладал всеми этими навыками: HTML, CSS, JavaScript, jQuery, Perl, C++, C, Java, C#, Python, PHP, Assembler, SQL, MS SQL, MySQL, UML, Linux. После третьего собеседования мы поняли, что для этого нам даже не нужно смотреть резюме.

Давали приглашение на стажировку или отказ в течение недели.

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

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



Воронка выбора

К середине июня мы определили четырех будущих стажеров.

Вот как выглядела воронка выбора:

  • ?? телефонные интервью
  • 16 заполненных анкет
  • 10 личных интервью
  • 4 стажера
Пятого стажера мы наняли в последнюю неделю июня: он пришел к нам по рекомендации уже нанятого кандидата, без общения с HR. В результате всего на стажировку было принято пять человек:
  • Уральский государственный университет имени Матмеха;
  • окончил 3-й курс.

Ответ на главный вопрос: кто ищет летнюю стажировку летом? Печально то, что к нам пришли кандидаты, которых не приняли на стажировку в другие компании.

Поэтому нужно успеть отобрать крутых стажеров раньше! И не так, как мы – в июне месяце! Положительная сторона: студенты не искали стажировку по двум причинам: они думали, что им нужно уйти сразу после собеседования, но у них была учебная сессия; по ряду организационных причин студенты не знали об обязательной летней практике.

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

Наблюдение №5 Всех обучающихся беспокоили следующие вещи:
  • сколько минимум часов вам нужно будет отработать после прохождения стажировки;
  • Можно ли работать в выходные?
  • Возможна ли частичная работа удаленно?
Вот как мы ответили на эти вопросы: нам нужно ориентироваться на 32 часа, но минимум – 24; Работать можно без выходных и удаленно.



О рекламных каналах

Наиболее эффективным с точки зрения конечного результата оказался ВКонтакте + личные связи: один кандидат, пойманный через соцсеть, порекомендовал еще троих.

На втором и последнем месте оказались объявления на математическом факультете УрГУ - привели еще одного стажера.



Подготовка рабочих мест

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

Здесь у нас возникла трилемма, поскольку на два потенциальных места было еще три кандидата - выбор с тремя исходами: больше никого не возьмем, возьмем только одного, возьмем двоих.

В итоге мы подали заявку на пять вакансий — если бы мы наняли шестого стажера, мы бы начали думать о решении проблемы постфактум.

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

Н для них нужны стажеры и рабочие места.

Состав рабочего места обучающегося:
  • Разные ноутбуки с Windows 7 и Windows 8 (не очень мощные процессоры до i-5, 3-4 ГБ ОЗУ)
  • Монитор 19 дюймов
  • Проводная мышь + клавиатура.

  • Офисный стол
  • Офисное вращающееся кресло на колесиках
Наблюдение №7 Если вы не укажете явно точные характеристики заказанного оборудования или не согласуете выбранное оборудование, то в итоге у вас может получиться совсем не то, что ожидалось.

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

В принципе, полученных ноутбуков для обучения и сносных с точки зрения простоты освоения было достаточно.



Интернатура



Начинать

Череда всевозможных случайностей, включая «внезапные» экзамены и отсутствие рабочих мест, а «фиксированное» начало стажировки перенесено с первого июля на восьмое, и у нас появилась еще неделя на подготовку лекций и практики к Интернатура.



Настройка рабочего места

Получив ноутбуки, стажеры первым делом приступили к установке и настройке всей инфраструктуры.

В общей сложности этот процесс занял один-два рабочих дня .



Лекции

Нам повезло, что все наши стажеры закончили шесть семестров по математике и механике, поскольку у всех были плюс/минус одни и те же предметы «ИТ».

Все наши слушатели были знакомы с Java на уровне студенческого курса «ООП: Java».

Теоретическую часть было решено разделить на четыре блока:

  1. Инфраструктура
  2. Бэкэнд
  3. Внешний интерфейс
  4. Тестирование программного обеспечения
Первые два очка я забрал, два последних достались коллегам.



Инфраструктура

В нашем проекте мы использовали следующие инструменты:
  • Апач Мавен
  • Git / Расширения Git, gitolite
  • Дженкинс CI
  • Нексус ОС
  • Редмине
Прежде чем говорить о самом коде, необходимо было углубиться в процесс разработки.

Для этого на лекции рассказали о каждом из инструментов из списка и его роли в разработке.

Больше внимания, конечно, было уделено Git:

  • Назначение систем контроля версий, основные типы СВК
  • Основные команды для работы с репозиторием
  • Организация ветвей в проекте
В остальном рассказ об инструментах больше напоминал сборник рецептов.

А работа со всеми инструментами была продемонстрирована на примере нашего проекта.

Всего эта часть заняла около одного рабочего дня .

Неполный список использованной литературы:

  1. Документация Apache Maven .

  2. Статья «Про Git на пальцах» от витамин .

  3. Оригинальная статья и его перевод - «Хорошая модель ветвления для Git» от злодей .

  4. Статья Непрерывная интеграция (Мартин Фаулер).



Бэкэнд

На бэкэнде у нас был следующий стек технологий:
  • Ява 7
  • Весенняя структура
  • Весенний MVC
  • Весенняя безопасность
  • Спящий режим
  • Джексон
  • FreeMarker
В качестве сервера приложений на тот момент мы использовали Oracle GlassFish Server, а основным хранилищем была реляционная база данных PostgreSQL. Учитывая это, был разработан план лекции:
  1. Ява: помни всё!
  2. SOLID, DI и другие аббревиатуры.

  3. ДЖИ: не только SE.
  4. веб-приложение: сервер приложений, сервлеты.

  5. Spring Framework: основы.

  6. JPA: Ормизация и гибернация.

  7. Spring MVC: немного о главном.

  8. FreeMarker: шаблонизируйте его.

  9. Весенняя безопасность.

Для закрепления этого материала был подготовлен репозиторий, в который шаг за шагом добавлялись новые компоненты.

Эта часть теории, что неудивительно, заняла больше всего времени – более двух недель.

Чистая теория (без учета практики) оказалась около восьми рабочих дней .

Неполный список использованной литературы:

  1. Спецификация языка Java (Джеймс Гослинг, Билл Джой, Гай Стил, Гилад Брача, Алекс Бакли).

  2. Технологии Java EE 6 .

  3. Справочная документация Spring Framework 3.2.2 .

  4. Весна в действии, 3-е издание (Крейг Уоллс).

  5. Про Весну 3 (Кларенс Хо, Роб Харроп).

  6. Просто доступ к данным Spring (Мадхусудхан Конда).

  7. Pro Spring MVC: с Web Flow (Мартен Дейнум, Коэн Сернилс).

  8. Весенняя безопасность 3.1 (Роберт Винч, Питер Мулариен).

  9. Документация FreeMarker .



Внешний интерфейс

В состав клиентского стека вошли:
  • Машинопись
  • AngularJS
  • jQuery
  • (Твиттер) Bootstrap CSS
  • Угловой пользовательский интерфейс (Bootstrap)
  • ТребоватьJS
  • Еще несколько библиотек
  • Инструменты для тестирования (подробнее о них в следующем блоке)
Если с jQuery знакомы почти все, а верстальщику был важнее Bootstrap CSS (в нашем проекте версткой удаленно занимался отдельный человек), то по остальным пунктам нужно было дать введение.

Таким образом, на передовой стояли следующие темы:

  1. TypeScript против JavaScript.
  2. AngularJS: основы.

  3. AngularJS: директивы.

  4. AMD и RequireJS.
На самом деле тема с основами Angular была выжимкой из официального руководства для разработчиков и состоял из кучи мелких тем.

Лекция о TypeScript была основана на документация .

Требуется теория фронтенда три рабочих дня .



Тестирование программного обеспечения

Мы с коллегой договорились по следующим темам:
  1. Функциональное тестирование
    1. Модульные тесты
    2. Интеграционные тесты
  2. Нефункциональное тестирование
    1. Нагрузочные тесты
    2. Стресс-тесты
    3. Юзабилити-тесты
  3. Тестирование изменений
    1. Дымовые испытания
    2. Регрессионные тесты
Также нам нужно было поговорить об инструментах, которые мы используем:
  • Юнит
  • Мокито
  • SeleniumHQ
  • КармаJS
  • Жасмин
Все затронутые аспекты тестирования были завершены в течение два рабочих дня .

Наблюдение №8 Экспериментально установлено, что теоретические темы длительностью более двух часов подряд являются трудными для обучающихся.

Нужно либо разбавить ее практическими задачами, либо разбить большую тему на части и делать между ними перерывы.



Практические проблемы

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

В инфраструктурном блоке стояла задача освоиться с git — для этого каждому стажёру предлагался определённый сценарий создания проекта, который нужно было воспроизвести на своём репозитории (ветвления, коммиты, мержи,…).

Для бэкенд-блока, как я писал выше, был подготовлен репозиторий со скелетом приложения, на котором можно было делать простые задачи: DI, взаимодействие с базой данных, REST API и т.д. В качестве практики в Angular было предложено взять стандартный руководство , но с использованием TypeScript. Финальной задачей было создать полноценное веб-приложение, соединив серверную и клиентскую части.

Данное приложение пришлось тестировать с использованием изученных инструментов: JUnit + Mockito для серверной части и Karma + Selenium для клиентской части.

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

Наблюдение №9 Не знаю, было это ошибкой или нет, но, имея за плечами некоторый педагогический опыт, я подошел к преподаванию с разделением на теорию и практику, аналогично занятиям в университете.

Со временем мне показалось, что в некоторых случаях лучше не разделять теорию и практику: ты рассказываешь что-то, а обучающиеся в это время решают соответствующую задачу на своих ноутбуках.



Стажировки по рабочему процессу

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

Наблюдение №10 Управление задачами стажировки в таск-трекере делает процесс более прозрачным для всех участников: стажер видит свой прогресс и прогресс своих коллег, и без дополнительного участия наставника может увидеть, где есть ошибки; Для наставников трекер задач становится точкой синхронизации всех обучаемых, когда можно легко восстановить контекст текущей работы каждого обучаемого.



Отзывы стажеров

Наблюдение №11 Студенты привыкли на лекциях слушать, а не задавать вопросы.

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

Так я пришел к пониманию, что необходимо собирать обратную связь от стажеров, чтобы оперативно исправлять ошибки в процессе и подстраивать работу под ребят. Для сбора обратной связи использовались анкеты Google с вопросами для каждого наставника:
  1. Оценивать степень «понятности» лекций Имя_наставника_i (от 0 до 5).

  2. Оцените уровень интереса к лекциям Имя_наставника_i (от 0 до 5).

  3. Дайте общую оценку лекциям Имя_наставника_i .

  4. Оцените помощь Имя_наставника_i в решении возникающих вопросов (от 0 до 5).

  5. Комментарии о Имя_наставника_i .

В чем польза обратной связи (пример) Наставник №1:

Рассказ о маленькой стажировке в маленькой компании [Часть II]

Наставник №2:

Рассказ о маленькой стажировке в маленькой компании [Часть II]

Наставник №3:

Рассказ о маленькой стажировке в маленькой компании [Часть II]

В первом и третьем случаях нет ничего интересного — никаких выбросов.

А для второго заходим в комментарии к лекциям:

  • «Мне показалось, что лекция началась с середины».

  • «Материал был интересный, но сама лекция была немного сумбурной».

  • «Лекции Имя_наставника_2 интересны, но он не всегда может ясно выразить свои мысли =) Понятно, что он знает, о чем говорит, но не всегда может донести до нас эти знания».

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

Решение: мы дополнительно проанализировали некоторые вопросы на практических задачах.



Специализация

Весь базовый курс (теория+практика) занял ровно месяц.

Все пять стажеров слушали одни и те же лекции и решали одни и те же задачи.

Наблюдение № 12 Когда студенты приезжают на стажировку, они часто заявляют о выбранной специализации.

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

При этом лишь немногие по-настоящему понимают, что стоит за выбранной специализацией, и могут объяснить свой выбор.

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

Через месяц стажеров можно было разделить на три группы — бэкенд (2), фронтенд (2) и QA (1).



Проект

Стажеры были готовы приступить к работе над задачами проекта со второй недели августа.

Для них был выделен целый модуль разрабатываемой системы со своей серверной и клиентской частью.

С этого момента они покинули песочницу «Стажировка» нашего таск-трекера и включились в работу над основным проектом: стали принимать участие в проектных совещаниях, вникать в детали проекта, общаться с руководителем проекта и аналитиками.



И вот мы собираемся в отпуск

Кто-то из стажеров заговорил об этом в конце июля, кто-то – в начале августа.

Перед началом учебного года 4/5 наших стажеров хотели уйти в отпуск в конце августа.

Наблюдение № 13 Стажер, в отличие от сотрудника, принятого на испытательный срок, имеет ряд особенностей: он не привык работать по полгода (а то и дольше) пять дней в неделю, у него есть учеба, приоритет которой выше, он часто рассматривает работу в компании, как источник опыта, а потом – денег.

Не буду врать — нам было очень важно удержать студентов после прохождения стажировки, поэтому мы понимали, что нужно сохранить их лояльность как к нам (наставникам), так и к компании.

К счастью, нам удалось донести это до руководства компании, и все стажеры благополучно ушли в отпуск.

Дополнительным условием с нашей стороны было автоматическое продление стажировки на две недели.



Иногда они уходят

Незадолго до окончания стажировки, в день возвращения из отпуска, нас покинул один из стажеров.

Он просто пришел и без объяснения причин сказал, что уходит навсегда.

Вообще говоря, причина такого исхода может быть либо в рабочей плоскости:

  • проблема в компании;
  • проблема в нас (наставниках);
  • проблема в стажере;
или вне рабочей плоскости (как обычно говорят в таких случаях – по семейным обстоятельствам).

В нашем случае проблема лежала за пределами рабочей плоскости.

Наблюдение № 14 Необходимо построить работу со стажерами таким образом, чтобы не было неожиданностей (внезапных расставаний, отпусков и т. д.): строить планы работы на месяц-два, интересоваться собственными планами стажера, поддерживать постоянную связь.



Командная работа

Самый распространенный способ привлечь неопытного разработчика к командной работе — работать в паре с опытным коллегой.

У такого подхода есть существенный недостаток, когда инициатива явно на стороне опытного сотрудника.

В нашем случае на всех неопытных не хватило опытных, поэтому всех обучаемых объединили в общую группу для работы над целым модулем системы.

В каком-то смысле это была вынужденная мера, но она дала положительные результаты: стажеры научились принимать решения, проявлять инициативу, формировать собственную зону ответственности.

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

Со временем слушатели научились разбиваться на пары для работы над отдельными частями модуля.

Например, один стажер отвечал за бэкенд какого-то функционала, а второй делал под него фронтенд, при этом вместе работали над разработкой API, рисованием картинок на доске и решением вопросов интеграции с другими частями системы.



Из рук в руки

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

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

Наблюдение №15 Важно правильно передать всю необходимую информацию от одного наставника другому в случае длительного отсутствия первого: постановку задания, все имеющиеся материалы, договоры работ и т. д. После возвращения наставника необходимо провести ту же процедуру.

в противоположном направлении.



Результаты стажировки

Четверо из пяти стажеров успешно прошли стажировку и нам удалось сохранить их всех в команде – я считаю, это успех! В общей сложности вся наша стажировка заняла 5 месяцев:
  • 0,5 месяца на согласование и планирование
  • 1,5 месяца на поиск стажеров и подготовку
  • 1 месяц теоретической подготовки и непроектных задач
  • 1 месяц командной работы над системным модулем
  • 0,5 месяца отпуска по стажировке
  • 0,5 месяца на подведение итогов и планирование дальнейшей работы.



выводы

Как показала практика, так можно собраться и организовать хорошую стажировку.

Для этого нужен самый главный ресурс – время, а главное условие успеха – мотивация наставников.

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

Все так называемые «наблюдения» сами по себе являются небольшими выводами.

Теперь их можно учитывать при планировании.

Это значительно уменьшит энтропию.

В общем, совет для тех, кто хочет держать все под контролем.

И наконец, мотивационные опросы! В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

Предлагает ли ваша компания стажировки? 63,04% Да.

29 36,96% Нет, но теперь он обязательно это сделает. Проголосовали 17 46 пользователей.

34 пользователя воздержались.

В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

Вы были наставником? 51,16% Да.

22 48,84% Нет, но теперь точно буду.

Проголосовали 21 43 пользователя.

33 пользователя воздержались.

В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

Вы сами проходили стажировку? 34,92% Да.

22 53,97% Нет, я сам этому научился.

34 11,11% Нет, но теперь точно пройду.

:) Проголосовало 7 63 пользователя.

26 пользователей воздержались.

Теги: #стажировка #обучение программированию #обучение программированию #обучение #бэкенд #фронтенд #тестирование #java #angularjs #typescript #управление разработкой #управление персоналом #карьера в IT-индустрии #typescript

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.