История о непростом пути в IT, или Как я не стал разработчиком

Kate

Administrator
Команда форума
Наш герой пробовал изучать Java, Python, Machine Learning, но так и не стал разработчиком. Понял, что это не его истинное желание, не хватает мотивации разбираться в этом. Сейчас начинает заниматься бизнес-анализом. Он рассказал нам анонимно свою историю, выводы об ошибках и о том, как поменял отношение к работе и ІТ в целом.

image_41506237121629985488052.jpg
Иллюстрация Марии Рыбак

📃 Учеба в университете: «Моей ошибкой была вера в „базовые знания“, которыми наделит вуз»​

В старших классах я хотел стать химиком, но, когда пришло время выбирать профессию, родители настояли на том, чтобы я пошел на что-то связанное с компьютерными науками. Плюс к ВНО по химии не очень хорошо подготовился, у меня было около 170 баллов. В Киевском политехническом институте был химико-технологический факультет. На момент поступления я не знал, что с моими баллами можно туда пройти. Узнал об этом уже постфактум, когда мой друг поступил туда на бюджет. Еще почему-то я решил не сдавать ВНО по физике. Это лишило меня возможности пройти на компьютерные специальности в КПИ. В итоге я выбрал Национальный авиационный университет в Киеве. Нужно еще сделать ремарку, что я учился в лицее при НАУ. Он классный, из-за этого у меня сложилось впечатление, что, наверное, и сам универ хороший, но это было обманчиво.

НАУ оказался универом весьма так себе, по крайней мере по моей специальности: бакалавриат — компьютерная инженерия, магистратура — системное программирование на кафедре компьютеризированных систем управления (КСУ) в Институте информационных и компьютерных технологий (ИКИТ). Может, другие факультеты в университете лучше. У нас были устаревшие материалы обучения, преимущественно пожилые преподаватели с устаревшими знаниями. Частое явление — полное отсутствие компетенции у преподавателя (например, лабораторные работы по защите информации один семестр принимала бухгалтер из деканата), сложная и излишняя бюрократия, ужасная инфраструктура (отопление, туалеты, компьютеры).

В 2016 году я окончил вуз. Работать по специальности сразу не пошел. Я понимал, что на рынке труда в IТ с теми знаниями, которые дал университет, я не пригоден. Моей ошибкой была вера в «базовые знания», которыми наделит вуз, и отсутствие самостоятельного обучения. В итоге я устроился барменом. Работа была прикольная, но все же не хотелось там застревать. Многие одногруппники пошли кодить, и мне тоже захотелось стать разработчиком. Не скажу, что я из тех ребят, которые с детства писали саперов, но в целом, кроме денег, интерес к этой теме у меня был.

🐣 Начало в программировании: «Захотел изучать Java только потому, что не видел других вариантов»​

В 2017 году я начал самостоятельное изучение, потому как понимал, что знаний, полученных в универе, объективно не хватает. Выбор пал на Java из простого соображения: на этом языке пишут под Android, а у меня много таких девайсов. Подумал, что потом, может, перейду в разработку для мобильных устройств.

Сам процесс обучения Java сложным не был. Проблематично было понять, что именно учить. В Java много инструментов. Я пользовался таким сервисом, как JavaRush. Это онлайн-курс, который на 80% состоит из практики. Я надеялся, что по прохождению получу необходимые навыки. Этого оказалось мало, потому что там были в основном упражнения. Какие-то вещи я стал писать быстро, набил руку, но теоретического понимания все еще не хватало, поэтому я подключал книжки. Какие — сейчас уже все не вспомню, это было давно. Герберта Шилдта «Java. Полное руководство» точно читал.

У меня были друзья-джависты, одногруппники. Уже сейчас понимаю, что нужно было к ним почаще обращаться за помощью. Они могли направить в верное русло, рассказать, какие материалы использовать, какие знания нужны, чтобы найти работу. Я то ли стеснялся, то ли не хотел показать свое незнание, поэтому свои вопросы пытался решить самостоятельно.

