Карго-культ в IT-освіті: як менторство перетворилося на техпідтримку

💡 Усі статті, обговорення, новини для початківців — в одному місці. Приєднуйтесь до Junior спільноти!

ІТ-фахівці, які проводять технічні співбесіди, часто кажуть одне й те саме: джуни після курсів приходять з гарними резюме, але не вміють мислити як інженери. Вони непогано знають термінологію, мають поширені теоретичні знання. А коли потрібно вирішити задачу, впадають у ступор. Притому майже в кожному резюме присутня фраза: «навчався з ментором».

Як так сталося? Чому менторінг, який нещодавно був знаком якості освіти, тепер нічого не означає?

Привіт. Мене звати Сергій Немчинський. Я розробник з досвідом понад 20 років, досвідчений техлід, засновник власної компанії та керівник навчального центру FoxmindEd. Про менторінг в ІТ я знаю все або майже все (читати з ноткою іронії). Сьогодні пропоную обговорити, як змінився ІТ-менторінг за останні роки, і що з цим робити.

Клієнтоорієнтованість, що призводить до інфляції менторства

Уявіть спортзал і двох тренерів. Перший тренер дивиться на техніку, виправляє помилки і змушує вас зробити ще один підхід, коли ви вже хочете здатися.
А другий подає рушник, підбадьорює і каже: «Все добре, ти молодець».

В обох тренерів будуть результати. Але різні. У першого люди набиратимуть м’язову масу або, навпаки, втрачатимуть вагу, виконуватимуть важчі вправи. А до другого тренера ходитимуть юрми новачків, які ще не второпали, що без зусиль немає результатів. І їх завжди буде у рази більше. Тому фітнес-клубу вигідніша друга модель взаємодії.

У багатьох ІТ-курсах відбувається те саме. Школи під тиском ринку вигадують методи масового залучення клієнтів. До них, на жаль, входить створення максимально комфортного середовища для студентів, яким усе розжують, покажуть і поцьомають у носик.

Як наслідок, те, що вони продають, це не менторинг. А що тоді? Звичайна техпідтримка!

Пояснюю детальніше.

Анатомія підміни: як виглядає фейковий менторинг

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

Патерн № 1. «Ментор у кишені» (чат-підтримка 24/7)

Унікальна пропозиція таких курсів — спілкування нон-стоп, цілодобово. Написав питання — отримав відповідь через кілька хвилин. Звучить максимально наближено до техпідтримки, але клієнтам подобається. Для них це виглядає як турбота, комфорт, відсутність фрустрації.

Начебто це і непогано, але є проблема. Так формується навчена безпорадність. У роботі розробника ніхто не відповідає через п’ять хвилин, якщо щось не виходить. Це виглядає інакше: є завдання, є документація, є дедлайн. Усе. І якщо щось не вийшло з першої спроби, нікого це не хвилює, у компанії немає нянечки з носовичком 24/7.

Розробник має знайти рішення самостійно, а інколи не одне, зважити їх, протестувати, застосувати. І бути готовим переробити! Якщо людина звикає, що на будь-який затик їй одразу надсилають відповідь, вона просто не розвиває навичку інженерного пошуку. Потім приходить на роботу, бере задачу і чекає, що хтось підкаже.

Що робить справжній ментор? Він не працює як служба підтримки, а чекає на працююче рішення. Від прискіпливого замовника його робота відрізняється тим, що ментор дає code review. Іноді кілька разів поспіль.

Патерн № 2. «Колективний розум» (групові менторські дзвінки)

Ще одна популярна модель — коли один ментор спочатку проводить вебінар за обраною темою, сесію запитань і відповідей, а потім робить груповий розбір завдання на десятки людей.

Для шкіл як для бізнесу це дуже зручно. Один спеціаліст закриває велику групу, така модель легко масштабується, і взагалі це виглядає майже як менторинг. А от для студентів це проблема.

