Как войти в IT и остаться там

Как войти в IT и остаться там

Какие направления сейчас наиболее востребованы в IT? Какой язык программирования выбрать? Как получить работу, если нет опыта? Сколько можно зарабатывать на старте и по мере развития скиллов? Об этом и не только говорили на вебинаре Слёрма «Как войти в IT и остаться там».

Для тех, кто не успел или предпочитает читать, а не смотреть, мы подготовили текстовый вариант.

Участники вебинара:

Леонид Крутовский — senior software engineer. Занимается менторством разработчиков. Автор курса «Backend-разработчик на Python».

Сэм Булатов — ведущий фронтенд-разработчик в Waliot, организатор мероприятий сообщества «KrdDevDays», участник подкаста NgRuAir. Автор курса «Frontend-разработчик».

Марсель Ибраев — CTO «Слёрм».

«Все айтишники угрюмые, бородатые и в свитерах»

Марсель: Направлений в IT много, но обычно всех специалистов делят на разработчиков и администраторов. Сегодня будем говорить преимущественно про разработчиков — разберём, что они должны уметь, как выглядит стандартный рабочий день и какие есть особенности.

Начнём с распространённых мифов. Принято считать, что разработчик — это человек, который по 10 часов в день сидит за компьютером в засаленном свитере, смотрит на циферки на чёрном экране и разговаривает на непонятном языке. Как можете это прокомментировать?

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

Многие идут в IT с мыслью, что там они будут работать с компьютерами, а не с людьми. Это не так. Нужно быть весёлым, понятным и приятным человеком, с которым хочется взаимодействовать каждый день. Это важный момент современных IT-реалий, из которого рождается понимание сферы как мира «розовых пони и единорогов». Здесь все стараются быть хорошими людьми: не грубят и не злят, а помогают.

Сэм: Согласен с Леонидом. Время, когда IT было маленькой тусовкой, прошло. Если раньше ты сам мог написать операционную систему, то сейчас всё разрослось до таких масштабов, что нельзя взять и создать условный Windows в одиночку.

Когда приходишь в компанию, у тебя появляется команда. И ты должен уметь общаться, чтобы верно доносить свои мысли. Большая часть стереотипов, что программисты — интроверты, которые сидят где-то у себя в каморке, ушла. От таких специалистов стараются избавляться, потому что они создают напряжённостью в коллективе. Плюс, на практике выясняется, что качество их кода не такое уж и хорошее. Это проблема «пещерных программистов» — они сидят у себя в «пещере» и годами пишут свой код, ни с кем не делясь наработками. Потихонечку такой код загнивает.

Л: Поддерживаю. Последний тренд, который подхватили мировые лидеры и который постепенно спускается до среднего и малого бизнеса, — ещё на этапе собеседования проверять человека на soft skills. Оценивать, насколько развиты его коммуникативные навыки, критическое мышление, умение взаимодействовать. Я знаю много случаев, когда люди не могли устроиться в крупные компании, просто потому что не проходили по soft skills.

Что сейчас востребовано в IT

М: Наверняка большинство наших читателей знают, что в программировании много языков, фреймворков и направлений. Можете сориентировать новичка, который только собирается в IT, что сейчас актуально?

С: Я выделяю три популярных направления: веб-разработку, разработку ПО и геймдев. Но самое популярное — всё-таки веб-разработка. Плюс, в неё проще попасть.

Л: Я бы тоже выделил геймдев. Думаю, сейчас если и не революция в IT, то что-то похожее. Появилось много новых фреймворков и библиотек. Теперь на обязательно владеть C++ на уровне кунг-фу. Можно создавать продукты на более приятных языках.

Следующий тренд — блокчейн и криптовалюты, где нужны Rust и Solidity. В вакансиях упоминаются и другие языки, но эти встречаются чаще всего. Плюс, здесь самые высокие зарплаты — около $10-17 тысяч. Сейчас пик этого, чуть позже всё спадёт.

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

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

Л: В веб-разработке есть frontend и backend. Frontend — это та, часть приложений, которая исполняется в браузере и с которой взаимодействует пользователь. По сути, это визуал, который мы видим. Backend — это то, что касается хранения данных, и то, что не видно пользователю. Сейчас тренд на разделение frontend и backend — границы этих направлений чётко проставляют, чтобы не было смешиваний.

Backend — это больше инженерная работа, где развитие идёт вглубь. Здесь всё консервативно, и ты больше изучаешь системы. Frontend про развитие вширь. Здесь больше фреймворков и подходов.

Чтобы выбрать, стоит попробовать и то, и другое. Посмотреть, какие есть языки и концепции, решить, что больше подходит, и это развивать.

М: Как бэкендер с какого языка ты советуешь начинать?

Л: Если говорим про веб, однозначно Python. Из плюсов — он лёгкий, поэтому ты быстро разбираешься в теме и начинаешь программировать. Из минусов — после Python сложно переходить на другие языки.

Для сравнения: если начинать с C++, два года будешь страдать. Зато потом сможешь легко осваивать любые языки с теми же концепциями.

Здесь надо решить, чего ты хочешь. Если быстро стартовать в IT, я рекомендую Python.

С: Во frontend самый популярный язык — JavaScript. Также есть много новых языков, которые умеют компилироваться в JavaScript, например, Kotlin или Dart. Но начинать советую именно с JS без всяких отстроек.

На backend, кстати, сейчас популярен Node JS. Крупных систем на нём не пишут, но какие-то сервера вполне. Из вариантов использования — когда у тебя много backend-частей микросервисов, а для frontend нужно сделать один запрос, и в него положить все данные. Ты ставишь перед огромным бэкендом свой маленький бэкендик и делаешь то, что нужно.