В итоге пошел на курсы в Bionic Academy. Уже не помню их стоимость. В группе нас было человек 10. Курсы длились полтора-два месяца. Мы там изучали целенаправленно один Spring Framework. В конце была дипломная работа, какую-то программулину писали, кажется, back-end с использованием Spring и работой с базой данных. В целом то, как курсы выглядели, где они проходили, как объяснял преподаватель и что мы учили, мне понравилось. Предполагалось, что мы что-то уже знаем и умеем. Задачи были приближенные к реальным, их было интересно делать. Сейчас Bionic Academy уже нет, наша группа, возможно, была даже последней. Хотя курсы были неплохие, они не сильно помогли мне разобраться в Java. Курс был рассчитан на ребят посильнее, в нем совсем не было теории, а этих знаний мне как раз не хватало.

После Bionic Academy я пошел на курсы в EPAM. Они были бесплатные, длительность — 3–4 месяца. После окончания у студентов идет этап под названием Lab, он может длиться около полугода. Студенты ходят в офис EPAM почти на целый день, делают задачи, возможно, даже в рабочих проектах участвуют. Насколько я помню, работа не оплачивалась на тот момент. Это было уже давненько, в 2017 году, может, сейчас по-другому.

В целом курсы не оправдали моих ожиданий. Я думал, что на них будет больше вовлечения со стороны реальных разработчиков и что обучение будет более интенсивным. Занятия проходили в корпусе Киевского национального университета имени Тараса Шевченко (с ним сотрудничал EPAM), их проводил преподаватель из этого вуза. Ему нужно было сдавать какие-то программы, грубо говоря, как лабораторные в университете. Мне был не очень интересен сам процесс обучения, было ощущение, что я вернулся в универ с этими лабами. Это угнетало. Всё, что преподавали, можно было выучить по книгам. Привлекал только сравнительно больший шанс найти работу после курсов.

Я в то время начал проходить разные собеседования, поверил в себя, подумал: «Зачем мне заканчивать сейчас курсы, лучше я найду себе работу». Плюс ко всему наслушался историй, как после курсов студенты попадают в EPAM, там работают за 300 долларов в месяц на протяжении года. Не знаю, правда это или нет, но мне не хотелось для себя такой участи. Процесс обучения выглядел довольно затянутым, у меня не хватило терпения, поэтому через два месяца я бросил курсы.

Я думаю, что выучить Java мне помешало прежде всего полное отсутствие плана, непонимание направления, зачем я вообще учу язык и где буду его применять. Если бы я начинал изучение сейчас, обратился бы за советом по источникам обучения к опытным товарищам, меньше надеялся бы на случай и удачу. Чтобы стать Java-специалистом, скорее всего, надо было больше заниматься практикой, искать в интернете интересные задачи или пытаться выдумать их себе самому.

Моя самая главная проблема, наверное, — это отсутствие сильного желания, следственно, мотивации. Сейчас я понимаю, что пошел в IT и захотел изучать Java только потому, что не видел других вариантов. Я не понимал, кем могу стать, чем заниматься по жизни и как зарабатывать деньги. Интересно может и было, но нам много чего бывает интересно. Это не значит, что всем этим мы бы хотели заниматься каждый день.

🌵 Собеседования по Java: «Меня гоняли по книжным вопросам, на этом я и сыпался»​

В 2018 году я начал поиск работы. Заходил в основном на DOU, иногда на Work.ua. Искал по запросам Java Intern, Java Junior. Все говорят, что Java — уже старый язык, что он умирает. Тем не менее, если сейчас посмотреть на DOU, то вакансий по Java Junior больше, чем в 2018 году, я иногда проверяю ради интереса. Когда я искал работу, по всей Украине Java Junior требовалось максимум семь. Поэтому я даже не смотрел, что там за проекты, просто слал резюме везде, куда мог. Ходил по собеседованиям, обошел более 10, но мне нигде не повезло.

На интервью я всегда переживал. Возможно, это тоже мешало. Если говорить о технической части, то меня ставили в тупик, когда начинали спрашивать по простейшим алгоритмам. Например, какие есть алгоритмы сортировки, просили объяснить их, написать код на бумажке, чтобы отобразить этот алгоритм, алгоритм обхода деревьев, красно-черное дерево... Общее понимание всего этого у меня было, но, когда надо написать на листике работающий код, меня это выбивало из колеи. На курсах, которые я посещал, алгоритмических задач не давали. Они были еще в универе. Мы писали код, но задачи у нас были другие.

