Как стартовать карьеру в IT: лайфхаки от разработчика Whoosh

Хотя сейчас постоянно говорят о битве компаний за айтишников, это касается главным образом мидлов и синьоров. Специалистам без опыта нужно потратить много сил, чтобы найти работу, где они смогут профессионально развиваться. Один из бэкенд-разработчиков Whoosh, Петер Ибрагимов, рассказывает, как правильно стартовать карьеру начинающему айтишнику.

<i>Петер Ибрагимов, бэкэнд-разработчик Whoosh</i>
Петер Ибрагимов, бэкэнд-разработчик Whoosh

Об изучении разработки

Решение работать в IT я принял еще на первом или втором курсе университета. Но с конкретным направлением долго не мог определиться, поэтому пробовал разное: фронтенд, джаваскрипт, девопс — пока наконец не наткнулся на Python. Когда я начал на нем писать, то понял, что язык мне нравится и я хочу развиваться в этой области.

В тот момент я учился в МИСИС по направлению прикладной математики, поэтому узкоспециальных знаний не хватало, так что я начал изучать язык самостоятельно. Я смотрел видео на YouTube, проходил бесплатные курсы на Coursera и Stepik, пилил пет-проекты, начал участвовать в хакатонах.

Уже позже, во время работы, я часто анализировал, за счет чего получилось решить какую-то задачу — благодаря вузовским занятиям или тому, чему я научился самостоятельно. Так вот, 90% знаний я получил именно за счет самообучения.

О поиске работы и трудоустройстве

Когда у тебя еще нет опыта работы, не ты выбираешь компанию, а компания решает, возьмет она тебя или нет. И многие, конечно, не берут: я подавался на большое число стажировок, но либо мне не отвечали, либо я им не подходил.

На 3 курсе мне понадобилось уйти в академический отпуск по личным причинам. В это время я подрабатывал курьером, помогал студентам с домашками, а параллельно продолжал учить язык и участвовать в хакатонах. На одном из таких хакатонов, который организовывал Whoosh, мы с друзьями заняли первое место. После этого компания предложила нам пройти собеседование. До этого я только видел самокаты Whoosh — их сложно не заметить, но сам ими не пользовался и всерьез не думал о том, что туда можно устроиться. Конечно, я принял приглашение.

Техническое собеседование было классическим: мне задавали обычные айтишные вопросы про структуру данных, про стандарты, методы оптимизации. И скажу честно, на часть из них я не ответил. Самое смешное, что я затупил именно на тех темах, к которым готовился заранее.

До сих пор не знаю, что сыграло роль в том, что оффер я все-таки получил. Наверное, портфолио. У меня было много хороших пет-проектов, и один из них довольно большой: за год до этого мы с одногруппниками выиграли хакатон и получили грант на разработку системы поиска свободных парковочных мест с помощью камер на основе нейросетей. Я в этом проекте отвечал за бэкенд и на собеседовании в деталях объяснял, как его делал. Ну и на хакатоне Whoosh мы все-таки показали полноценное работающее решение. Думаю, это очень помогло.

Возможно, компании понимают, что новички на интервью часто теряются, поэтому полезно иметь большое портфолио проектов, про которые вы можете подробно рассказать.

О первом этапе работы

Я очень хорошо помню свой первый день, потому что все оказалось совсем не так, как мне рассказывали друзья: мол, тебе сначала все объясняют, а уже потом начинается работа. У меня сразу же был первый созвон с коллегами и сразу появились задачи, которые надо было сразу решать. И это замечательно, потому что я с первого дня погрузился в процессы и разобрался, как что работает. Насколько я знаю, в других компаниях стажировка может длиться очень долго, реальных задач тебе не дают, плюс не факт, что ты вообще попадешь в команду. То есть, если тебе откажут, ты даже не сможешь унести с собой какой-то опыт. В Whoosh же меня с самого начала погрузили в работу по полной.

Вначале меня посадили на тестирование бэкэнда — то есть я писал тесты на Python, которые проверяли его работу. Это продолжалось месяца полтора, после чего я уже перешел на полноценные задачи по разработке.

О том, какие навыки пригодились

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

  • Первое — знать Python 3.9. Как минимум понимать, что это за язык, как на нем писать, как на нем работает мультибрендинг, мультипроцессинг, асинхронность, обработка ошибок, контекстный менеджер.
  • Второе — уметь работать с базами данных: знать, какие они бывают, в чем разница между key-value и document, уметь строить SQL-запросы и так далее.

Еще есть много других вещей, которые в плюс любому начинающему соискателю. Скажем, здорово, если джун хорошо разбирается в алгоритмах или знает REST API.

О рабочих задачах, любимых и не очень

Сейчас я большую часть времени разрабатываю новые фичи или оптимизирую старые. Например, если нужно упростить регистрацию пользователей в приложении, я думаю, как можно это сделать, и пишу решение. Иногда я занимаюсь оптимизацией: скажем, обновляю старый код, чтобы он работал быстрее.

Как и у любого человека, у меня есть и любимые задачи, и нелюбимые. Так, мне не нравится фиксить баги, то есть иметь дело с ситуацией «произошла какая-то ошибка, и надо понять, в чем причина». Для этого нужно сесть, разобрать код, найти проблему — а обнаружить ее далеко не всегда просто. От этого сильно устаешь.

Еще одна неприятная работа — восстанавливать потерянные или сломанные данные в базе. Это очень большая задача, которая занимает много времени и которую надо с первого раза выполнить без ошибок.

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

Еще мне нравятся нетривиальные задачи: например, когда нужно оптимизировать какой-то end-point (конечную точку), который уже и так оптимизирован, но надо сделать его еще лучше. Это почти целое исследование, в которое нужно погрузиться с головой. Это не только интересно, но и полезно, потому что в процессе поиска решения ты узнаешь что-то новое.

О карьерном росте

На мое развитие в компании влияет много факторов, но, пожалуй, главный — это то, что мне очень нравится заниматься своим делом.

Интерес к профессии заставляет меня уделять разработке много времени, и не только рабочего: я могу по вечерам или в выходные изучать что-то новое, не связанное напрямую с моими задачами. Например, не так давно я узнал про базу данных Tile38 и решил изучить, что она умеет, попробовал с ней поработать и рассказать об этом коллегам.

Я пока не решил, как строить свою карьеру дальше. Тем более, что мне только 22 года, недавно я восстановился в университете после академа, а необходимости определяться с планами прямо сейчас нет. Но позже мне, конечно, придется выбрать, куда я хочу пойти дальше: в тимлиды, техлиды, остаться в разработке и дорасти до уровня синьора или, например, стать архитектором. Я заметил, что у многих разработчиков похожая ситуация: они не сразу знают, кем хотят стать.

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

И напоследок — совет джунам:)

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

99
3 комментария

Классный подход к работе!

2
Ответить

Интересно, если вы работаете в той компании, вам дают подписку на бесплатный проезд самокатов?

1
Ответить

Да, наши сотрудники получают промокоды на поездки :) а также возможность первыми тестировать новинки, и еще разные другие плюшки

Ответить