В 99% случаев для frontend нужен JavaScript. Если пока не определился, куда хочешь — во frontend или backend, советую написать небольшую программку и поработать с клиентской и серверной частью. Так быстрее поймёшь, что больше подходит.

Я пробовал и то, и другое. Но работать с клиентом понравилось больше, и я ушёл во frontend.

Л: Я одно время был fullstack и тоже писал на frontend. Что здесь классно: ты что-то делаешь и сразу видишь результат. В backend ты можешь месяц писать код и не видеть ничего, кроме циферок на экране. А тут 5 минут работы, и, глядишь, уже кнопочка заморгала.

Стандартный день разработчика

М: Леонид, Сэм, расскажите, как проходит ваш типовой рабочий день.

Л: Начнём с того, что я работаю в офисе, где у меня есть собственный таск-трекер — список задач, которые нужно выполнить. Я приезжаю и сажусь что-то делать. У нас небольшая команда из 4 человек, поэтому нет синков и обсуждений. Но время от времени я сообщаю тимлиду, чем занимаюсь. Он может сказать, что сейчас для бизнеса важнее, и скорректировать приоритетность задач. Потом я возвращаюсь к работе — чиню баги или делаю новую функциональность. Мы работаем спринтами и в конце недели отчитываемся перед бизнесом, что успели сделать и что планируем делать дальше. И вот так изо дня в день.

Л: У меня нет типового дня, но пробегусь по важному. Я могу просыпаться не по будильнику, потому что первый созвон в 13:00 или 13:15. Рабочий день начинается с того, что я проверяю чатики и почту, смотрю встречи в календаре и отслеживаю, как продвигается выполнение задач. У нас скрам, и есть регулярные ретро, где мы обсуждаем предыдущие спринты — что было хорошо, а что не очень. Полдня проходит в созвонах и общении. И ещё полдня я пишу код.

Зарплаты в IT

М: Поговорим про зарплаты. Предположим, я прошёл курс, научился что-то программировать и стал джуном. На какую зарплату я могу претендовать в начале карьеры и через условных 2-3 года, кода стану уверенным мидлом?

Л: Тяжело сказать, всё быстро меняется. Из-за ковида многие перешли на удалёнку, и границы сильно размылись. Если у тебя есть интернет и знание английского, то вилка будет не такая, как если бы ты искал работу только в России. Если говорить про российские компании, то пока ты не начал приносить прибыль компании, тебе могут платить 25-35 тысяч, чтобы ты просто не ушёл и не потерял мотивацию. Но, думаю, сейчас с курсом доллара эта сумма изменится. Если же у тебя хороший английский, можно зарабатывать больше.

Когда ты дорос до уровня среднего специалиста и уже начал приносить пользу компании, зарплаты сильно разнятся. Я бы сказал, что крепкий мидл может получать от 120 тысяч, а дальше всё зависит от амбиций. Год-два опыта — это уже хорошо.

М: А что с frontend?

С: Джуниор, мидл и сеньор — очень условные грейды, которые сильно отличаются в зависимости от компании. Даже по годам работы судить нельзя. Человек может писать код, разрабатывать архитектуру, делать ещё много всего лучше тех, кто уже 10 лет в сфере.

Что касается заработка, буду говорить про краснодарские расценки. Когда ты джун, ты много чего не знаешь, и тебя приходится обучать. На этом моменте в регионах тебе предложат до 40 тысяч. Дальше всё зависит от компании — мидл может зарабатывать 150 тысяч и больше. Ещё можно устроиться на удалёнку в московскую компанию и получать 200 тысяч сверху, даже если у тебя 3-4 года опыта. Тут роль играют не твои hard skills, а то как ты умеешь себя продать.

Сейчас рынок перегрет, IT развивается, и нужно много рук. Поэтому появляются сумасшедшие зарплаты, а работу найти легки. На старте 30-40 тысяч, но потом потолка нет.

Что нужно знать, чтобы зарабатывать от 100 000?

М: Чему нужно научиться, чтобы выйти не доход от 100 тысяч в месяц? Что вообще нужно уметь, чтобы много зарабатывать и развиваться в профессии?

С: Вопрос с подоплёкой. Во frontend для начала достаточно уметь верстать, знать HTML и CSS. Дальше нужен JavaScript, но на чистом JS уже не пишут, поэтому нужен один из популярных фреймворков, например, React или View. Как только ты понимаешь, что можешь более-менее решить задачу на одном из фреймворков, можно идти собеседоваться на джуна. Уже на собеседованиях ты получишь тот самый коммерческий опыт и поймёшь, как поднимать ценник.

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

Главное — не затягивать и верить в себя.

М: Что насчёт backend?

Л: Всё то же самое, не затягиваем. Трёх-четырёх месяцев хватит для обучения. Когда освоишь язык и напишешь пару небольших проектов, начинай ходить по собеседованиям. Возможно, сначала не получится. Ничего страшного в этом нет. Зато ты лучше поймёшь, как проходят собеседования и какие вопросы задают, и сможешь лучше подготовиться к следующей встрече с HR-ом. Ещё можно почитать материалы по типу «Какие вопросы задают junior-разработчику на Python?».

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

Ещё один плюс попадания в команду — там будут люди на голову выше тебя. И они будут тратить время, чтобы помочь тебе прокачаться и объяснить всё непонятное. С ними советую не спорить, а только учиться и перенимать опыт. Горящие глаза и желание узнавать новое всегда подкупают. Поэтому когда ты проявляешь заинтересованность и инициативу, в тебя хочется вкладываться.

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

1
8 комментариев