Я видел, что на собеседованиях мне всегда не хватало практики. Мне сложно было с ходу написать на бумажке код, который будет решать задачу. В голове алгоритм построить могу, в код перенести — с трудом. Мне кажется, что если у человека много практических навыков, то на теорию больше бы закрывали глаза. А так меня гоняли в основном по теории, по книжным вопросам, на этом я и сыпался. Когда готовился к следующим собеседованиям, не знал, что первое подтягивать — теорию или практику. Я все время был в спешке, мне всегда была нужна работа на вчера. Вообще я думаю, чтобы стать девелопером, нужно начинать искать работу раньше, еще студентом, а не когда тебе уже 23 или 24, 25. Когда учишься в вузе, не понимаешь, что у тебя полно времени. Главное — это работа, а с университетами разберешься как-то.

Мне запомнилось одно странное собеседование. Не помню название конторы. Офис представлял собой две небольшие комнаты, каждая, наверное, квадратов по двадцать. Я приехал туда в шесть или в семь вечера. В офисе сидел мужчина, который представился техническим директором компании. Сказал, что будет проводить интервью. Он у меня спросил: «Сколько у вас pet-проектов в наличии?». Я ему ответил: «Один». Он: «Не, ну если один, то это мало. Нам нужен более опытный сотрудник». Я ему говорю: «И все, что ли?». Он: «Ну да, до свидания». Собеседование длилось две минуты, и интервьюер задал всего один вопрос. Я продолжал поиск работы.

🔥 Работа: «Главное, что мне нравилось здесь, — широкий спектр задач»​

В 2018 году друг предложил устроиться в продуктовую IT-компанию, основными сферами деятельности которой являются data extraction и управление бизнес-процессами. Он сам там работал, также когда-то в этой компании работала моя старшая сестра. Была вакансия Implementation Engineer. Нужно было внедрять софт компании на клиентской стороне, иногда была возможность что-то пописать на C#, для внедрения проекта иногда нужно было сделать пару запросов на SQL. На то время я уже долго не работал, жил с родителями, нужны были деньги, поэтому решил согласиться на эту должность, бросил изучение Java и поиски вакансий по этому направлению.

Собеседование было лайтовое. Я порешал логические задачки, у меня поспрашивали, что я знаю, чем занимаюсь. Сказал, что пытаюсь учить Java, но меня по ней не гоняли. Поспрашивали немножко по SQL, но не давали писать запрос, а уточнили, за сколько времени примерно я написал бы вот такой запрос с гуглением. Собеседование длилось минут 40. В итоге меня взяли.

У компании было много продуктов, но мы работали с одним основным. Отдел инженеров по имплементации у нас был достаточно большой, человек 15. Софт нужно было настраивать, оптимизировать, добавлять кастомные этапы, которые захочет клиент. Это могло занимать от недели до нескольких месяцев, если был крупный заказчик и он требовал много переделок.

Поскольку я немного знал Java, мне было проще выполнять некоторые задачи. Клиент часто просил добавить какой-то конкретный этап, например, отправление запроса на веб-сервер или что-то ещё. Запросы можно писать на C#, а там с Java синтаксис практически идентичный. В целом технические знания, которые я получил в процессе обучения, мне помогли. Остальному обучили на месте.

Работа мне нравилась. Команда, зарплата — все было классно. Продукт всегда был один, но задачи — разные. Разные клиенты хотели себе разных доработок. Кроме первостепенной задачи (настройки софта), я проводил презентации, тренинги, консультировал клиентов. Один раз ездил на месяц в Германию. Там делали для нас новый софт. Обычно компания сама занималась этим, но тогда для нас его готовили третьи лица. В общем, я поехал в качестве специалиста, который будет первопроходцем, разузнает полезную информацию от разработчиков, протестирует продукт, попросит переделать неудобные или непонятные моменты. Это нужно было для нашего отдела и для других похожих отделов из других офисов. В перспективе — для клиента, который хочет внедрить продукт сам.

В целом главное, что мне нравилось в работе здесь, — широкий спектр задач. Но так как все основывалось на одном продукте, я не видел развития, плюс не покидало желание попробовать себя в разработчиках. В какой-то момент меня заинтересовал Python. Начал его учить, но совмещать обучение и работу было сложно. Три дня в неделю из пяти я овертаймил. В итоге в конце 2019-го, проработав год и 10 месяцев, я ушел из компании, чтобы учить Python.

⚡ Новый язык: «Я решил изучать Python из-за его универсальности»​

