— Расскажи, как ты пришел к менторству?
— Менторить я начинал в EPAM, когда увидел объявление о том, что БГУИР ищет среди сотрудников компании менторов на IT-направления, среди которых и Java. Я спросил у своего начальника, можно ли мне пойти туда. Мне сказали, конечно можно, но гораздо приятнее будет, если ты пойдешь менторить наших студентов в Big Data направлении. И я начинал свою менторскую деятельность внутри компании.
— А если брать курсы TeachMeSkills, как много ребят приходят без бэкграунда, прям с нуля?
— В первых группах было близко к 90%, вот сейчас в группе чуть меньше. Обычно предполагается, что на такие курсы приходят люди без каких-то знаний. TeachMeSkills гарантирует, что это программа будет достаточно комфортна для людей, которые приходят без опыта в программировании.
— И как много ребят доходят до конца?
— Зависит от преподавателя, у меня доходят практически все. Главное, на мой взгляд, как сильно ты можешь увлечь своих студентов и зажечь в них огонь и желание изучать программирование :)
Среди тех, кто приходил ко мне в группы, наверное только один-два человека отпали без уважительных на мой взгляд причин за все время.
— Есть ли какие-то моменты в программе курса, которые, по-твоему, сложнее даются ученикам? И ты бы советовал все-таки почитать что-то об этом заранее. — Честно говоря, сложнее всего даются первые занятия. Это как снежный ком. Когда у тебя ноль знаний и ты берешь 5 единиц какого-то дополнительного знания — это кажется каким-то очень большим куском. Тебе сложно куда-то это устроить. Как только твои знания становятся 100 единиц, ты берешь 5 — и уже гораздо легче это усваивается и применяется.
Людям, которые приходят с нуля, очень тяжело начать решать задачи. А задачи это 2-3 тема любой программы. Человеку, который не имеет какого-то математического бэкграунда и своих каких-то попыток в программировании, сложно перестроить мозг так, чтобы понять, как это работает.
Доходило до забавных ситуаций, когда мне человек говорит о задаче: «Как это сделать? Я глазами понимаю, что нужно, а как объяснить это компьютеру?»
То есть надо перестроить мозг. Если ты где-то когда-то решал задачи по программированию — это хорошо. Даже если другой язык. Когда ты приходишь и первый раз видишь конструкцию, у тебя голова не хочет принять ее.
Я когда учился Java, у меня тоже такое было. Встретил конструкцию, которой не было в языке C, и у меня тоже был ступор, не понимал, как соединить. Это требует перестройки мышления. И это чаще всего для студентов сложно. Есть дальше, конечно, сложные темы. Но ты стараешься их разбавлять, растягивать за счет более простых тем. Там уже не так все печально.
Именно начало, когда ты думаешь, ну я и тупой, другие могут, а я нет, — вот самый тяжелый момент. Уже к 10-му занятию люди втягиваются и становится проще.
— А что вы делаете в рамках дипломного проекта на курсах? — Я предлагаю людям сделать то, что для них кажется более интересным. Потому что Java позволяет выбрать направление. Мы проходим по программе все: начиная от фронтенд-разработки, бэкенда, как это все связано. И у тебя есть альтернативы, можешь сделать сайт с картинками, условный онлайнер, где можно по страничкам покликать, — это одно направление. Ты можешь сделать аналог какого-нибудь бэкенд сервиса, у которого не будет сайта. То есть это будет какой-то сервер, который по твоим запросам тебе возвращает данные. Там тоже есть логика. К примеру телеграм-бот, у него нет никакого интернет-отображения, кроме канала, где он используется.
Поэтому люди выбирают то, что им интересно, — и под эту тему подстраиваем дипломный проект. Не все джависты любят рисовать сайты, но ты можешь сделать похожую штуку без рисования.
— Был ли студент, который тебя особенно впечатлил?
— Был студент, который меня реально мотивировал. Как раз тот, который говорил, что глазами понимает, а как объяснить компьютеру — нет. Он приходил на курсы полностью нулевым, не умел решать задачи. Пришел из менеджеров. И первые занятий 15 было очень тяжело, не всегда понимал, что делалось, а сейчас он делает свой дипломный проект сам. И очень радуется, потому что ему никто не помогает. А он делает довольно серьезный бэкенд сервис. У него голова уже перестроилась. Ходил каждый выходные, собирался с другими студентами, они решали-решали, — вот к концу курса случился момент, когда количество знаний переросло в качество. Он начал понимать, все уложилось — и теперь он готовится без помощи к диплому в очень хорошем настроении :)
Хотя сразу ему казалось, что это прям вообще не его. Андрей, если ты читаешь это интервью — поздравляю тебя с успешной защитой!)
— Это действительно круто, пересилить себя и продолжать ходить, даже когда не получается на старте!
— Есть разные люди, и мы адаптируем программу под их запросы. Раньше было так, давалась домашка и дальше мы разбирали ошибки. В итоге мы пришли к тому, что не мы разбирали ошибки студентов, а я показываю самое крутое решение, которое есть, и я объясняю на пальцах, почему так. И они в итоге смотрели мой код, смотрели, разбирались, по шаблону тоже делали.
То есть мы перешли от того, чтобы делать, а потом смотреть косяки, — к тому, чтобы сразу делать красиво. Изначально должна была быть более самостоятельная работа. Но когда мы поняли, что им не хватает опыта с нуля, переделали так. И им действительно помогло. Нужно подстраиваться под людей.
— А самостоятельность как-то проявилась потом? — Да, дальше. У них сразу проблема была в том, что мозг еще не перестроился и непонятно, что такое программа. Мы перешли на такой вариант, до 20-го урока делаешь так. Это нормально для джуниор-разработчика уметь писать классы, но они не понимали, как из одного класса может получиться целая программа. Программа это же не один класс, а 10-12 классов. И это самая маленькая. Им вот это было тяжело. Тут нужно, чтобы голова думала образами программирования. Ты можешь уметь писать код, но если ты не понимаешь, что должен написать, чтобы получилась рабочая программа целая, ты сам программу не напишешь.
И у группы был такой момент, все могли решить задачку, но не могли сделать приложение, которое решает эту простую задачку. Каждый урок — свое приложение. И уже после занятия 10-го они смогли самостоятельно делать простые приложения.
Я думаю, что смогу любого научить программировать. Если есть желание, конечно :)
— Да, желание это основное! Перейдем к теме трудоустройства, какие есть требования по hard-soft-скиллам? — Сейчас требования стали гораздо больше, чем на момент, когда я приходил на работу. Особенно для Java-разработчиков. Java считается одним из языков с очень высоким порогом входа. Потому что есть определенные базовые дополнения, фреймворки, которые ты должен знать. Обычно голого языка программирования тебе не хватит для того, чтобы устроиться на работу. Это было и в мое время, и сейчас. Но сейчас за счет более высокого конкурса увеличивается значение дополнительных инструментов. Условно тот же Docker, как это все работает, сборка, CI/CD. Раньше такого не требовалось.
— Хватает ли информации на курсах, чтобы закрыть эти требования? — Курс у нас довольно насыщенный. Есть ряд тем, которые не даются на курсах, но они уже как раз таки относятся к тем, что должны знать опытные джуниор-разработчики. Есть дополнительные материалы, которые даются на стажировках. Когда берут джуниора без опыта, и за 2-3 месяца ты добиваешь определенные темы. Те же системы обмена сообщениями, тесты в более серьезном объеме.
Soft-скиллы тоже очень нужны, особенно умение задавать вопросы. Навык задавать вопросы — один из показателей того, что ты хороший специалист джуниор уровня. И чем грамотнее ты их будешь задавать, тем больше шансов получить работу.
Примером всегда для меня являются случаи, когда ты приходишь на собеседование и тебе дают решить задачу. Джуниор-разработчик без опыта берет руки в ноги, открывает IDE и начинает делать задачу. Если человек начинает делать задачу сразу, как ее услышал, — 99%, что он без опыта. Потому что человек с опытом задает вопросы, которые помогают ему решить эту задачу. Ты строишь большую систему, а им достаточно было маленькой. То есть не узнав всех условий, ты себе жизнь не упрощаешь. Например, тебя просят прочитать файл, и ты начинаешь перебирать все случаи жизни, что там может быть в том файле. А ты мог спросить, что там лежит. Тебе скажут, там лежит три числа, которые тебе нужно прочитать. И у тебя уже задача не прочитать весь файл с непонятными значениями, а прочитать три числа из файла. То есть это уже более конкретная задача и легко решаемая. Чаще всего такого типа задачи как раз таки и даются с мыслью, что ты будешь задавать вопросы. Ее смогут подстроить под твой уровень, который определится твоими вопросами.
И это отличает мидл и сеньор-разработчиков от джуниор. Мидл задают более грамотные вопросы, сеньор видит более комплексно, может задавать вопросы по всему приложению.
Поэтому нужно не бояться и всегда спрашивать, даже если тебе кажется, что вопрос глупый.
— А на сколько важен английский язык? — Очень важен. Если раньше английский был не настолько принципиальной вещью, то сейчас разработчикам с уровнем А2 отказывают. Уровень B1/B2 является минимальным.
Весь язык и документация на английском, и основные клиенты не представители Беларуси или России.
Гораздо проще человека, знающего английский, научить программировать, чем программиста научить английскому языку. Поэтому чаще всего из 3-5 человек, которые сидят с похожим уровнем программирования, возьмут тех, у кого лучше английский. Их легче доучить.
— Какие зарплатные ожидания могут быть у ребят? Сколько они могут просить у компаний сейчас, когда проходят собеседования?
— Хороший вопрос, у нас в Беларуси стандартный ответ: 500$. Никуда он не делся. Но сейчас зависит от того, идешь ты на работу или стажировку.
Большая часть стажировок, о которых я слышал, бесплатные. Из оставшихся 20-30% с минимальной оплатой, около 100-150$ в месяц. Именно сейчас количество желающих попасть на стажировку на столько большое, что находятся люди, готовые работать бесплатно. Здесь рыночные условия, если люди готовы работать бесплатно — никто не будет нанимать за деньги.
— А сколько длится такая стажировка?
— 2-3 месяца, как испытательный срок в твоем контракте.
— И финальный вопрос уже касательно тебя. Какая твоя любимая часть работы? И есть ли какие-то профессиональные мечты? — Любимая часть моей работы — это как раз то, ради чего я поменял свою предыдущую работу на IT-сферу. То, что здесь всегда есть возможность узнать что-то новое.
Я начинал как фулстек-разработчик, потом поменял на Big Data Engineer, сейчас ушел в бэкенд и использую тоже совершенно другой стек технологий. Если мне покажется, что я заскучаю, я могу выбрать проекты из FinTech или медицинский проект, — и уйти еще в другую область. Если и это наскучит, могу пойти в менеджеры развиваться.
Всегда есть что-то, что меняется. И не бывает такого, что ты 2-3 года поделал и уже все знаешь. Такого не бывает в IT. И для меня это очень важно. Потому что я не люблю скучать на работе.
И плюс всякие плюшки — бесплатное печенье, кофе, чай :)