image

Привет Хабр!

В этой статье хочу рассказать о своем опыте обучения на fullstack-разработчика и поделиться лайфхаками для поиска работы в IT как в России, так и за рубежом.

Я middle-разработчик в компании SimpleOne – это ESM-платформа для автоматизации бизнес-процессов. Здесь будет начало моего пути, несколько советов для тех, кто только собирается войти в эту сферу, мои фейлы (куда без них) и полезные материалы, которые мне помогли выучится и получить работу. Да, этот материал не будет наполнен кодом и техническими элементами, но надеюсь, кому-то он будет полезен чувствовать себя более уверенно на своем пути в IT и поможет адекватно подготовиться к поиску работы.


Обучение. Вуз или курсы?


Мне кажется, сегодня выбор между вузом или курсами – это вечный спор, ответа на который у меня тоже нет.

Сначала я выбрал вуз. Хоть ЕГЭ по информатике, я сдал плохо, но на проходной балл в региональный топ вуз хватило. Спасибо, что хороший английский у меня уже был. Весь первый курс относился к учебе довольно несерьезно – обилие непрофильных предметов и яркая студенческая жизнь этому только способствовали.

Когда настала пора закрывать первую летнюю сессию, а я не понимал Pascal ABC от слова совсем, стало грустно и закрались мысли о том, что программирование вообще не мое. В то время (2019 год) в моей жизни было еще одно приоритетное направление – девушка, которая уехала в столицу. Я был сильно влюблен и почему-то тогда решил, что IT – это самый быстрый путь найти работу в Москве.

imageВ августе, перед началом нового учебного года, я решил, что буду самостоятельно изучать C++. Тогда много знакомых мне программ были написаны на нем, и я подумал, что стоит начать именно с него. Я не учел тот факт, что брать его первым языком обычно не рекомендуют.

Изучение C++ для меня стартовало с книги-самоучителя «C++ для начинающих» Герберта Шилдта. Благодаря ему я сходу понял переменные, массивы, статическую типизацию и причины ее использования. Дойдя до массивов с указателями на указатели, стало уже сложновато (как оказалось, меня тогда смутила настройка локального окружения). Поэтому я перешел к плану Б и стал искать курсы по разработке.

На одном из форумов нашел упоминание тогда еще малоизвестной онлайн-школы Хекслет (это не реклама, у всех мнение разное о подобных курсах) и решил попробовать пройти курсы. Изучал я там уже не C++, а JavaScript, HTML и CSS, мы разбирали массивы, объекты, сети, React/Redux, архитектуру фронтенда, тестирование и backend. К каждому уроку на курсах прилагалось упражнение, где надо было писать код руками. Среду для разработки и тестирования кода своих проектов я разворачивал в облаке, как раз на виртуалках Serverspace.

Спустя недолгое время у меня на Github скопилось целое «портфолио» из мини-модулей, в которых было решение простых задач. Мы создавали маленькие консольные программы или веб-приложения, что заметно добавляло потом баллов при собеседованиях. Это показывало рекрутерам, что я могу довести от начала до конца сравнительно объемную задачу.

Дипломным проектом в вузе и на курсах был самописный онлайн-мессенджер, типа Slack, на JS(React) и Node.js(Fastify), с применением Python надстройки в виде анализатора текста в каналах для оценки корпоративного климата.

Какой вывод могу сделать. И в вузе, и на курсах меня научили многому. Но вуз (напомню, региональный) в моем случае – это больше про soft skills, где ты учишься коммуницировать с людьми из своей сферы и налаживать связи, а курсы уже более про hard skills. Но это в моем случае, есть разные вузы и разные курсы.

Для быстрого погружения в разработку и «набивания руки» советую попробовать code battle – это игра для разработчиков, где вы соревнуетесь в написании кода. Также есть площадка с играми для программистов – CodingGame, где нужно решать разные задачи с кодом (создание ботов, оптимизация и т.д.). Здесь также есть формат соревнований.

image

Оставлю тут еще подборку книг, которые мне помогли:
  1. Руководство по разработке ПО, основные этапы разработки: «Мастер-класс. Совершенный код» от Стива Макконнелла.
  2. Чтобы понять системы программного синтаксиса, и как набора алгоритмов превращается в программный код, прочитайте «Структура и Интерпретация Компьютерных Программ» (Сассман Джеральд Джей, Абельсон Харольд).
  3. Все про алгоритмы с примерами и иллюстрациями: «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих» от Адитья Бхаргава.
  4. Если вы собираетесь заниматься автоматным программированием и созданием сложного ПО, то книга «Автоматное программирование» (Надежда Поликарпова, Анатолий Шалыто) может показаться вам любопытной.
  5. Как уже упоминал выше, с C++ мне помогла книга Герберта Шилта «C++ для начинающих».
  6. Еще, думаю, будет полезно изучить то, что касается операционных систем UNIX, и понять как с ними работать: «Unix и Linux: руководство системного администратор» (Эви Немет, Бэн Уэйли, Гарт Снайдер, Трент Хейн) и «Операционная система UNIX» (Ольга Стесик, Сергей Немнюгин, Андрей Робачевский).

Как я нашел первую работу?


Так как на курсы я пошел, чтобы найти работу, желательно в Москве, то спустя 2 недели после начала курсов я составил резюме, где постарался выжать максимум из имеющегося опыта и знаний, делая упор на «горящих глазах» и умении быстро адаптироваться.