Я решил изучать Python из-за его универсальности. Рассуждал: «Сначала язык поучу, а там разберусь». Еще все говорили, что Python — проще, чем Java. Я подумал: «О, мне подходит, супер!». Не хотелось ничего сложного. Чтобы проще было разобраться с этим языком, решил пройти сначала курс, а потом уже взять какую-то книгу. Начал с курса на Udemy. Потом была книжка «Простой Python» Билла Любановича. Вообще обучение давалось суперсложно, но желание не пропадало, а локдаун способствовал усидчивости.

После курса и книги немного разобрался, что-то мог писать. У сестры был знакомый, который работает в Google или когда-то там работал, я уже плохо помню. Она меня с ним связала, я поделился своими планами. Он сказал, что поможет. Дал мне задачу написать сапер. Я с этим барахтался, барахтался, что-то у него спрашивал, что-то гуглил. Также он мне давал задачу поднять сервер на Flask. Я сервер небольшой поднял и через YouTube API какие-то запросы отправлял. Кажется, отправлял запрос на веб-сервер со ссылкой на YouTube-канал, он мне возвращал перечень видео с самым высоким соотношением лайков/дизлайков. В итоге у моего ментора было много дел и не было времени со мной заниматься, его задания не совсем были понятны, а мне было неудобно его тревожить. Так мой контакт с ним и прервался.

В целом сам Python несложный. Не помню, чтобы у меня возникали трудности с чем-то связанным с языком. Единственное — перестроиться после Java на некоторые вещи было тяжеловато. Сложно сказать, жалею ли я о том, что потратил время на изучение Python. С одной стороны, лишними эти знания не будут. С другой — можно было направить силы в ВА (направление, в котором сейчас работаю).

🌧️ Как я не стал ML-специалистом: «В общей сложности я прошел около 12 собеседований, но так и не нашел работу»​

Тема ML достаточно хайповая. Иногда я видел на Medium интересные задачи, решенные машинным обучением. Плюс прошлая работа в компании в какой-то степени подтолкнула меня к изучению ML. На некоторых этапах в продукте использовались модели, которые мы сами обучали, без кода, в стиле «черной коробки». В общем, мне стало интересно попробовать стать ML Engineer/Data Scientist.

Знакомых по этому направлению у меня не было, поэтому обратился к курсам. Начал с Udemy, потому что недорого было, по 10 долларов. А именно — с Complete Machine Learning & Data Science Bootcamp 2021. В курсах Machine Learning A-Z™: Hands-On Python & R In Data Science и Deep Learning A-Z™: Hands-On Artificial Neural Networks копают чуть глубже, но всё равно этого часто недостаточно, чтобы на собеседовании объяснить, как работает та или иная модель.

Проходил их долгое время. Закончил один курс, потом лез на Kaggle (там различные задачки по Machine Learning). Суть в следующем: выбираешь задачу, читаешь описание, скачиваешь дата-сет. Создаешь модель, настраиваешь ее на данных и полученные результаты заливаешь обратно на сервис. Из лучших результатов (например, те, у кого модели с самой высокой точностью) строится некий список, топ. Иногда в этих челленджах есть денежные призы за первые места. Обычно я брался за какую-то задачку и понимал, что у меня не хватает знаний. Постоянно лез обратно в теорию, чтобы разобраться. Из-за этого у меня не было нормального объема практики.

Параллельно я ходил на собеседования. После одного из них мне посоветовали специализацию на Coursera по высшей математике для МЛ-разработчиков — Mathematics for Data Science. Я ее прошел.

Вообще система на Coursera хитрая. Покупаешь не курс, а подписку на время, в течение которого его можно пройти. Один месяц стоил долларов 40 или 50. Я всю специализацию прошел за полтора месяца. В целом мне понравилось, только в одном курсе была проблемка — лектор с плохим английским.

На курсах на Udemy мне импонировала простота подачи, как минус — преподаватели не сильно углублялись. На Coursera в точности до наоборот: было скучнее, но при этом больше углублялись, хорошо объясняли, формулировки были более сложные.

С конца лета 2020-го и до весны этого года я искал работу специалистом по машинному обучению. Закидывал резюме везде, куда только можно: в продуктовые, аутсорс-компании, гемблинг. Из крупных компаний, в которые я подавался и проходил интервью, — Genesis, Fozzy. Уже к зиме чувствовал, что собеседований мало, их я прохожу безуспешно, не хватает базовых знаний, часто — высшей математики. Мне уже 27 лет, я живу с родителями, которым мои затеи с романтичным вечным обучением вместо стабильной работы не очень нравились.