По-перше, у великій групі ментор не може приділити достатньо уваги кожному студенту. Це зручно для тих, хто ходить на курс аби просто «відсидіти». Часто це ті, кому навчання оплатили батьки. Вони звикли так робити у школі або навіть у виші й гадають, що й тут прокотить. Але ж потім ці «відсидільці» прийдуть влаштовуватися на роботу, а в резюме буде згадано навчання з ментором!

По-друге, слухати розбір чужого коду — це пасивне навчання. В моменті, коли це пояснюють, усе наче просто, але після заняття людина з великою ймовірністю не пригадає, про яку проблему йшлося і як її вирішували. Бо не пропустила це через власний мозок.

По-третє, у кожного студента власний темп навчання. Одні теми засвоюються простіше, інші — складніше. Навіть тип сприйняття інформації в усіх різний: хтось просто не сприймає її на слух. І який сенс для такого студента в груповому розборі? Що він із цього засвоїть?

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

Патерн № 3. «ШІ-ментор» і автоперевірка

О, ми згадали про ШІ. Як же без нього. Останній тренд в ІТ-менторингу — автоматична перевірка студентських завдань або «ШІ-наставник». Це продається дуже красиво. Тут і найсучасніші технології, і миттєвий фідбек, і майже необмежена масштабованість. Для бізнесу це ідеальна модель: система може перевіряти тисячі рішень без участі живого спеціаліста.

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

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

Живий ментор дивиться на це інакше. Він може сказати: «Це працює. Але в продакшені такий код ніхто не замерджить, бо це сміття неможливо підтримувати архітектурно».

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

Патерн № 4. «Карусель» (різні ментори)

Інколи на курсі все виглядає добре організованим, але проблема проявляється, коли студент починає виконувати домашні завдання. Виявляється, що їх перевіряє той з викладачів, в кого є час.

Виникає своєрідна «карусель менторів»: сьогодні один викладач, завтра інший, потім третій. Особистого контакту немає. Така перевірка виглядає досить формально, майже як автоперевірка або використання ШІ.

Насправді якісне навчання з ментором — це робота в парі. Студент і ментор знайомляться, звикають до стилю один одного, вибудовують робочий ритм. Ментор бачить, де студенту справді складно, де потрібно підказати чи пояснити, а де людина просто недопрацювала.

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

Коли ж перевірку віддають будь-якому викладачу, який зараз вільний, губиться найважливіше — розуміння особистого прогресу студента. Саме тому постійний ментор це ключова частина якісного навчання.

Профіль справжнього ментора

Є популярний міф: ментор повинен бути хорошим педагогом. Насправді головна вимога інша — ментор має бути сильним розробником.

На ринку ІТ-освіти, як і на освітньому ринку загалом, часто працює така схема: новачок → закінчив курс → стає ментором для наступних новачків.

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

Тому проста перевірка перед вибором курсу виглядає так: подивіться LinkedIn ментора. Цю ідею ми жваво обговорювали в коментарях до попередньої статті: що ти знаєш і вмієш сам і чому можеш навчити інших?

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

Методологія «no pain — no gain»

Є проста, але непопулярна правда. Справжнє навчання завжди проходить через дискомфорт.

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

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

Є три складові ефективного менторингу в програмуванні.

1. Мінімум теорії

Теорію легко знайти в книжках, документації, технічних блогах або навіть у відповідях ШІ. Витрачати час досвідченого розробника на лекції — дивна розкіш. Його цінність у практиці.

2. Code Review як основний механізм

Справжнє навчання відбувається під час написання коду і після цього. Ви робите завдання → надсилаєте pull request → отримуєте коментарі. Іноді багато. Іноді болісно. Але саме в цей момент і «ростуть» ваші інженерні м’язи.

3. Критерій Done

У багатьох курсах завдання вважається виконаним, якщо код працює. У реальній розробці критерій інший. Завдання завершене тоді, коли ментор каже: «Так, цей код я б прийняв у продакшен».

4. Виділений ментор

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

Не подумайте, я не топлю за те, щоб створювати токсичне середовище при навчанні. Проте «тепла ванна», комфортний сервіс із швидкими відповідями та підбадьорюванням, теж не варіант.

