Впечатления неоднозначные
Я давно думал о том, чтобы обучиться какой-нибудь IT профессии, но никак не мог решиться на это и тут жизненные обстоятельства вдруг сами подтолкнули меня к тому, чтобы быстро обучиться какой-то профессии, которая не была бы привязана к русскому языку (как моя нынешняя) и дала бы мне возможность работать удаленно. Я стал гуглить и искать различные IT курсы, пока мой товарищ, с которым мы оказались в одинаковой жизненной ситуации, не выбрал себе курс «Python-разработчик» от Яндекс Практикума по программе «Цифровые профессии». Тогда я тоже решил обратить внимание на курсы Практикума и прошел на платформе вводное тестирование, где рассказывали про основные IT профессии, их особенности и специфику. Так я понял, что веб-разработка мне наиболее интересна, потому что можно сразу видеть результат своей работы, создавать интерфейс и видимый функционал сайтов и т. д.
Далее я начал проходить бесплатную часть курса «Веб-разработчик», которая не вызывала сложностей до части про JavaScript. Тут то мой мозг и начал ломаться, потому что очень быстро в заданиях с тобой начинают оперировать совершенно новой для тебя лексикой (функция, переменная, аргумент и так далее), ты постоянно забываешь, что есть что, приходится возвращаться обратно и искать в ранних заданиях определение этих терминов и смотреть их синтаксис. Конечно же это неудобно. Вот тут и всплывает первый минус курсов – отсутствие какого-то базового тезауруса прямо на сайте Практикума, в который можно было бы сразу поглядеть и вспомнить, что есть что. В этот момент я решил создать сам для себя такой тезаурус на компьютере, но, правда, я его довольно быстро забросил, так как потом при начале платной части обучения дали ссылки на сторонние ресурсы, где все это можно найти, но об этом чуть позже.
В момент прохождения бесплатной части курса я еще сомневался, что мне нужен именно Яндекс Практикум, я выбирал между Яндексом и еще одной образовательной платформой, ученики которой «чаще остальных довольны обучением»;). Но моя дилемма быстро разрешилась тем, что по программе «Цифровые профессии» были места на курс Яндекса, рассчитанный на 10 месяцев обучения, а по программе другой платформы места были только на курс, рассчитанный на 2 года, что мне в тот момент не подходило, поэтому выбор был сделан в пользу Яндекса. Естественно, что отзывы на Яндекс в интернете я тоже изучал и они были весьма неплохими.
Итак, я записался на курс. Старт обучения у меня был почти через месяц, записали меня в 66 когорту (тут должна быть шутка про Римскую Империю). Почти за месяц, конечно же, все, что я делал в бесплатной части, забылось, но это не страшно, так как в первых темах платной части идет повторение и более расширенное изучение этих тем. К слову, программа поделена на блоки, внутри которых есть темы, которые, в свою очередь, состоят из уроков.
Почти в каждом уроке есть теоретическая и практическая части.
Практическая часть представляет из себя тренажер (кстати, его улучшили и теперь он работает на популярном редакторе кода VS Code, о чем нам торжественно сообщили в момент работы над дипломом, когда весь тренажер был до конца пройден:D). Соответственно мне пришлось мучиться с неулучшенной версией, которая никак не подсказывала тебе, если где-то была допущена ошибка в синтаксисе (например, забыл скобку поставить) и не помогала писать код быстрее за счет горячих клавиш и плагинов, как тот же VS Code. Один раз я час просидел с заданием в тренажере, потому что у меня не загрузилась часть кода, которая, оказывается, должна была там загрузиться. У меня неоднократно были такие случаи, но обычно я всегда их сразу отлавливал, перезагружал задание (кнопка «Начать заново») и нужный код появлялся, в тот раз отсутствие какой-то части кода было очень неочевидно, поэтому верное решение задачи мне тренажер отвергал, а я не мог понять, что происходит, пока наконец не нажал волшебную кнопку «Начать заново» и отсутствующая часть кода не появилась.
В каждом блоке у вас будут спринты. Один спринт длится 2 недели, за которые вам надо пройти теорию и сделать практическую работу. В конце каждого спринта мягкий дедлайн. В каждом блоке по 3 таких спринта, которые оканчиваются жестким дедлайном. К жесткому ДДЛ должны быть сданы все 3 практические работы блока, иначе вы будете переведены в другую когорту. Для студентов ЦП таких переходов может быть всего два за все обучение, в третий раз будет отчисление. Для студентов, которые полностью сами оплачивают свое обучение, условия менее жесткие. Также в каждом спринте у вас будет один вебинар, на котором один из наставников будет разбирать текущую тему и показывать на практике, как это применять в коде.
Вот тут хочется сказать о наставниках. Моя когорта была поделена на группы, у каждой группы был свой наставник, который отвечал на вопросы в Пачке (мессенджер). Моей группе повезло: у нас был просто потрясающий наставник, который отлично объяснял, оперативно отвечал на вопросы и всегда всем помогал. Но вебинары для всей когорты наставники проводили по очереди. И тут хочется сказать очевидную вещь: не каждый хороший программист является хорошим учителем. Если вы делаете учебную платформу, то наставники всё-таки должны обладать навыками обучения и понимать, как преподносить материал так, чтобы он был понятен. К сожалению, у одного из наставников в моей когорте такое умение отсутствовало. Смотря его вебинары, я просто ничего не понимал и путался ещё больше, чем после прохождения теоретической части на платформе. После вебинара в мессенджере куратор всегда скидывала ссылку для оценки качества вебинара, но я так и не понял, зачем это делается. Твои ответы просто уходят в никуда и ничего не меняется. Наставник, как непонятно объяснял, так и продолжал непонятно объяснять на следующих вебинарах. Я думал, может, только мне непонятно, но после одного из его вебинаров в учебном чате жаловались чуть ли не все студенты. В итоге наставник нашей группы решил провести свой вебинар и ответить на все вопросы студентов своей группы (тут хочется выразить ему в очередной раз респект, но это его личная инициатива, а вовсе не исправление косяков командой Практикума).
На этом моменте стоит поднять тему педагогики. У меня сложилось впечатление, что курс писали люди, которые в ней не понимают от слова совсем.
Первое, курс выстроен очень неравномерно. Если часть по верстке (HTML, CSS) показалась мне в целом сбалансированной и хорошо написанной, то с началом тем по JS все стало иначе. Особенно сложно стало на теме про объектно-ориентированное программирование. Там произошел СУПЕР РЕЗКИЙ скачок в повышении сложности и объемности проектных работ. Если с 7-й проектной я справился вполне нормально, то на 8-й очень надолго завис и в итоге просто не успел вовремя сдать 9-ю (там про fetch-запросы и работу с сервером). Тут то мне и пришлось брать первую отсрочку и помощь человека со стороны, который помог разобраться в теме. На этом этапе со мной случился второй выплеск огромного количества негативных эмоций и неудовлетворения от учебы. Как можно так структурировать повышение сложности? Это просто полное непонимание того, как должно строиться обучение.
Второе, у Яндекса вообще очень странный подход к обучению студентов. Идея такая, что студенты должны сами изучать большое количество информации в других источниках, а наставники не должны давать прямые ответы на вопросы. Иногда это доходит до абсурда типа «перечитай теорию». А если студент не понял теорию? Ну перечитает он – таким образом поймет что ли? В школе и университете для этого есть преподаватели, задача которых объяснить теорию, данную в учебнике так, чтобы до обучающихся, что называется, «дошло». В Яндексе свой инновационный, ни на чем не основанный, подход, который на одном месте вертел все сложившиеся за века стандарты педагогики, поэтому в задачу наставников такие функции не входят. Тут сразу возникает вопрос, а когда, собственно, я должен изучать доп. источники? Маркетинг Яндекса заявляет, что курсы Практикума удобно совмещать с работой, но ты итак до ночи сидишь с учебными материалами платформы, если еще дополнительно что-то изучать, то о сне, видимо, можно забыть напрочь. По поводу маркетинга хочется еще добавить, что утверждается, якобы знание английского вам не нужно. Это неправда. Какие-то минимальные знания вам понадобятся, так как код пишется по сути на английском языке, и, чтобы овладеть синтаксисом, вам надо хотя бы чуть-чуть быть в теме. Но самое забавное в том, что на курсах, где английский якобы знать необязательно, активно дают ссылки на англоязычные материалы по темам спринта.
Яндекс позиционирует свою идею обучения так, что студенты должны уметь гуглить, искать ответы на свои вопросы сами, но, мне кажется, данный подход, мягко говоря, сомнительным. Чтобы понять, как именно искать ответы на свои вопросы, сначала нужно овладеть какой-то твердой базой знаний. Условно говоря, если два человека захотят построить дом, то дилетант будет гуглить «как построить дом», а человек, что-то понимающий, «как залить фундамент на каменистой почве». Надеюсь, пример понятен. Судя по вопросам студентов в Пачке, данный подход не очень-то и работает, но Яндекс не сдается в своих попытках победить педагогику.
Третье, я почему-то предполагал, что у Яндекса есть свои, тщательно подготовленные учебные видеоматериалы. Ну раз платформа для обучения, наверное, логично предположить, что такой контент должен быть. Так вот, таких материалов нет от слова совсем. Тренажер, теория и вебинары – на этом все. Остальное ищите сами на сторонних ресурсах, ссылочки мы вам дали.
Далее, очень сомнительным выглядит решение включить в курс часть по бэкенду. Если ты начинающий фронт-разработчик, то тебе не нужно писать бэк. Яндекс заявляет о релевантности своих курсов ситуации на рынке вакансий. Так вот, от фронт-разработчиков, тем более начинающих, не ждут знания NodeJS и MongoDB, про которые будут 3 спринта, зато очень ждут Redux и Typescript, которых в курсе вообще нет. Про востребованный React было всего лишь 3 спринта, зато диплом пишется именно на нем (как говорится, «surprise, mother****!»). К тому моменту, как я победил бэкенд (и задействовал для этого вторую, последнюю, отсрочку), все то, что было в темах про React, я напрочь забыл. Поэтому, чтобы не тратить время на вспоминание Реакта, я обратился к ментору, который помог дописать мне диплом (без него я просто бы не сдал).
О самом дипломе. Он поделен на три части: бэкенд, верстка и функционал на Реакт. И если с бэкендом я справился без особых проблем, то на верстку у меня ушло просто огромное количество времени. ПРОСТО ГИГАНТСКОЕ КОЛИЧЕСТВО ВРЕМЕНИ. Это при том, что верстка для меня не является проблемой, я нигде не испытывал «затыков», ничего не вызывало у меня вопросов «как это сделать», я просто сидел и верстал. Я верстал дома до ночи, я верстал на работе, не выполняя свои обязанности и теряя деньги за месячную выработку, но иначе я не мог поступить, потому что просто не успел бы сдать диплом и в итоге бы отчислился за шаг до финала. В общем, «совмещал» обучение с работой, но совсем не так, как меня уверял маркетинг Яндекса.;) Таким образом выходит, что количество времени, выделено неадекватно сложности и объемности задания для дипломной работы. К слову, многие студенты на этом этапе берут отсрочки. То есть Яндекс видят, что времени не хватает, но им просто все равно, так как деньги ты им уже все равно заплатил за эту часть. Хотя стоит все же отметить, что нам с барского плеча накинули еще 3 дня к жесткому ДДЛ. Собственно, в самый последний день я и получил зачет по диплому. Это при том, что во время третьей части диплома я был в отпуске, писал код с утра до ночи и брал помощь ментора (за деньги, разумеется).
Кстати, о самом задании, да и вообще о проектах. Судя по макетам, задания не меняются с 2020 года. То есть Яндекс не могут делать новые задания хотя бы раз в год, им лень. В итоге на Github лежит огромное количество репозиториев с этими учебными проектами и дипломами, которыми, как уверяет реклама, можно будет похвастаться в портфолио перед работодателями. Да, очень привлекательно для работодателя – каждый третий соискатель показывает одни и те же проекты. Наверное, работодателям уже смешно.
В самом макете диплома было немалое количество ошибок и неочевидных моментов, которые за три то года можно было как-то поправить. Например, одинакового вида заголовки с разными отступами от края:
Во время работы над дипломом со мной случилось еще два не очень приятных инцидента. Для публикации 15 проектной и диплома вам понадобятся домены, поэтому Яндекс выделяет 2 гранта – один на 1000 рублей (для виртуальной машины, которая вам реально понадобится), а второй на 3000 рублей (я так и не понял, для чего). Естественно, я прочитал эти условия и сразу не понял, что грант на 3000 рублей на ВМ не распространяется. Угадайте, какой грант у меня закончился раньше, чем я сдал диплом, и за что у меня начали списывать деньги с карты. Я сразу пошел с вопросом к куратору, и только через 2 дня (и то после моего напоминания) она прислала мне промокод на новый грант. В чем там была сложность сразу его прислать, я не знаю, но в итоге мне пришлось заплатить небольшую сумму за ВМ из своего кармана. Мелочь, конечно, но неприятно. Почему сразу нельзя дать грант на 3000 рублей на те сервисы, которыми мы будем активно пользоваться при сдаче последних работ? Зачем мне такой грант на какие-то другие сервисы, которыми я не буду пользоваться? Почему я должен сидеть и разбираться на какие сервисы Яндекса распространяется промокод, а на какие нет? Так много вопросов и так мало ответов.
Вторая неприятная ситуация случилась во время сдачи последней части диплома. На втором ревью (т. е проверке) ревьюер (т. е. проверяющий) в числе прочего прислал 3 замечания, которые не соответствовали действительности. Я знал, что у меня нет таких ошибок, но все равно попытался их воспроизвести – разумеется, у меня работало все без проблем. Я написал об этом в Пачку, мои вопросы передали ревьюеру. И тут стоит сказать, что человеческий фактор и все такое – я это понимаю, но, во-первых, 2 из 3 этих багов ревьюер отмечал в первом ревью (и я, разумеется, их поправил и проверил, что все ок перед отправкой), поэтому у меня сложилось впечатление, что он просто их скопировал из первой проверки, а, во-вторых, мне совершенно не понравилась реакция ревьюера на мои вопросы. Он написал, что прилагал ко всем ошибкам скринкасты.
Никаких скринкастов по этим 3 ошибкам, разумеется, приложено не было. То есть ревьюер после моего обращения даже не соизволил сразу зайти и проверить, а не ошибся ли он, потому что он то умный, а я же студент, поэтому глупый. Когда он все-таки убедился, что скринкастов действительно нет, то даже не удосужился просто по-человечески извиниться.
Итого мое резюме. Остался ли я доволен обучением? Скорее нет, чем да. Порекомендовал бы я Яндекс Практикум кому-то другому? Скорее нет, чем да. Стал ли я разработчиком по окончании курса? Скорее нет, чем да. Сейчас я чувствую, что примерно половину программы я просто не усвоил и мне надо возвращаться к пройденной теории и заново ее изучать уже в комфортном темпе, а не в режиме ужаленного в мягкое место. Тут то как раз уже можно и спокойно почитать дополнительные источники. Кроме того, надо самостоятельно изучить Redux и Typescript. Могу сказать, что однозначно уверен только в своих способностях верстальщика. Тут я и правда неплохо справляюсь, по всему остальному есть большие пробелы и надо заново многое проходить. Если в будущем я захочу пройти еще какие-то IT курсы, то это точно будет НЕ Яндекс Практикум.