Ответ на пост «Почему не стоит прыгать в IT через курсы, или моя исповедь после того как знакомый выкинул 1000$ на ветер»
Всем привет! Работаю программистом и имею опыт репетиторства и ведения курсов, хочу поделиться взглядом на обучение со стороны преподавателя. Также кратко расскажу свою историю.
Есть мнение, что среди программистов много тех, кто хотел создавать игрушки или быть хакером. Я познакомился с программированием в старшей школе, когда задрачивал в онлайн игрушку и пытался автоматизировать гринд. Потом поступил в ВУЗ по не связанной с программированием инженерной специальности, и на шесть лет почти забросил программирование. После получения диплома почитал книгу по основам Java, и по знакомству устроился на свою первую работу программистом. Это был 2014 год, Москва, получал 26 тысяч на руки - по тому курсу 760$, калькулятор инфляции говорит что сейчас эта сумма равна 37 тысяч.
Текущее место работы - шестое, основной язык программирования - Java, зарплата последние два года - 200к с небольшим, круг общения - программисты. Работаю в офисе, из-за карантина временно работаю из дома.
Когда учился на третьем курсе, начал преподавать школьникам математику и физику как репетитор. После переключился на преподавание программирования по скайпу. Раньше находил учеников через сайты репетиторов, оплачивая комиссию, сейчас осталось только объявление на Авито. В последние полгода по нему обращались всего два раза.
Также один раз мне довелось вести групповые курсы, 16 занятий по 8 часов.
За репетиторством ко мне обращались, в основном, люди двух категорий. Первая категория - русские студенты из заграничных вузов. Им требуется сдать лабораторные работы по программированию, причем обычно это не основная специальность, но препод спрашивает по коду, и нужно понимать что там написано. В этом случае я прошу выслать условия заданий и требования, и в фоновом режиме продумываю как их лучше выполнить. Вторая категория - взрослые люди, из разных профессий, которые решили поменять работу, и о них ниже.
Прежде чем начать работу с новым учеником, я интересуюсь мотивацией и ожиданиями от результатов занятий. Мотивация обычно лежит в плоскости стереотипных представлений о работе программиста:
- зарплата выше средней
- возможность работать удаленно
Неудивительно, что люди мыслят прагматично. Меня удаленная работа не интересует, но людям из небольших городов это может быть важно. Зарплату повыше хочется иметь всем.
А вот что люди хотят получить в результате занятий, они обычно не знают. Часто бывает что человек что-то программировал для себя, или читал, но структуры знаний у него нет. Ему вроде и не интересно начинать с начала книжки, но и решать хоть какие задачи с отрывочными знаниями не получается. Для других программирование - совершенно новая область, они никогда не открывали редактор кода, не знают чем отличаются байт и бит. Я обычно подсказываю, что критерием успешного обучения будет прохождение собеседований и получение оффера - предложения о работе.
Из примерно 15 людей, с кем я провел больше одного занятия, до получения оффера со мной дошли трое. Еще одного я "слил" под предлогом отсутствия времени, так как при огромном желании у него не было прогресса. Остальные переставали выходить на связь, или откладывали следующее занятие, а потом так же пропадали.
В комментариях к оригинальному посту пишут:
Вообще, 100% образовательных курсов во всех сферах строятся по принципу "Давай я прочитаю эти книги/документацию/схемы за тебя и расскажу тебе в общих чертах".
А что, это так неожиданно? Одни темы завязаны на другие, я тоже разбирал темы близко к оглавлению книг. Обычно договаривались заниматься раз в неделю по 90 минут. Тайминг занятий варьировался, но в среднем был такой:
- 20 минут разбор домашки, вспоминаем предыдущую тему
- 30 минут на новую тему: я поясняю новые конструкции, логику по которой они сделаны именно так
- 15 минут на пример по новой теме - как она может использоваться в реальном коде
- 25 минут ученик сам пытается решить задачу по новой теме под моим присмотром.
После занятия я отправляю задачи, которые предлагаю ученику решить самостоятельно. Можно отправить мне на проверку, я оставляю замечания в гитхатбе. Можно писать мне, отвечу сразу или в конце дня. И все это входит в оплату занятия.
Домашка рассчитана на 4-5 часов. Как думаете, многие приступали к ее выполнению? Ни-хе-ра. И тут мы приходим к ответу на вопрос, зачем люди идут на курсы.
Люди хотят, чтобы их заставляли. Мотивация и сила воли - исчерпаемые ресурсы. Высокая зарплата где-то там далеко, а усилия прилагать нужно уже сейчас. Преподаватель же выступает внешним источником мотивации, при этом свою силу воли он тоже не тратит. Мне тяжело заставить себя качать пресс, но мне ничего не стоит заставить это делать другого. Это же вечный двигатель, блеать!
Утверждение выше относится и к групповым занятиям. Сравню их с индивидуальными занятиями:
- Курс стоит дороже, но час занятия дешевле. Оплачивается вперед и разом
- Преподаватель ориентируется на средний уровень, из-за чего одним кажется слишком быстро, другим слишком медленно
- Мотивация обеспечивается не обязательством перед преподавателем, а сравнением себя с другими студентами
Хотел бы прокомментировать это утверждение из оригинального поста:
Все школы и курсы заинтересованы в получении денег, а уже потом в обучении Вас, поэтому все платные курсы вне ютуба - эффективны столько же, сколько российские шараги.
Наверное, для руководителей курсов идеальной является ситуация, когда все знают об эффективности курсов, но при этом ничему не учатся и приходят снова и снова. Лучшей же мотивационной схемой для обеих сторон была бы та, при которой руководители помогают не только с обучением, но и с трудоустройством, при этом получают процент от зарплаты выпускников.
Но пока последняя схема не распространена, остается надеяться на исполнительность преподавателя - благо, программисты обычно серьезно относятся к своим обязанностям. Мне, кроме денег, был также интересен опыт проведения групповых занятий, хотя я не собирался становиться профессиональным преподом. Также часть вознаграждения лежит в эмоциональной плоскости:
- удовлетворение от полезности деятельности
- возможность почувствовать себя самым крутым в коллективе
Допустим, вы решили из управдомов переквалифицироваться в программисты. Готовы на снижение зарплаты от текущего уровня на первые год или два. Готовы к тому что первое время коллеги будут не очень довольны вашими косяками. Как понять, стоит вам идти на курсы или нет? Вот поэтапный план:
1. Пообщайтесь со своими знакомыми программистами, и попросите рассказать только недостатки их работы. Вы готовы мириться с недостатками?
2. Почитайте книгу по выбранному языку программирования. Если у вас хороший английский - можно в оригинале, если нет - не напрягайтесь. Попробуйте установить среду разработки и запустить Hello World. Программистам часто приходится что-то настраивать, не только кодить. Заниматься лучше по чуть-чуть долго, чем много и один раз.
3. Если вы не свежий выпускник вуза, стажировки для вас скорее всего закрыты. Поэтому, немного освоившись, погуглите вопросы для собеседования. Если имеете на примете конторы, куда хотите попасть, и которые нанимают с опытом "от года", вполне нормально будет написать что опыта у вас нет, но хотите именно к ним, и узнать к чему готовиться. Скорее всего, вам не нужны будут самые сложные главы из книги, но нужно будет хорошо знать то что разобрали.
4. Прикиньте, сколько у вас займет подготовка. Если вы не программировали раньше, но в школе хорошо решали математику, придется потратить не меньше 200 часов (рабочий месяц - около 170 часов).
5. В целом все понятно, но некоторые темы не идут? Можно поискать препода и договориться о разовом занятии, выслать вперед список вопросов.
6. Тяжело себя заставить, хочется учиться в группе, лучше воспринимаете на слух? Можно поискать курсы. Первым делом нужно посмотреть, насколько материал соответствует тому, что будет на собеседовании. Вторым - на цену, может быть лучше взять отпуск за свой счет и провести над самостоятельным разбором задач?
7. Если есть возможность, попросите бесплатно посетить занятие препода с другой группой. И свое мнение составите, и отзывы соберете.
Нужно понимать, что самый сложный этап - это прохождение собеседований на первую работу программистом и подготовка к ним. Да, и дальше вам придется конкурировать с другими программистами, но воронка сильно сужается.
Нет ничего невозможного - успехов!