За останній рік інтернетом рясніють статті та форуми про пошук наставників (менторів) для програмістів початківців. Більше, ніж рік тому я почав цикл статей і емейл курс Програміст Початківець, у якому  в одному із уроків розповідаю про те, хто такий ментор і як його шукати.

Наставництво

@360training.com

Проте я ніде ні на блозі, ні в цьому емейл курсі не розповів як саме працювати із наставником, в якому форматі. В даній статті заповнимо цю прогалину і розберемось, як саме варто працювати із ментором та який формат взаємодії у менторстві, яке я надаю своїм студентам.

Спочатку хочу зауважити, що ментор, наставник, коуч – це все зазвичай я розумію як слова синоніми. Людина, яка навчає, скеровуєдопомагає іншій людині – студенту.

Курси, ВУЗи vs Ментор

Щоб краще розуміти формат роботи із наставником, варто спочатку розібратись в різниці між навчанням на курсах (чи у ВУЗі) та навчанні з ментором.

На курсах та у ВУЗах вам дають інформацію та намагаються детально пояснити її. Їхня задача дати вам усі необхідні базові знання. Крапка.

Задача наставника абсолютно інша. Він не навчає, а заставляє та мотивує до дій. Дає копняка. Ментор зазвичай лише скеровує вас у правильному руслі. Відповідає на ваші запитання, і то не зразу, а через підказки. Таким чином заставляючи вас шукати проблеми виключно самостійно. Надати базову інформацію – це те, що наставник не повинен робити. Ви самі маєте її шукати. З книжок, в неті, курсів, ВУЗ-ів… Де завгодно.

Якщо ви поки не вмієте самостійно знаходити і сприймати нову інформацію, тоді ідіть у ВУЗ чи на курси, де чітко по програмі освоюватимете теоретичні основи своєї майбутньох професії (будь то мова програмування, чи кінцева платформа розробки як веб, десктоп чи мобільні аплікації).

Лише після того, як ви вже навчились самостійно здобувати інформацію, нехай і не до кінця розуміючи все, що вам попадається, лише тоді варто починати працювати з ментором.

Зазвичай другою необхідною умовою для пошуку ментора є володіння азами однієї будь-якої мови програмування. Тобто ви уже пройшли хоча б один безкоштовний онлайн курс по азах мови програмування (будь-якої: python, java, php, і т.д.) і зрозуміли, що воно вам подобається і ви хоча б на 60% зрозуміли даний курс та спробували самостійно пропрацювати приклади із даного курсу.

Коли працюєте з наставником не сподівайтесь, що за вас хтось щось робитиме. Ментор лише може вам допомогти, але всю важку роботу треба зробити вам, адже вам треба стати програмістом. Ментор уже ним є 😉

Це так само як із здоров’ям і хворобою. Те чи пацієнт виздоровіє залежить від того, на чию сторону він стане: хвороби чи лікаря. А лікар лише допомагає пацієнту одужати.

Тепер вам має бути більш зрозуміло чи ви уже готові до наставника, а чи можливо варто осилити ази мови програмування, а можливо розглянути спочатку варіант курсів програмування або навіть і ВУЗ.

Як наставник і студент співпрацюють?

Як уже було сказано, наставник не веде повноцінні теоретичні уроки студенту і не надає теоретичної інформації студенту. Студент здобуває, або вже володіє нею, сам.

Задача наставника:

  • дати практичний проект (складність залежить від мети наставництва: практика теоретичних знань, щоб повністю освоїти мову програмування; освоєння певної технології чи платформи (напр. десктопне програмування на Java, або веб-програмування, або програмування мобільних додатків під Android), або допомога з пошуку і влаштування на посаду джуніора);
  • давати вказівки щодо порядку дій та підказки для вирішення складних питань, з якими студент не може довго справитись;
  • довести даний практичний проект до успішного завершення, по максимуму лише силами студента;
  • іншими словами перетворити студента із залежного теоретика в самостійну автономну машину з генерації коду 🙂

Під час роботи рекомендую притримуватись обидвом сторонам наступних правил:

  • студент не звертається по допомогу до наставника не провівши самостійно хоча б 30-60 хвилин над своєю проблемою;
  • наставник зазвичай не дає прямих відповідей, і тим більше, не влазить і не править самостійно код для студента; він дає лише підказки; з кожною наступною підказкою вони стають все прямішими і очевиднішими; чим менше потрібно підказок студенту для виконання завдання, тим ближче студент до успішного завершення менторства;
  • питання типу “не виходить, як зробити?” не проходять; студент повинен задавати чіткі конкретні запитання; також варто до запитань вкладати список речей, які студент спробував самостійно перед тим, як звернутись до ментора;
  • ментор також може давати підказки як глянути на ту ж проблему із іншої сторони; навіть якщо інша сторона не є найоптимальнішим підходом у даному випадку; я вважаю, що для початку будь-який розв’язок є значно кращим, ніж його відсутність;
  • наставнику варто дати одразу кілька незалежних між собою завдань по практичному проекту для того, щоб студент міг переключатись між ними, якщо в одній із них справи зайшли в ступор; можливість переключатись між завданнями дозволяє по новому глянути на попереднє завдання і збільшує шанси на успіх;
  • на початку нового завдання наставник дає інструкцію з розв’язку задачі; на початках план має бути дуже детальний, а далі, по мірі прогресування студента, інструкції будуть скупішими, даючи більшу волю студентові у вирішенні не лише технічних задач, але й створенні самих специфікацій проекту;
  • якщо задача таки не була вирішена студентом без повної допомоги ментора, варто зробити висновки і з’ясувати причини і складні сторони, що завадили студенту розібратись із задачею; наступного разу ментор повинен це врахувати і краще сформулювати завдання;
  • ну і звичайно, ментор має постійно заряджати позитивом, мотивацією, копняками, вірою у власні сили, а не лише допомагати з технічних питань.