Справжній менторинг — це процес, у якому студент постійно стикається з помилками, отримує чесний фідбек і вчиться мислити як інженер. Саме через цей дискомфорт і формується професійна навичка. Без нього навчання може бути приємним, але навряд ефективним.

Замість висновку. Чек-лист: як не купити ілюзію менторства

Перед тим як оплачувати будь-які IT-курси з ментором, варто поставити кілька простих питань. Це не щось складне або формальне, а просто спосіб зрозуміти, як насправді побудоване навчання.

1. Чи є у ментора LinkedIn?
І головне, чи працює він зараз розробником, а не просто викладає.

2. Як перевіряють домашні завдання?
Це просто тести, відповіді в чаті, чи нормальний code review у Git?

3. Що буде, якщо я застрягну?
Мені просто скинуть готове рішення чи допоможуть розібратися і самому дійти до відповіді?

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

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

Сподобалась стаття? Підписуйтесь на автора, щоб отримувати сповіщення про нові публікації на пошту.

👍ПодобаєтьсяСподобалось7
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

перекладаючи apprentice імхо найправильніше буде обрати слово підмайстер, бо учень в системах масової освіти змінилося занадто в останні пару століть

що робить майстер з підмайстром? він його інкрементально інженерить, тобто виступає зовнішньою силою, що структурує «інвестиції енергії» підмайстра, зменшуючи множину «всіх значень уміння» до підмножини «бажані до надбання значення» (сенсу стрікте теорії множин)

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

ми це бачимо в безлічі родів діяльності, хоч агрикультура і ремесло, хоч маршіал артс, хоч мистецтво, хоч спеціалізація в освіті після загального рівня і тп

де тут менторство?
воно може бути як у вигляді курсу 101, основи, так і в ролі майстра
в обох випадках воно має цінність, коли діє а своєму очікуваному окресі часу і компетенцій

ці речі є скажімо необхідною властивістю, якщо їх нема, якщо ментор робить щось інше, наприклад психологічно підтримує, чи підказує якісь речі на базі загальних знань в тп — це може бути корисне, але за браком необхідної властивості це все є допоміжним (хоч може бути навіть вирішальним іноді)

тобто все питання — вихолощування головної властивості майстра, його неспроможність чи небажання інкрементально покращувати підмайстра, а чому — то і є питання, воно повинно аналізуватися з контекстом, узагальнення не дуже то й дадуть комусь якусь користь

от так я б скоротив топік

Курси ІТ вже не модно, зараз всі стають коучами і до них йдуть всі :)
По суті теж вайтіншічество

Мені здається, що ви плутаєте поняття.
Ментор і викладач/вчитель — це дуже різні ролі.
Викладач/вчитель дає знання «з нуля», а ментор вже «шліфує».

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

Я сейчас работаю с большим куском питоновского говнокода. Чтобы был понятен масштаб трагедии — функции по несколько сот строк состоящие в основном из if-else.
Так вот скармливая этот ужас Gemini я получаю довольно приличный рефакторинг с объяснениями произведенных оптимизаций и указаниями на потенциальные риски.
Конечно я нарезаю код мелкими кусками и делаю с каждым несколько итераций, но отлов наивных ошибок ученического уровня получается на ура.

Не обижайся. Я прекрасно понимаю, почему так получилось.

Справжнє навчання завжди проходить через дискомфорт.

Повністю згоден, тому і не думаю що всі ці ментори і курси потрібні.
Бо справжній дискомфорт буде тільки на реальному проекті.

Тому для студента найоптимальніше якщо його навчать проходити співбесіду і «правильно подавати досвід» в резюме.
А тоді вже вчитись на реальному проекті.

На ринку ІТ-освіти, як і на освітньому ринку загалом, часто працює така схема: новачок → закінчив курс → стає ментором для наступних новачків.

