Вкатиться в Go с нуля в 37, бросив бизнес и безуспешные попытки стать продактом
Кто сказал, что IT — дело молодых? Ильдус Тукаев в 37 лет бросил свой бизнес, выучился на Go-разработчика и сломал миф «старикам здесь не место».
 
 
Двадцать лет назад, ещё в университете, на приборостроительном факультете, я немного занимался программированием — и мне это нравилось. Но тогда я как-то не придал этому значения. Потом занимался установкой слаботочных систем и видеонаблюдения, протягивал компьютерные сети, собирал серверные и так далее. Это был мой «бизнес», в котором постоянно приходилось браться за перфоратор и считать каждую копейку — за 10 лет большого прибыльного дела так и не получилось.
В какой-то момент мне это надоело настолько, что даже не хотелось вставать с утра и ехать на работу. В этот момент ко мне обратился бывший клиент, которому я когда-то ставил видеонаблюдение и сигнализацию, и предложил вместе делать станки с ЧПУ. Идея мне пришлась по душе: я отвечал за техническую часть — прорабатывал конструктив станков, организовывал рабочий процесс, а он — за помещения и инвестиции.
Правда, с инвестициями было туго — свои деньги у него кончились в первые пару месяцев, а привлекать капитал со стороны оказалось непросто. И тут я вспомнил про IT. Сначала размышлял так: раз я полжизни кем-то руководил, нужно ориентироваться на должность проджект- или продакт-менеджера.
На деле всё оказалось гораздо сложнее. Для этих должностей был нужен хоть какой-то айтишный опыт: разработчиком, тестировщиком — да кем угодно, хоть техническим писателем. А он у меня отсутствовал совершенно. И я подумал: «А почему бы не заняться разработкой самому? Это же суперинтересно, да и раньше всегда у меня получалось».
Начал понемногу обучаться в одной из онлайн-школ. Хотя сперва держал это как запасной вариант: к тому времени я окончил курс — симулятор продакт-менеджера GoPractice — и грезил о карьере продакта. Однако курс, хоть и уважаемый в продактовской тусовке, вкатиться в профессию не помог — без IT-бэкграунда это сделать не получалось.
В итоге в какой-то момент я чётко понял: продакт-менеджер — это совсем не моё. После этого я с головой погрузился в разработку. Поначалу было сложно, но благодаря поддержке жены и брата получилось сдвинуться из этого болота в новое направление, интересные задачи и классную работу.
Интервью по мотивам выпуска подкаста «Люди и код».
— Ты говорил, что был менеджером большую часть своей карьеры. Фактически 10 лет до перехода в разработку ты вёл собственный бизнес, работал на себя. Насколько непросто было принять решение: «Я перестаю быть начальником и иду просто в наём»? И что побудило сказать себе: «IT — это моё»?
— Давай по порядку. Насчёт отказа от менеджерства — это как раз далось мне довольно легко. Я могу руководить людьми, но, положа руку на сердце, — мне всегда больше нравилось работать самому, делать что-то своими руками, чем кем-то управлять.
Насчёт IT — вопрос сложнее. Здесь скорее больше прагматики, чем чистого призвания. Прежде всего мне понравилось, что значительная часть компаний работают на удалёнке. Я банально устал каждое утро вставать на работу, по часу проводить в дороге туда и обратно.
Когда я перестал вести свой бизнес и начал тратить время на переход в IT, я понял, что завожу машину всего два-три раза в неделю, чтобы отвезти дочку на тренировку или съездить в город по каким-то своим делам. И меня так это порадовало, что я уже больше не хотел ездить в офис.
Менять направление деятельности было несложно — гораздо труднее было признаться себе, что всё, чем я занимался до этого, совершенно бесперспективно. Ведь я отдал этому 10 лет. Тяжело было осознавать, что это путь в никуда, что в найме у меня больше возможностей, в конце концов — что я элементарно заработаю там больше, чем на своём бизнесе, каким я его создал.
Первое соприкосновение с IT произошло через брата, который к тому моменту уже работал там около года. Он дал мне какие-то контакты, подсказал чаты, которые я начал потихоньку читать, — и я понял, что люди живут совсем другими интересами, чем были когда-то у меня. Мне понравилось IT-комьюнити, понравилась открытость этих людей, то, как они относятся к жизни, к работе.
— Как ты выбирал язык программирования? Не жалеешь о своём выборе?
— Не жалею ни в коем случае: мне нравится Go как язык, нравится его синтаксис, интересное сочетание простоты и сложности. Хотя я бы, наверное, не советовал его новичкам — Go сложноват для входа в программирование. В итоге на поиск первой работы у меня ушло гораздо больше времени, чем могло бы уйти на том же JavaScript или Python.
Однако Go всё-таки язык очень любопытный: на нём можно делать клёвые штуки. И я рад, что выбрал именно Go. В будущем хочу изучить и другие языки — не столько для того, чтобы на них перейти, сколько для того, чтобы посмотреть, как они устроены, как можно делать по-другому, не так, как я делаю сейчас.
— Как долго изучал Go?
— На путь от «Hello, World!» на Go до трудоустройства у меня ушло около пяти месяцев. Правда, перед этим я ещё вписался в небольшой стартап как волонтёр — помогал ребятам писать бэкенд. Фронт у них уже был готов, всё работало, а вот с бэком и деньгами были проблемы. Но я в тот момент не гнался за деньгами — просто хотел пощупать реальные задачи, получить какой-то опыт. Если считать стартап, то первый код в продакшен я начал писать где-то через четыре месяца с начала обучения.
— Как ты вообще изучал программирование: книги, курсы, статьи? Можешь выделить что-то самое полезное? Если бы сейчас начинал заново, каким бы путём пошёл и какой бы рекомендовал другим?
— Как человек, который «вернулся» в программирование после двадцатилетнего перерыва, я бы советовал новичкам заходить через курсы, платные и бесплатные — тем более сейчас есть очень много образовательных платформ. Там можно получить базу, научиться правильно пользоваться литературой, читать гайды, документацию — и начать с простых методов на очень простых задачах.
В отличие от курсов, большинство официальных учебников и документация по Go, с которых я начинал, не предназначены для плавного погружения. Они адресованы тем, кто уже умеет программировать, имеет какой-то опыт в других языках, — и помогают просто перейти со своего языка на Go.
— Ты упоминал, что занимался в онлайн-школе. Какие там были уроки? В видеоформате или вебинары? С поддержкой преподавателей или без? Что помогло, что оказалось бесполезным?
— Вначале было очень легко: я в день мог сделать гораздо больше заданий, чем успевал проверять преподаватель. К концу курса — а это был видеокурс — стало сложнее. Но преподаватель мне попался хороший — он давал интересные задания, показывал принятые в индустрии паттерны, давал полноценную обратную связь. И хотя мои программы работали корректно, подсказывал, как улучшить стиль и красоту кода.
Самым сложным для меня были интерфейсы и ООП. Скажем, окончательно понимать интерфейсы я стал примерно через два-три месяца после того, как впервые с ними столкнулся. Тут выручило то, что, помимо учёбы, на курсах, я нашёл себе ментора на сервисе GetMentor.
Кстати, большое ему спасибо: Паша совершенно бесплатно мне помогал, очень много чего подсказал. Хотя мы общались с ним всего два или три раза, он дал мне какие-то ключевые моменты, направил меня так, что я в конце концов пришёл к пониманию важных и сложных вещей.
Кроме того, мне неожиданно помогла книга Таненбаума по компьютерным сетям, где также рассматривались интерфейсы — но немного с другой стороны. Я вдруг понял, что это такое и для чего они нужны.
Именно тогда я и понял, что можно почерпнуть знания не только из книг о языке, но и из других каких-то ресурсов.
Я вообще очень много читал: язык Go славится хорошей документацией ко всем либам и пакетам. Правда, почти всё только на английском языке. И это было огромной болью — английский я вначале не знал совсем.
После онлайн-школы прошёл бесплатную версию продвинутого курса на Coursera — это довольно известный курс в кругу разработчиков Go, если не ошибаюсь, от одного из разработчиков из VK. Он дал мне понимание всяких важных нюансов языка — например, как работать с многопоточностью.
— Когда ты вышел на рынок труда? Как писал резюме?
— Впервые попытался откликаться на вакансии по Go через три месяца после того, как начал его изучать. Резюме у меня к тому моменту было очень слабое и неубедительное — не пришло ни одного отклика. Да даже отказы почти не приходили, меня просто убирали куда-нибудь с глаз долой. Было такое ощущение.
Конечно, мне это не нравилось, и я потихонечку правил резюме, советовался с ребятами, которые давно работают в этой сфере, добавлял какие-то вещи, с которыми работал и которые так или иначе могли звучать как релевантный опыт. Потом снова откликался на вакансии, снова получал отказы, снова дорабатывал резюме и параллельно качался в Go.
В общей сложности я откликнулся где-то 60 раз на hh.ru и ещё раз 20–30 — на других платформах типа «Хабр.Карьеры», Rabota.ru и так далее. Но работу мне принёс даже не мой отклик. Меня просто нашли на «Хабр.Карьере» и написали мне: «Чувак, хочешь попробовать поработать? У нас криптостартап». Я ответил: «Ребят, у меня уровень примерно джун». При этом я знал, что в финтех и крипту обычно ищут специалистов не ниже мидл-уровня.
Но неожиданно мне сказали: «У нас есть хороший опыт найма джунов. И если ты хорошо сделаешь тестовое, мы с тобой поговорим». Мне дали ссылку на сайт, который компания делала (whattofarm.io) и тестовое. Я попросил неделю на его выполнение. Делал я его примерно по три часа в день, и у меня ушло пять дней. На мой взгляд, результат был хорошим — я выполнил все требования тестового, хотя, возможно, где-то и накостылил. Но в общем и целом всё работало.
Потом ребята долго не могли его проверить: то кто-то болел, то был аврал и тому подобное. Я напоминал о себе несколько раз. Я уже перестал надеяться. Но в какой-то момент мне написали и сказали: «Готовы с тобой побеседовать. Давай согласуем дату, когда побеседуем уже голосом, то есть проведём техинтервью». И всё. Так я устроился на свою текущую работу.
И теперь я знаю, что у ребят в команде действительно была очень большая нагрузка, потому что вот-вот должны были запустить продукт.
— Давай вернёмся на шаг назад, поговорим про резюме. Ты говорил, что обновлял его, добавлял какие-то моменты. Сейчас что мог бы сказать тем, кто только начинает рассылать резюме? Вообще, когда стоит начинать выходить на рынок труда и что надо написать? Как составлять резюме? На твой взгляд, что такое хорошее джуновское резюме?
— На рынок труда стоит выходить, когда ты уже умеешь работать с веб-сервисами. Потому что это то, чем занимается большая часть бэкенд-разработчиков. Что я имею в виду под «умеешь работать»? Это значит, что ты способен написать какое-то небольшое API, разобраться с документацией на чужое API, отправить запрос, принять ответ, записать/прочитать из БД и так далее.
Хорошее резюме однозначно должно быть коротким. Желательно, чтобы вы уложились в страницу «Google.Документов» стандартным шрифтом. Ничего лишнего. Стоит описать свой прошлый опыт так, чтобы он хоть как-то коррелировал с разработкой. Например, в какой-то момент я просто переписал своё резюме, и стало казаться, что все 14 лет после университета я занимался только разработкой в разных видах :) Например, отметил, что занимался установкой и настройкой серверов — я действительно устанавливал и настраивал видеосерверы, но почему-то не делал на этом акцент в резюме раньше.
Описывая свою работу с ЧПУ-станками, я отметил, что программировал контроллеры для станков. И это дало какой-то небольшой плюс к моему опыту: во-первых, меня гораздо чаще стали звать на интервью, а во-вторых, начали спрашивать, какие контроллеры программировал, какой опыт на них. Я честно заявлял, что это были не микроконтроллеры, а промышленные контроллеры, которые программируются на своём языке логических диаграмм. Но это тоже опыт — и в резюме он выглядел красиво: «настройка серверов», «программирование микроконтроллеров». Отличные слова-триггеры для эйчаров.
Ещё два момента. У меня лучше сработали резюме без сопроводительного письма. Не знаю почему. А когда я убрал зарплатные ожидания, со мной стали гораздо больше общаться. Думаю, увидев мои ожидания в какие-нибудь 60 000–70 000 рублей, эйчары и нанимающие айтишники сразу понимали, что я совсем новичок и со мной даже не стоит разговаривать.
Что касается конкретно опыта по Go — конечно, я вписал свою работу в стартапе с ребятами, несмотря на то, что я там сделал не очень много. Но сделал, и этот код работает. И работает хорошо. Он дал очень-очень большой толчок ребятам для дальнейшего развития.
Кстати, интересный нюанс: я вначале записал стартап как «киберспортивные матчи… что-то там» — собственно, это было корректно. Но в финальной, «высококонверсионной» версии резюме, заменил это на просто «стартап — сервис-агрегатор» или вроде того. Это тоже было корректно, но звучало уже не мемно и не отпугивало эйчаров.
Ещё я включил в резюме абсолютно все технологии, с которыми хоть когда-то сталкивался: фреймворки, базы данных, популярные библиотеки.
— А какие? Можешь назвать какие-то конкретные пакеты, технологии?
— Обязательно надо знать Git. Это мастхэв. Очень желательно знать хоть немного Docker, Docker Compose, пакеты для работы с сетью. В Go есть и стандартный пакет, но большинство всё-таки предпочитает работать со сторонними библиотеками. Например, Gorilla Mux, Gin или Echo. Если вы с ними сталкивались — отлично, вписывайте в резюме. Если не пробовали, то попробуйте буквально денёк-два их пощупать и тоже выписывайте в резюме. Мне также помогло, я поработал с веб-сокетом — это было первое, что я написал для «волонтёрского» стартапчика.
Обязательно надо вписать любую базу данных — и круто, если вы успели немного потрогать и SQL, и NoSQL. Среди SQL хорошо смотрится PostgreSQL, среди NoSQL — например, Redis или MongoDB.
— Расскажи про работу с тестовыми. Какие они были по сложности? Сколько времени на них в целом обычно уходило? Насколько было сложно выполнять?
— Тестовые задания были совершенно разные. Одно из тестовых мне дал парень из Сбербанка: сделать Rate Limiter, который ограничивает количество задач, выполняемых одновременно и выполняемых в единицу времени. Я делал его пять–шесть часов, из них два часа я разбирался с тем, что такое вообще Rate Limiter и как он работает :)
В основном дают тестовые на работу с каким-нибудь API: подёргать данные, переложить их в базу, взять с одного места, обработать, записать в другое место. Было одно тестовое, которое для меня оказалось просто ужасным и неподъёмным только потому, что у ребят была очень плохая документация на их собственное API. Пришлось все структуры данных выдёргивать из запросов с их сайта — то есть прям изучать, какие запросы отправляет сайт, что принимает в качестве ответа. Это было жутко. Я его так и не доделал и просто отказался от дальнейшей работы с ним. Потому что это просто издевательство над собой.
В общем, если вы видите, что тестовое неподъёмное — пожалуй, лучше не стоит даже браться за него. Если видите, что как-то плохо что-то описано, — скорее всего, результат будет плохой. Самые лучшие тестовые у меня получались тогда, когда задание было описано очень чётко и подробно, как в случае с компанией, где я работаю сейчас. У них было всё полностью прописано в задании так, что невозможно было его интерпретировать как-то неправильно.
— И сколько тестовых ты всего выполнил?
— Порядка пяти-шести. Я для себя решил так: в моём положении писать тестовое задание — всё равно что набивать себе портфолио. То есть делал тестовое — и тут же выкладывал его в свой аккаунт на GitHub. Я считаю, что для джуна тестовые — это идеальный способ прокачаться и поработать с какими-то новыми технологиями.
— Сколько примерно собеседований ты прошёл? О чём спрашивали HR, о чём — на технических интервью? Что было сложно? Где тебе казалось, что ты был слаб? Что с этим делал потом? И на том месте работы, где ты сейчас работаешь, насколько успешно ты, по своим ощущениям, прошёл это собеседование?
— У меня было около пяти собеседований. Из них четыре с HR и только одно — техническое. Было ещё одно собеседование непосредственно с парнем, который делал свой проект: он и нанимал людей, и платил им, и писал основную часть кода.
Самые неприятные собеседования были в «Авито» и в «Озоне». Потому что HR, очевидно, видели, что я не дотягиваю до того уровня, который они хотят. Но при этом, улыбаясь, говорили мне, что передадут мои данные технической команде и обязательно мне ответят. Естественно, после этого никакого ответа я от них не дождался.
А самые приятные были в маленьких командах. Это уже упомянутый парень, который нанимал в свой проект дополнительного бэка, и ребята, с которыми я работаю сейчас. Потому что это те люди, которые и фидбэк давали достаточно быстро, и по которым было хотя бы понятно, чего они от меня хотят.
Что могу посоветовать тем, кто проходит собеседования? Честно, я не знаю, можно ли так говорить, но я бы советовал банально, извиняюсь, врать: «заливать», что вы работали со всем, с чем только можно. Потому что ваша цель — дойти до технического интервью. Только технический специалист может понять, нанимать вас или нет, нужны вы компании или нет. Если же HR хоть чуть-чуть заподозрит, что вы не подходите, и напишет плохое сопроводительное, то с огромной вероятностью вы просто не дойдёте до технического собеседования.
— Параллельно с учёбой и поиском работы ты работал где-то? Были какие-то источники дохода?
— У меня всё это время были очень небольшие доходы, очень скромные. Я всё это время жил за счёт жены, за счёт того, что она работала. Но при этом у нашей семьи в принципе очень небольшие потребности, и мы укладывались ежемесячно в 30–40 тысяч рублей на продукты и плюс какие-то предметы первой необходимости типа заправить машину, купить что-то для детей. У меня две дочки — немаленькая, по современным меркам, семья. И траты иногда возникают всё же.
Конечно, психологически было очень сложно. Первые два-три месяца я был бодр и горд, что меняю профессию. Но следующие пять месяцев без работы дались мне тяжело. Конечно, я не сидел совсем уж без работы, немного денег приходило то оттуда, то отсюда — но это были небольшие суммы.
Как я уже говорил вначале, меня очень сильно поддерживали жена и брат, говорили, что всё будет окей, всё будет хорошо, «давай-давай-давай, надо просто продолжать, и в какой-то момент всё наступит». Бывает, теряешь настрой, теряешь желание вообще хоть что-то делать. В такие моменты я просто старался отвлечься, посмотреть какую-нибудь киношку, поиграть в какие-нибудь игры. Бывали дни, когда я вообще не занимался ни разработкой, ни поиском работы. Просто откладывал это на потом.
— Бывали моменты, когда хотелось всё бросить? Что с этим делал?
— Конечно, бывали. И чем дольше ты не работаешь, тем чаще возникают такие моменты и хочется уже взять и просто устроиться на какую-нибудь работу. И да, я искал какие-то другие вакансии по своей основной специальности — в принципе, был готов устроиться даже монтажником. Но в какой-то момент понял, что если я так сделаю, то, во-первых, я буду ненавидеть свою работу, а во-вторых, остановлюсь в программировании: как можно заниматься, если ты просто приходишь домой выжатый, как лимон, и не хочешь ничего — только посидеть на диване. Просто на силе воли в какой-то момент давил такие желания. Ещё помогала поддержка. Поддержка близких.
— Мог бы какие-то общие советы дать тем, кто собирается переходить в IT? Ты прошёл весь этот путь. Ты пришёл к какой-то точке, когда ты получил работу. Радовался, когда её получил. Если оглядываться назад, как бы ты сейчас выстроил свой трек?
— Я не знаю. Мне кажется, путь каждого человека в IT будет индивидуальным. Если у вас есть возможность просто не работать и учиться, как я, — пожалуй, это будет самым лучшим вариантом. Потому что если вы будете работать, то всегда будет возникать ощущение, что ваша работа важнее, чем та цель, к которой вы идёте.
Но на самом деле, на мой взгляд, это неправда. Если у вас есть цель поменять работу, то важнее то, что будет, а не то, что у вас сейчас. И именно этому надо уделять основную часть своего внимания и сил. Потому что если распыляться на несколько направлений, то и ваша нынешняя работа будет не очень хороша, и ваш прогресс в IT будет абсолютно никакой.
У меня так было до декабря, когда я ещё думал: «То ли стать продактом, то ли разработчиком». И я настолько распылялся и туда, и туда, что ни в одном из направлений в тот момент не смог добиться какого-то ощутимого прогресса. В разработке начал прогрессировать, только когда отказался от всего остального.
Как я говорил, у меня была возможность не работать и только изучать программирование, чтобы максимально быстро войти в профессию. Как это у меня произошло? Не знаю. Щелчок в голове — и я понял: «Зачем я делаю всё остальное, если хочу быть разработчиком?»
Был ещё один интересный момент. Перед Новым годом я договорился со своим другом, который остался работать в монтаже, что возьму небольшой проект по установке Wi-Fi в школах. Набрал несколько школ. Приехал туда. И выгорел уже в тот момент, когда только начал выкладывать инструменты из машины. Я понял, что это будет единственная школа, которую я сделаю, и отказался от всего остального.
А ещё на третий день моей работы в этой школе мы ехали с младшим братом с лесенкой на крыше машины и увидели таких же ребят, которые в восемь вечера едут с лесенкой на крыше. Я поворачиваюсь к брату и говорю: «Смотри, мы такие же дебилы. Что мы с тобой делаем? Ты хочешь писать электронную музыку, я хочу программировать. Зачем мы в восемь вечера едем хрен пойми куда с лесенкой на крыше машины?»
И мы одновременно решили, что больше ни одного объекта никогда в жизни не возьмём — что будем заниматься только тем, что нам интересно. Это было так, как будто тебя толкнули в бок и сказали: «Чувак, чем ты занимаешься сейчас?» Я не знаю, но вот как-то так это ощущалось.
— А сколько времени тратишь на обучение сейчас, когда уже получил работу и стал «королём мира»?
— На работу и обучение уходит примерно 10 часов в день. Ещё ежедневно трачу время на изучение английского: я же понимаю, что для разработчика это один из ключевых навыков.
— И какие планы на будущее? Какие языки интересно пощупать, какие технологии, как хочется развиваться в профессии, какие книги читаешь?
— Планов, как обычно, больше, чем времени. Сейчас самый главный из них — втянуться в работу команды, стать им полезным, чтобы продолжить там работать. Потому что я понимаю, что если не смогу показать, что способен выполнять какие-то задачи, если не смогу показать, что буду полезен, то мне придётся в скором времени искать новую работу. А мне бы хотелось работать с этими ребятами. Потому что интересен проект, интересно то, чем они занимаются. И мне интересен Go. А у них — то есть у нас — в данный момент уже полностью весь бэк исключительного на Go написан.
Если говорить про более далёкие планы, то хотелось бы немного поизучать фронт, JavaScript — просто для того, чтобы понимать, как то, что я делаю, потом будут применять ребята-фронтендеры, как мне сделать так, чтобы им было удобнее.
Также хотелось бы закончить всё-таки мою эпопею с Python. Потому что, в принципе, это язык интересный и на нём можно очень круто писать какие-то сложные вещи.
Следующее, что мне интересно, — Java. Просто потому, что это классический ООП-язык. И на нём я лучше пойму какие-то ООП-паттерны, смогу их применять уже у себя в работе, сейчас понемногу изучаю Kotlin.
И я мечтаю когда-нибудь попробовать Haskell. Потому что очень много слышал об этом языке. И мне просто очень хочется попробовать, как это — писать код по-другому, совершенно по-другому.
 Все
                                Все
                             Истории
                                        Истории Дизайн
                                    Дизайн Код
                                    Код Геймдев
                                    Геймдев Бизнес
                                    Бизнес Маркетинг
                                    Маркетинг Управление
                                    Управление Кино
                                    Кино Музыка
                                    Музыка Проектная фотография
                                    Проектная фотография Развитие
                                    Развитие Здоровье
                                    Здоровье Деньги
                                    Деньги Образование
                                    Образование EdTech
                                    EdTech Корп. обучение
                                    Корп. обучение Блог Skillbox
                                    Блог Skillbox Глоссарий
                                        Глоссарий Спецпроекты
                                        Спецпроекты Профориентация
                                        Профориентация 
                                    




 
			 
                     
     
                                     
                                     
                                     
                                    