programming mentor

ти живий, поки вчишся

Навчатися на розробника - з ментором чи самостійно

2020-04-10 programming mentorстатті

Оригинал цієї статті опублікував на фейсбуці на лінкедіні ще у 2017 році, публікую її для свого сайту повторно.

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

То питання вибору зводиться до такого: навчатися самостійно онлайн, чи навчатися під керівництвом “живого” ментора/інструктора/викладача/тренера.

Learn in San Francisco

Чи можна стати професіоналом самостійно?

Є люди, які переконують, що курси з інструктором - то зайве, бо насправді всього можна навчитися самостійно, і єдине, що заважає - це лінощі. За сферою своєї діяльності мені доводиться навчати у самих різних формах - “звичайних” курсах, розробляти і супроводжувати онлайн-курси, консультувати, займатися менторством, писати статті, створювати туторіали і тому подібне. І все це неможливо без постійного навчання, причому я сам намагаюся випробовувати всі різноманітні форми - від звичайної роботи з інструктором, до усяких-різних онлайн курсів. То є що порівняти так би мовити.

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

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

Що дає навчання з інструктором?

Повернемося до навчання розробника - стає зрозуміло, що справа не лише в лінощах, а в зовсім інших підходах - робота з “живим” інструктором, має певні істотні переваги - це прямий контакт для консультацій, можливість індивідуального підходу, особливо цінним є code review, а також мотивація до занять через відповідальність та певна методика і план, за якими проходить навчання. Точно також, як має бути якась методика і індивідуальний план, за яким проходить тренування у спорті, інакше воно перетвориться на нескінченне топтання на місці без очевидного результату.

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

Один-на-один, чи в групі?

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

Яким має бути ментор?

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

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

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

Ціни

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

Ціни

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

Ну і наскільки високі бувають ціни? Чи варто дивуватися якомусь інтенсиву на кілька днів за кількасот зелених? Тут варто розуміти, що це не витрати на розваги, а інвестиції в майбутнє, і ключове значення має не абсолютна величина, а те, як швидко вийде окупити понесені витрати. От наприклад, чи буде дорого заплатити за якийсь місячний курс 500 дол. для людини, що заробляє в місяць лише 250? На перший погляд дорого, бо на нього треба відкладати, однак якщо відразу після курсу з отриманими знаннями і навиками вийде знайти роботу на 500 в міс.? Тоді стає зрозуміло, що це зовсім недорого, бо навіть якби він коштував вдесятеро більше, то окупився би за рік, що рідко буває з іншими способами інвестувати гроші. З цього погляду не слід дивуватися, що звичайна ціна для якого-небудь Coding BootCamp в Каліфорнії буде 10-15 тис. дол. за 2-3 місячний курс. Враховуючи їхні зарплати, це зовсім недорого.

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

А якщо навчання пройшло даремно?

Тут ще залишається питання – а якщо курс не принесе очікуваного результату і роботу з очікуваною зарплатнею знайти не вдасться? Думаю, що на відміну від звичайних фінансових інвестицій, які можна безслідно втратити, тут все небезнадійно. Приведу цікаву аналогію зі свого досвіду – ще з дитинства я читав багато книжок і добре пам’ятав їх, потім в якийсь момент я почав відчувати, що з кожною новою книжкою я починаю забувати прочитане раніше, це мене дратувало і навіть почало перешкоджати в читанні – навіщо читати, якщо все одно забудеш? Проте саме в одній з книжок я знайшов відповідь – дійсно, прочитане забувається, але кожна прочитана книжка впливає на світогляд, і прочитавши ще одну книжку, ти вже не будеш таким, як до неї. То з навчанням все теж саме: навіть якщо курс не дозволив досягти очікуваної мети зараз, він допомагає просунутися до неї в майбутньому, головне продовжувати рухатися у бажаному напрямку, докладати зусиль і розуміти, що у навчанні важливою є робота двох сторін, не можна просто розслабитися і сказати: «вчить мене, я ж за це заплатив». Наступить день, коли пазл складеться і саме один з пройдених курсів буде тією ланкою, без якою усе інше було б неможливим.