Читаю статтю — і розумію що якось зовсім не так уявляв собі що таке це «менторство».
У моєму досвіді було 2 типу «менторства».
Перше — ще коли на проєкт приходить трейні і його треба прокачати до джуна. На всяк випадок поясню: на галерах джун — це кого продали клієнту, а трейні — це якого ще не продали (бо недотягує). Отже тут синьйор типу — ментор, а трейні — типу падаван. Плюс у тому, що за трейні клієнт не платить. Таким чином для синьйора це — безкоштовна допомога! Зрозуміло що спочатку трейні не вміє майже нічого. Дехто навіть не знав про GIT чи не вмів дивитись колстек. Тому навчання починалося з того, що я робив повсякденну роботу — а трейні просто дивився і виконував роль «гумової качечки», якій пояснюєш що робиш і завдяки цьому сам іноді краще розумієш що робиш не те. Через якийсь час трейні вже можна віддати фіксити черговий баг, якщо він бачив як я фіксив попередній аналогічний. Через декілька місяців трейні вже працює сам 90% часу — йому віддають найпростіші таски. Далі його успішно продають клієнту як джуна (тим більше що проєкт він вже знає).
Друге — коли хтось у компанії (може навіть з іншого проєкту) хоче собі ментора аби розвиватися. Я завжди не проти поділитися досвідом. Але результат тут залежить у першу чергу від учня. Моя «школа» виглядає так. Учень має написати свій перший проєкт з нуля. Наприклад веб-аплікейниш. Для початку я даю йому посилання що прочитати та подивитися. Після цього роблю частину роботи — з поясненнями що і навіщо. Після цього учень має виконати аналогічну частину роботи. Я очікую що учень поступово зрозуміє, зацікавиться і далі вже сам буде вигадувати нові фічі, шукати як їх зробити і додавати у проєкт. Бо я зі своїми пет-проєктами працюю так само: прочитав про нову технологію — спробував прикрутити до свого пет-проєкту, у процесі навчився і розібрався.
Але другий тип менторства у мене жодного разу не доходив до кінця. У першу чергу тому, що на відміну від першого типу, другий тип був у неробочий час і повністю безкоштовний. Теоретично учень хотів розвиватися аби прокачати скіли, отримати нове звання чи підвищення, але на практиці більшість молодих учнів не дуже хотіли витрачати власний час на учбовий проєкт! Вони охоче дивилися як я реалізую якийсь функціонал — але коли треба було повторити то результату не було. Я навіть пропонував варіант що учень буде робити, а я дивитись і підказувати — але і на таке у них постійно «не вистачало часу».
І це тільки підтримало моє розуміння навчання загалом. Якщо людина ХОЧЕ навчитися — то вона сама буде шукати де, в кого і як. Вона буде сама приходити, дивитись як хтось робить, питати, пробувати, шукати допомоги. Я сам починав на заводі — і там усі вчаться так само.
А якщо людина приходить і каже НАВЧИТЬ МЕНЕ — то діла не буде. Особливо якщо вона ще й гроші платить. Бо у неї нема мотивації щось робити самій — а є розуміння «я заплатив гроші — зробить усе за мене». І навіть якщо людина чомусь навчиться — наприклад зробити красиве резюме, і прийде на першу роботу. То на роботі ніхто не буде робити за тебе — це ж ти прийшов гроші заробляти — отже маєш зробити. І навчатися на роботі — це треба тобі, аби не звільнили. Чи готові до цього учні, які тільки платили за навчання і самі нічого не заробили?
Підсумок: ментор — це наставник по роботі! Це не вчитель і не тренер. Отже платити ментору не маючи роботи — краще найняти собі суворого начальника аби волав, ображав та примушував вчитися.

на галерах джун — це кого продали клієнту, а трейні — це якого ще не продали (бо недотягує).

Був трейні на галері 3 місяці.
На 2 тиждень був проданий клієнтові як мід з трьома роками досвіду=)
Галера з топ 5 в Україні)

Так що не завжди це так.

Якже приємно читати не AIшні статті. Дякую

Ваше військове звання? Хто є вищим військовим керівництвом України?

Григорій, а до чого тут це?

Гарний матеріал. Зараз набіжуть адепти олдскульних ІТ курсів з контраргументами -’взагалі то так , але...’ )

шось ні разу не справдилось передбачення

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