Наличие файлов с кодом на Github вместе с персонально ориентированными сопроводительными письмами на откликах дало результат – я получил три приглашения на очные собеседования в Москву. Первые этапы собеседований я проходил вполне успешно – было много кода на JavaScript, иногда попадались и PHP с C#. За счет общего понимания происходящего и везения получилось впечатлить эйчаров.

Но со следующими этапами получилось не так успешно, так как примерно в этот же момент в моей любовной линии дела пошли не очень. Проявил себя слабо, и это вылилось в отказы. Хотя ошибки были очень примитивные и совершать их было совсем необязательно. Большинство вопросов сводилось к моему коду. Это были предложения провести небольшое код-ревью своих проектов и сказать, в каких местах можно их улучшить (вынести повторяющиеся конструкции в отдельную функцию, поправить именование переменных и т.д.).

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

Благодаря своему упорству в скором времени я устроился на свою первую работу в Волгограде. Суммарно я проработал там около года, попробовав и JavaScript, и C#. В основном я разрабатывал бизнес-решения на основе конструктора самописной платформы от нашей компании. Тогда я испытал все прелести правки багов на проде, горящих сроков и нездорового распределения ответственности между ролями внутри команды.

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

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

Как я искал работу за границей?


В начале 2022 года у меня была уже готова практическая часть моего диплома, и я начал возвращаться к вопросу поиска работы. Но, как и у всех, внезапно наступил «февраль». Понятное дело, большинство офферов, которые висели в стадии одобрения, внезапно потеряли свою актуальность, а ситуация на рынке труда сильно изменилась.

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

Думаю, про Ереван, особенностях жизни в нем и трудоустройства на Хабре описано уже все, что можно было. Например: плюсы и минусы жизни, подробный гайд по переезду и т.д. В моем же случае большой вес имели собеседования из Еревана, а не в него.

image

Там тоже знают английский неидеально


Скажу сразу, как и у множества программистов, имеющих локальный опыт разработки, моя оценка своих способностей на международной арене была необъективной. Было удивлением, что эйчары в иностранных компаниях, особенно не англоговорящих (Чехия, Польша, Германия) знали английский неидеально. И чаще всего мои навыки английского, который я оценивал как средние, были уместными там, где требовался С1 или Fluent English. Полагаю, это был своеобразный фильтр от ребят, которые приукрашивают все свои навыки в резюме в несколько раз, а на самом собеседовании кроме слов предоставить ничего не могут.

Разработчикам из СНГ зачастую не хватает уверенности. Даже имея хорошую техническую базу и опыт решения тяжелых задач, слабые soft skills закрывают двери.

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

Технически собеседования слабо отличались от российских: live coding, вопросы по каким-то малоизвестным инструментам языков и оценка поведения в различных рабочих ситуациях. Любимые вопросы:

  • Какая наиболее интересная рабочая ситуация случалась с вами на предыдущем месте?
  • Самое интересное задание?
  • Самый стрессовый момент?

В конце концов, в самом Ереване нашлась компания, которая занималась разработкой онлайн мессенджера и предлагала вполне приятную зарплату в $2000. Я даже успел подписать с ней оффер и познакомиться с коллективом. Однако в процессе юридического оформления выяснилось, что мое этническое происхождение все-таки волновало страну и оформиться как Россиянин я не мог.

Как я все-таки нашел работу


В мае 2022 года у меня был выбор – ехать в Грузию и пробовать себя там, уже без знания местного менталитета и языка, или же вернуться в Россию. Моя оптимистичная натура подсказала, что второй вариант на тот момент был самый подходящий и позволял, как минимум, привести в порядок свои документы.

Как ни странно, найти работу в России удалось после пары тройки собеседований. Какое-то время я думал пойти в Serverspace, но подходящих вакансий у них на тот момент не оказалось, поэтому они рекомендовали меня SimpleOne. Параллельно с защитой диплома я прошел собеседование к ним.

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

Вывод из всего этого: с девушкой из столицы мы разбежались, а вот войти в IT мне все-таки удалось.

Сколько времени у вас ушло, чтобы получить работу в IT? Поделитесь своим опытом для тех, кто только погружается в специальность.


image

Комментарии (8)


  1. Ded_Banzai
    27.01.2023 15:22
    +14

    Не пора ли выделять отдельный tractor.habr.com для историй о переезде за границу?


  1. Avsmirn0ov
    27.01.2023 16:13
    +4

    Мне кажется, или ровно же эта статья уже была тут месяц-два назад? Это репост её же или что?


    1. Firsto
      27.01.2023 19:56
      +1

      Эта статья была здесь неделю назад. Интересно, зачем убрали и снова опубликовали.)


  1. Tzimie
    28.01.2023 00:16
    +1

    Так а девушка то как?


    1. MyraJKee
      30.01.2023 09:27

      Дак расстались же


      1. Tzimie
        30.01.2023 09:57

        То есть в итоге все зря получилось?)


  1. kashtan404
    28.01.2023 08:51

    По моему опыту, это утверждение неверно:

    Разработчикам из СНГ зачастую не хватает уверенности.

    Оно было бы верно, если бы было записано так:

    Разработчикам из СНГ, которые собеседуются на релокацию зарубеж, зачастую не хватает уверенности.


  1. alexeystarchikov
    28.01.2023 12:39

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