Ці правила допоможуть студенту швидше перетворюватись на самостійного програміста. Адже лише самостійно розв’язана задача, без підказок ззовні, дасть максимально позитивний ефект та досвід. Практика приходить зазвичай від самостійного розв’язування проблем при програмуванні.

Мій формат менторства

Я також маю студентів на менторстві і за, майже, рік такої діяльності у мене виробився гарний формат роботи із студентом, який дозволяє максимально швидко прогресувати підопічному.

Я менторю в одному із трьох напрямків:

Взалежності від рівня студента обирається відповідний напрямок. Якщо студент з нуля, тоді проходяться усі три напрямки у наведеному вище порядку. Це може зайняти від 3х місяців до двох років. Взалежності від швидкості навчання студента. Саме так, швидкості студента, а не ментора. Наставник лише допомагає.

Першим ділом кандидат проходить тест. Тести є різні взалежності від напрямку:

  • на практичне освоєння мови програмування: тести на теоретичні знання мови, так вони вже мають бути;
  • веб-розробка з Python i Django: тестуємо логіку і основи алгоритмів, ази HTML, CSS, Javascript i так само, звісно, Python;
  • пошук першої роботи: людина за один тиждень повинна на хорошому рівні збудувати тестовий проект, який я їй даю.

Крім того, ще до тесту я переконуюсь, що людина має достатньо сильні причини для навчання, та достатньо часу (мінімум 2-4 години щоденно і в робочий і у вихідний день щотижня).

Далі у нас 15 хвилинний зідзвон по скайпу абo google hangouts, де ми знайомимось візуально і переконуємось, що можемо розуміти один одного. Якщо все ок. Тоді студент проплачує перший місяць менторства і після цього починаємо працювати.

Співпраця

Отже, як виглядає процес співпраці у мене на менторстві:

  • один раз в тиждень відео зідзвон на одну годину по скайпу або google hangouts, де ми: обговорюємо прогрес попереднього тижня, даємо відповіді на усі запитання, детально плануємо наступний тиждень, заряджаємось оптимізмом та мотивуємось, ділимось тайм менеджмент фішками, добавляємо віри у свої сили;
  • при першому такому дзвінку йде детальне обговорення суті менторства, повного формату та перше знайомство із практичним проектом; в окремих випадках обговорюємо і підпасовуємо проект під студента; хоча в мене є цілий ряд заготовок проектів під усі напрямки; ну і звичайно ставимо цілі як загалом на усе менторство так і на перший місяць спільної роботи;
  • кожен робочий день тижня комунікуємо через email; студент зобов’язується хоча б раз на день надсилати емей статус із кількістю проведених годин програмування за останню добу, об’єм пророблених робіт, список запитань, а також комітить результати в репозиторій коду;
  • я, як ментор, зобов’язуюсь хоча б раз на добу відповідати на усі емейл листи студента; окрім вихідних; хоча я, зазвичай, відповідаю по 3-4 рази і навіть у вихідні, якщо є біля комп’ютера;
  • у випадку, якщо виникають критичні проблеми, як от повна зневіра у свої сили та бажання припинити навчання, ми робимо екстренний 30хвилинний виклик і виправляємо ситуацію; таке часто буває при першому тижні роботи; хоча після дзвінка, зазвичай, продовжуємо роботу і досить успішно 🙂 Навіть був випадок, що такий студент, який після перших 5ти днів спільної роботи хотів кидати все, екстренний зідзвон допоміг продовжити навчання і вже за 1 місяць!!! людина мала роботу джуніора :-);
  • на щотижневих відео дзвінках, згодом, вводимо спільні сесії кодування, коли я ділюсь картинкою свого монітора і ми спільно, з коментарями, програмуємо деякі завдання, особливо ті, які довго не виходили самостійно у студента; так зване, парне програмування;
  • раз в місяць під час відео дзвінка підсумовуємо результати та вирішуємо, що робимо далі; якщо все йде добре, у студента є гарні результати, бажання і час продовжувати, тоді знову проплата за наступний місяць і цикл роботи повторюється, аж до повної перемоги.

Поділився я своїм форматом не для реклами, а для того, щоб ви уявляли якого ментора шукати, і як з ним працювати. Або якщо ви ментор, тоді знали як працювати із своїм підопічним. Досить часто плутають менторство із курсами.

У мене не так багато вільного часу, щоб набирати багато людей на персональне наставництво. Цим я займаюсь швидше для отримання інформації про найбільш поширені проблеми початківців при навчанні. Які я потім висвітлюю у себе на блозі, в соцмережах, книзі та навчальних курсах.

***

Думаю тепер ви знаєте достатньо аби не лише знайти наставника професійного програміста, але і правильно налагодити з ним кооперацію. Пам’ятайте ментор – це людина, яка вас лише спрямує у правильну сторону, але топтати шлях прийдеться виключно самостійно. Уявіть, що ваш наставник – це як посох сліпому при мандрах довгою тернистою дорогою 😉

Якщо маєте ідеї та пропозиції з покращення формату наставництва коментуйте. Я із задоволенням покращу і свій формат менторства.