На собеседованиях меня много гоняли по теории из-за отсутствия практики. На некоторых из них просили чуть ли не нарисовать, как обучается и работает нейронная сеть. В таких деталях, чтобы это можно было запрограммировать, то есть не просто знать, как это работает в общем, а прям до нюансов понимать. В общей сложности за шесть месяцев я прошел около 12 собеседований, но так и не нашел работу.

Для меня самым сложным в ML была математическая сторона работы алгоритмов машинного обучения. Чтобы это хорошо понимать, нужны свежие знания по вышке. А вот строить модели в своё удовольствие, для развлечения — это просто. Есть множество высокоуровневых библиотек как со статистическими моделями, так и с нейронными сетями, где можно, играя, достичь неплохих результатов.

Скорее всего, в изучении ML, как и в Java, мне не хватило мотивации. Где-то я не достарался, не дотянул. Сложно сказать, жалею ли я о потраченном времени на ML. Скорее нет, чем да. Я более-менее разобрался в том, что такое машинное обучение, как оно работает. Возможно, мне пригодятся эти знания в будущем.

💡 Профессия бизнес-аналитика: «Я решил, что будет, то и будет»​

Я не мечтал быть бизнес-аналитиком, так получилось. Я заболел ковидом, на месяц выпал из обучения по ML. В конце марта этого года, когда пришло время возвращаться в русло, уже не было сил и не хотелось этого делать. В общем, я перегорел. На тот момент появилось желание пойти куда-то работать.

Я вообще поменял свое отношение к работе. Необязательно искать профессию мечты. Тем более, я не скажу, что быть разработчиком — это мое самое сокровенное желание. Скорее всего, я себе его придумал. Понял, что нужно найти какую-то работу. Все равно какую, мне надоело сидеть дома.

Подумал попробовать себя в бизнес-анализе, потому что я эмпатичный человек, плюс у меня есть технический бэкграунд. Эта работа — где-то посредине между технической и не технической. Плюс у меня был опыт сбора требований от клиентов на прошлом месте. У меня это должно было неплохо получиться. Решил, что попробую какое-то время бизнес-анализ, дал себе время до лета. Если попытка не увенчается успехом, просто вернусь в компанию, из которой ушел, и там скучать не буду.

Сначала я ходил на собеседования без подготовки. Посетил около четырех. Естественно, меня никуда не взяли, но я примерно понял, что вообще спрашивают, что нужно знать бизнес-аналитику в теоретическом плане. Я прошел быстренько курсы, нашел пару книг, которые прямо обязательные, классические для бизнес-аналитиков. Прочитал одну из них (Карл Вигерс «Разработка требований к программному обеспечению») и то не полностью. Сходил еще на четыре интервью. Второй круг моих собеседований увенчался успехом. Если было бы еще чуть-чуть времени, еще поучился бы, но я решил, что не надо уже. Кроме того, опять же, я жил с родителями, они нервничали по этому поводу. Я решил, что будет, то и будет. Пошел в итоге в крупную аутсорс-компанию на бизнес-аналитика, причем не на определенный проект. На данный момент я прохожу онбординги.

У меня больше нет желания развиваться в разработке. Когда устраивался на предыдущую позицию — Implementation Engineer, я себя настроил на то, что тут работать на самом деле не хочу, хочу быть разработчиком. Сейчас к работе отношусь намного проще. Главное — быть счастливым (даже если звучит как глупость). Получится у меня или не получится — фиг с ним, это не самое важное в жизни.

В теории бизнес-анализ мне нравится. Монотонная, но интересная работа. Я только на старте этого пути, но чувствую себя намного лучше, не задерганный, расслаблено и понемногу вхожу в курс дела. Из планов — развиваться в направлении ВА. На краткосрочную перспективу хочу набить руку в регулярных ВА-активностях, таких как общение с заказчиками, составление диаграмм, создание юзер-сторис, макетов и так далее, потому как сложно пока сказать, что я прям в своей тарелке, но чувствую, что мне по силам.

Если б я раньше понял, где можно себя применить — в творчестве, в управлении, в какой-то инженерной профессии — я бы предпочел такой путь айтишному. Есть и другие сферы, где можно зарабатывать достаточно, а сколько времени и сил у меня заняло ІT и какой выхлоп — я уже знаю. Ну и в целом ІT — не единственный путь, я для себя просто другого не придумал на тот момент за неимением жизненного опыта.

 
Сверху