Как я нашел работу программистом

Как найти свою первую работу программистом? От резюме до испытательного срока

Время на прочтение
9 мин

Количество просмотров 217K

image

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

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

Итак, как же новичку получить первую работу?

Название резюме

Оно должно как-то называться. Существуют два варианта.

  1. Допустим, вы программировали на разных языках. В школе наверняка писали на Pascal, а потом что-то делали на C++. Если вы постарше, то, возможно, знакомы с Delphi. Поэтому в названии резюме можно указать все языки, на которых вы писали. Авось какой-то заинтересует потенциального работодателя. Например, так: «Программист: delphi, python, php, html, java, c#, ruby, scala».
  2. Можно указать, что вы специализируетесь на чём-то одном, например на Python. Обычно, если в названии резюме перечислена куча языков, то понятно, что вы не умеете ничего. Всего коснулись поверхностно. В глазах работодателя вы будете человеком-оркестром, который пришёл на прослушивание в консерваторию. Не надо так делать. Зачёркиваем длинную простыню и оставляем просто «Программист на Python». Повышайте свою самооценку, не акцентируйте в резюме неуверенность в себе, связанную с нехваткой опыта.

Из этого следует правило: выберите один язык программирования и специализируйтесь на нём. В университете я писал на С++, потом понял, что связанные с ним вакансии меня не очень прельщают, поэтому надо двигаться в другом направлении. Я выбрал для себя C# и Java. Мне они оба очень понравились, и я долго не мог определиться, какой мне больше по душе: тут есть такая-то фича, здесь такая, казалось бы, одинаковые. Я купил две здоровенные толстые книжки — по C# Эндрю Троелсена и по Java Брюса Эккеля. На каждую я потратил по две недели и начал откликаться на вакансии по обоим языкам. Думал, куда раньше возьмут — в тот язык и буду углубляться. Сейчас я понимаю, что переложил ответственность за выбор языка с себя на мироздание, на судьбу, на работодателя.

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

Какой язык лучше всего указать в резюме? Языков много, но они очень часто друг друга взаимозаменяют. Не все из них живые. Основное правило — выбирайте популярные языки, не надо брать экзотику. Не нужно слушать, что какой-то Haskel очень крутой, классный, умеет делать всё и вся, а функциональные языки программирования такие волшебные… Каждый хвалит свой язык.

Выбор языка

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

Так что при выборе языка обращайте внимание:

  • на его популярность;
  • на решение задач, которые вам интересны;
  • на простоту освоения: на начальном этапе лучше выбрать попроще.

Сейчас по количеству вакансий наиболее востребованы следующие языки: Javascript, PHP, Java, C++, Python, C#, Ruby, Swift, Objective-C. Выбрав какой-то язык, скорее всего, вы на нём и остановитесь. Может быть, через два года разочаруетесь или решите перепрофилироваться. Но это будет немножко больно. С другой стороны, свой опыт вы сможете легко применить в другой сфере деятельности.

  • Если речь пойдёт про frontend — то есть разработку визуальной части сайтов, — то здесь всё просто, нужны три языка: HTML, CSS, JavaScript.
  • А вот для разработки серверной части вариантов много. Самый популярный язык — РНР. Мне на каждом докладе говорят, что про РНР плохо отзываются, какой-то он не такой. Многие высказывают гипотезы, что он умрёт. Но ничего подобного, половина сайтов написана на РНР, половина вакансий — на РНР, ВКонтакте — на РНР, как и многие другие крупнейшие проекты. Никуда язык не денется. Если в нём будут критические проблемы, то их просто исправят. Появился Ruby on Rails, классный движок — ну, ничего страшного, на РНР стали появляться фреймворки, в которые внедрили аналогичные фичи. Всё хорошо. Отдельно скажу, что Python многих прельщает простотой и универсальностью.
  • С точки зрения мобильной разработки есть всего два варианта. Если хотите писать под Android — это Java. Если под iOS — Swift или Objective-C. И то и другое — хорошие решения.
  • Разработка под desktop и серверы: Python, Javaб С++ или C#. Здесь есть простор для метаний. Python попроще, чем остальные. На Java можно писать под Android. На C# — углубляться в разработку игр и сайтов. C++ больше подходит для тех задач, где требуется высокая скорость работы. В остальном у них возможности совпадают, просто на Java сайты пишут реже.

Возникает резонный вопрос: если начинаешь с нуля, то имеет ли смысл изучать сразу новый язык? Например, в Apple перешли с Objectivе-C на Swift, потом появился Swift 2 и 3. Обычно я консервативен и считаю, что новое не всегда оправданно и действительно выстреливает. Появляется новый язык, по нему нет вакансий, но где гарантия, что они появятся потом? Может, на нём так и напишут с пяток проектов.

Что касается Objectivе-С и Swift, я давно присматриваю за этими языками, и буквально на днях количество вакансий на Swift сравнялось с Objective-C. Мое мнение, это очень серьезный показатель, что Swift будет только набирать обороты и со временем может вытеснить Objective-C.

Технологии

Итак, мы выбрали язык и указали его в резюме. Далее перечисляем технологии, которые мы знаем. Давайте снова разбираться, что круче. Допустим, вы программируете на PHP. Имеет ли смысл писать, что вы знаете С, С++, Pascal, C# и так далее? Не надо перечислять все технологии, которые напрямую не относятся к вашей компетенции. Надо назвать вакансию «программист: РНР». В таком случае работодателю неинтересно, что вы когда-то писали на С и Visual Basic. Весь этот длинный хвост можете не указывать.

Есть и другой вариант. Допустим, я программист на РНР, но знаю все эти технологии, потому что они относятся к веб-разработке: и РНР, и YII2, и HTML, разные фреймворки. Если будете искать вакансию веб-разработчика, то наверняка увидите здоровенную простыню дополнительных требований с кучей умных слов. И многие этого пугаются, особенно в веб-разработке, страшно, что надо столько знать… К этому надо стремиться: знать Webpack, работать с разными БД и так далее.

Многие для повышения авторитета сразу пишут, что я и это знаю, и это примерно знаю, но я новичок и готов получать пока 15—30 тысяч, и опыта работы у меня нет. Какое будет впечатление у работодателя? То же самое: человек-оркестр.

Есть и другая проблема. Допустим, работодатель поверит, что вы всё это знаете. Он же на собеседование придёт с этим списком, ткнёт в любую технологию и скажет: «Теперь мы говорим про React, что ты знаешь про него? А это что? А это? Ясно, React мы не знаем».

Вычёркиваем.

«Хорошо, поговорим про MySQL, напиши мне транзакцию, которая делает то-то и то-то».
«Ну, я в MySQL установил только среду разработки, два select-а сделал…»

MySQL тоже вычеркиваем. Всё остальное он даже смотреть не будет. Работодателю уже будет неинтересно, что вы полгода жарили РНР: он поймал вас на вранье. Так что зачеркиваем всё перечисленное.

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

Более того, даже не пытайтесь ознакомиться со всеми этими многочисленными технологиями. Если вы РНР-программист — так и напишите, что знаете РНР и немного HTML и CSS для верстки. Ещё знакомы с одним фреймворком — всё, работодателя это устроит. Он не будет вас гонять по YII, поскольку вы и не указали, что знаете его. Работодатель понимает, что вас можно гонять по РНР.

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

Образование

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

Когда я набирал в команду джуниоров по C#, мы опубликовали вакансию и в течение двух-трёх недель получили 50 откликов. У нас не было кадровика, поэтому мы пошли программерским путём: всем кандидатам выслали тестовое задание. Кто его сделал, проходил дальше. И мне как работодателю не были интересны сертификаты и диплом. Я даже на резюме не смотрел, пока человек не присылал мне решение тестового задания. Но для кадровика это может быть важно.

Портфолио

Очень важная вещь на этапе отбора. Если у вас есть портфолио, то работодатель-программист сможет понять, в состоянии ли вы решить задачу аналогичную той, которую вы уже решали.
Что можно написать в своём портфолио? Если вы хотите разрабатывать сайты, то просто придумайте себе задачку и решите её за необходимое время. Сделайте небольшой сайт и выложите его, лучше всего на Github. И напишите: я создал небольшой интернет-магазин, использовал такие-то технологии, вот код. Для работодателя это будет показателем, что вы ещё и про Git знаете. Он понимает: если я возьму этого новичка на работу, он мне за два дня сделает примерно то же самое, с чем сам разбирался месяц. И не надо будет ему платить за то, чтобы он выучил, что такое Bootstrap, познакомился со всякими нужными штуками. Он сам уже это изучил и теперь в состоянии решить задачу за пару дней. Поэтому не пренебрегайте портфолио. Вам оно очень сильно поможет.

Опыт работы

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

Отклики на вакансии

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

Расскажу о том, как я устроился в компанию GeekBrains. В какой-то момент мне надоело программировать. Это классное занятие, я пять лет ему отдал, но меня не очень удовлетворяли цели компании, в которой я работал. Я подумал, что мне было бы интересно открыть свою школу и учить людей. Дать им возможность получить новую специальность, новую профессию. Потом я увидел вакансию и начал преподавать в GeekBrains, совмещая это с основной работой. Затем я просто попросился к ним на работу.

Так выглядел мой разговор с генеральным директором GeekBrains.

Гендир: «А что ты умеешь делать? Ты на C# программируешь, а мне нужен Ruby».
Я: «Я не хочу программировать, я умею то, умею сё».

Через две недели я вышел на работу.

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

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

Не парьтесь, ребята. Отправьте 100, 200, 300 откликов, сколько найдёте. И законом больших чисел вы сообщите мирозданию, что реально хотите работу. Вас пригласят на пять собеседований, на одном из них вы устроитесь на работу — всё. Если вам посылают тестовое задание, не пренебрегайте им. По моему опыту, 90 % кандидатов отваливаются, когда получают тестовое задание.

Собеседование

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

Испытательный срок

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

Если вас взяли на испытательный срок, то не надо всех заваливать вопросами, иначе подумают, что вы дурак. Но не надо кидаться и в другую крайность, когда начинающему разработчику дают задачку, и он уходит в себя на три дня, потому что сам пытается во всём разобраться. А работодатель думает: неужели вам мало трёх дней на такую простую вещь? Так что не стесняйтесь задавать вопросы. Если вы больше часа занимаетесь какой-то задачкой и у вас не получается, подойдите к старшему, спросите, он вам поможет, всё будет хорошо.

Заключение

Друзья, и напоследок напутствие: не бойтесь экспериментировать. Ищите себя, находите то, чем вам нравится заниматься. Нет ничего хуже, чем десять лет просидеть на нелюбимой работе из страха, что не сможете устроиться на другую. Если вам нравится программировать — начинайте обучаться этому ремеслу, совмещайте учёбу с основной работой. Если хотите — приходите к нам в GeekBrains, и мы вам обязательно в этом поможем. Удачи вам, и до новых встреч!

Иван Жилин

звонил в Калифорнию

Профиль автора

Сергей несколько лет провел на госслужбе и в консалтинге, но решил стать программистом.

До 27 лет он не планировал идти в ИТ. После школы учился на госслужащего и собирался сделать карьеру чиновника. Три года Сергей проработал в Москве, в Федеральной антимонопольной службе, занимаясь рассмотрением жалоб на госзакупки. Затем на год перешел в администрацию подмосковного Наро-Фоминска, где занимался подготовкой документов для муниципального заказа.

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

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

У входа на завод «Теслы» во Фримонте

Чем я занимался до ИТ

Поступая в университет, не всегда понимаешь, какой будет твоя работа. Представления могут быть одними, а реальность — совершенно другой.

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

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

Работа в ФАС — это серьезная база: за два года я понял, как на практике применяются законы и нормативные акты. Профессионально вырос. Но все-таки это была рутина, ежедневная монотонная работа с документами. Никакого разнообразия, это угнетало.

В 2014 году я перешел из контролирующего в исполнительный орган власти — в администрацию Наро-Фоминского района Подмосковья. И снова госзаказ, только теперь уже не рассмотрение жалоб, а подготовка документов для закупок. Мы делали важное: ремонтировали школы, строили дороги и благоустраивали улицы. Но удовлетворения это все равно не приносило, и я решил уйти с госслужбы.

В 2015 году я открыл свое ООО и занялся консалтингом: читал лекции о закупках, писал статьи в профильные журналы о том, как понимать тот или иной пункт закона, готовил обзоры решений ФАС для системы «Консультант-плюс», помогал участникам аукционов и заказчикам с подготовкой документации. Так продолжалось два года.

За работой в консалтинге. Сентябрь 2015 года

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

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

За все пять лет на госслужбе моя зарплата составляла от 7000 до 70 000 Р. На консалтинговых услугах я зарабатывал в среднем 100 000 Р в месяц, но бывало всякое: мог не получать вообще ничего, а в один месяц — 400 000 Р.

Смена профессии

После увольнения из администрации Пермского края в моей жизни начался тяжелый период. Не в финансовом плане — я уже успел кое-что накопить, и это позволило мне уволиться в никуда. Денег было достаточно, чтобы прожить 10 лет в квартире у родственников, тратя по 50 тысяч рублей ежемесячно, — это наши обычные расходы. Да и консалтинг продолжал приносить около 30 тысяч рублей в месяц. Но произошла переоценка ценностей: у меня появилось желание работать, не имея начальника и строгого распорядка дня.

После месяца депрессии и ничегонеделания я решил заняться инвестированием на фондовом рынке. Начал читать книги и торговать, используя свои накопления. Особенно интересными, на мой взгляд, были книги «Биржевой трейдинг: системный подход» Александра Кургузкина, «Игра на понижение» Льюиса Майкла и «Воспоминания биржевого спекулянта» — биография Джесси Ливермора.

Я даже задумался получить сертификат CFA — международный сертификат финансового аналитика — и уже начал изучать материалы. Но, несмотря на все это, результаты были удручающими: за полгода активной торговли я оказался в минусе примерно на 20%.

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

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

От моего первого сайта сейчас остался только бумажный макет

На вопрос, какой язык программирования выбрать, я очень быстро нашел ответ в интернете — С++. Он один из наиболее востребованных и в то же время сложных — если освоить его, остальные точно будут по зубам. Начав с книги Бьерна Страуструпа «Язык программирования С++», я потратил сутки, пытаясь вывести на экран фразу Hello, World. Но ничего не вышло! Это меня так демотивировало, что я отбросил идею научиться кодить.

Прошел месяц, и я решил посмотреть, может, есть языки попроще. Поглядел на «Ютубе» видео о том, что можно запрограммировать новичку, и так узнал о существовании Python. Не прошло и минуты, как я начал кодить — и на моем экране появилось Hello, World.

То, что я не смог сделать за сутки на С++, на Python мне далось за мгновение!

Причем буквально: чтобы вывести на экран нужную фразу, оказалось достаточно открыть приложение Terminal, напечатать python, нажать Enter, написать print(‘Hello World!’) и еще раз нажать Enter.

Кот ругается, когда находит баги в моем коде

Я прочитал «Грокаем алгоритмы» — базовую книгу для начинающих программистов. А позже узнал, что у каждого языка свои сферы применения. Например, C++ нужен для написания драйверов, операционных систем и другого низкоуровневого ПО для оборудования и техники, что меня не очень привлекало. Тогда как Python позволяет делать сайты, анализировать данные, разрабатывать торговых роботов. И я понял: Python стоит попробовать, он подходит для моих целей.

Все оборудование, чтобы начать кодить, у меня было еще со времен, когда я вел свой бизнес. Макбук-про за 70 000 Р и Аймак за 115 990 Р. На Макбуке я работаю и до сих пор. Программное обеспечение бесплатное.

Я поставил перед собой две практические задачи: написать торгового бота и научиться парсить информацию. Парсер — это программа, собирающая данные с веб-ресурсов и представляющая их в требуемом формате. Для этого я взял книгу Марка Лутца «Изучаем Python» и начал по ней изучать, как писать код. Честно сказать, книгу я не дочитал, потому что параллельно стал кодить — решать примеры на сайте с задачами проекта Эйлера — и практика оказалась намного интереснее теории.

Примеры задач. Источник: проект Эйлера

Сначала задачи были элементарными, затем становились все сложнее и сложнее, над некоторыми я мучился целыми днями. По совету супруги пошел на курсы Learn Python. Для меня было важно, чтобы занятия были очными: когда ты за них заплатил, а они стоили 40 тысяч рублей за два месяца, потратил время на дорогу, просидел на лекции, вживую пообщался с преподавателем — ценишь этот опыт больше, чем если просто посмотрел видео в интернете.

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

В нашей группе было пять человек. Ее куратором стал разработчик из X5 Retail Group. На первом занятии, которое длилось шесть часов, он рассказывал об основах Python, и 80% из рассказанного я уже знал.

На курсах мне сразу дали важное понимание: программирование заключается не только в овладении Python, а в освоении целой среды. Есть технологии, которые ты должен уметь использовать, чтобы чувствовать себя уверенно в программировании. Например, командная строка, Git, SQL. С одним только Python в профессию не войдешь. Я очень удивился, когда преподаватель начал говорить, что сейчас мы зарегистрируемся на сайте GitHub, будем изучать Git, потом «я вам чуть-чуть про SQL расскажу». Я думал: «Постойте, у нас же курсы по Python! Какой Git?» А потом решил: раз нужно, значит, нужно.

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

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

В треке «Чат-боты» разбирали, как создать бот для «Телеграма», как научить его запоминать пользовательские данные, как добавить в него эмодзи и так далее. В треке веб-разработки рассказывали об основах HTML, учили работать с базами данных и парсить информацию.

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

Если при изучении треков мне было что-то непонятно, я задавал вопросы в телеграм-чате. Отвечали там как кураторы групп, так и основатели курсов.

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

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

Термины

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

Парсер — программа, которая собирает данные с веб-ресурсов и систематизирует их заданным образом. Процесс сбора информации называется парсингом.

SQL (от англ. structured query language — язык структурированных запросов) — язык запросов, с помощью которого можно управлять данными в реляционной базе.

Git — система, которая позволяет разработчикам отслеживать изменения в истории и версиях файла в проекте.

Библиотека — сборник подпрограмм или объектов, инструмент для решения задач разработчика.

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

Списковое включение (в переводе с английского list comprehension) — это способ компактного описания операций обработки списков.

Первая работа в ИТ 

Мне позвонили из компании OTC — это торговая площадка, публикующая информацию как о государственных закупках, так и о закупках частных компаний. Сказали, что их заинтересовало мое резюме и они хотят пригласить меня на собеседование. Я очень удивился. Разумеется, пришел.

Оказалось, что они откликнулись на мое старое резюме — специалиста по госзакупкам. Говорят: «У нас есть вакансия — нужно ездить по регионам, читать лекции о госзаказе». Я посмеялся: «О нет, извините, может быть, еще месяц назад я бы и согласился, но теперь я программист». Рекрутер пообещал направить мое резюме в другой департамент. И действительно, через некоторое время меня позвали на собеседование на позицию Python-разработчика.

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

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

Сейчас я могу сказать, что вопросы были элементарные, например: «Какие виды сортировки ты знаешь?», «Что такое list comprehension?», «Как ты получишь из SQL-базы данных все записи вот такой-то таблицы?» Я едва смог ответить на половину. Вопросы, на которые я не знал ответа, записывал в блокнот, принесенный на собеседование, и говорил что-то вроде: «Извини, за пару месяцев я научился очень многому, но узнать про это я, видимо, еще не успел. Сегодня же эту тему изучу и завтра уже смогу подробно ответить на твой вопрос».

Оффер мне прислали через неделю после собеседования.

По сути, это невероятное стечение обстоятельств: я получил работу программистом в России, потому что кто-то открыл мое старое резюме специалиста по госзакупкам. Кажется, такого не может быть.

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

Работа нравилась, но в первый месяц было очень тяжело. У меня ничего не получалось. Например, парсер, который кто-то написал до меня, сломался и перестал собирать информацию — может быть, какой-то сайт сменил дизайн и наш код уже не может определить, где находятся нужные ему данные. Или активность нашего парсера кто-то счел подозрительной и начал его банить. Как сделать так, чтобы он работал? Я ведь ничего этого не знал.

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

В OTC мне пришлось осваивать многие технологии: JavaScript, SQL, Docker. Я научился использовать различные библиотеки типа Scrapy, Pandas, Selenium, Puppeteer. Существенно расширил свои компетенции.

Работа сама меня учила. Например, потребовалось спарсить сайт, который имел серьезную защиту и не поддавался парсингу ни одним из известных мне методов с использованием Python. Тогда я узнал, что можно использовать браузер Puppeteer, но придется писать код на JavaScript. И мне пришлось начать изучать этот язык, чтобы написать конкретный парсер. Впрочем, была и другая мотивация: JavaScript — самый популярный язык программирования, его код присутствует почти в каждом современном сайте. А я, сталкиваясь с ним, не мог понять этот код, было обидно.

Я записался на бесплатные трехмесячные курсы фронтенд-разработчика от «Яндекса» на «Курсере» — фронтенд-разработчики часто применяют JavaScript, — но не доучился. В целом курсы были интересными, но мне не понравилось, как подносили информацию: подход был не мотивирующим, как в школе. Примерно через месяц набрал достаточное количество навыков и решил перейти к практике. Парсер у меня получился!

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

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

В феврале 2020 года, когда мой стаж программиста составлял шесть месяцев, у меня, к сожалению, возникла необходимость уехать из России. И мы с супругой отправились в США — это была единственная страна, где у нас была открыта виза.

Термины

Библиотека — сборник подпрограмм или объектов, инструмент для решения задач разработчика.

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

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

Списковое включение (в переводе с английского list comprehension) — это способ компактного описания операций обработки списков.

Дорога в «Теслу»

Мы с женой решили выбрать для жизни Бейкерсфилд — небольшой, тихий и относительно недорогой город в Калифорнии. Хотя мы претендуем на политическое убежище, уезжали из России все-таки не в панике: например, успели оставить моей маме нашу машину, Фольксваген Поло, с доверенностью на продажу. Она продала авто за 400 тысяч рублей — деньги перечислила нам, и это нас финансово поддержало.

Кроме того, мне удалось договориться с OTC об удаленной работе: еще год я получал российскую зарплату — совершенно небольшую для Штатов. Сначала она составляла 1100 $, потом из-за снижения курса рубля стала порядка 900 $, но все-таки помогала держаться на плаву.

Вид на мост «Золотые ворота»

За первые два месяца в США мы потратили 26 000 $ (1 705 600 Р по курсу 2020 года):

  1. 12 000 $ (787 200 Р) из них ушли на авто — мы купили Форд Фьюжн. В Америке не очень хорошо с общественным транспортом, и автомобиль здесь — не роскошь, а реальная необходимость.
  2. Аренда однокомнатной квартиры в многоквартирном доме в Бейкерсфилде, городке в полутора часах езды от Лос-Анджелеса, обошлась в 7595 $ (498 232 Р) за шесть месяцев — то есть 1085 $ (71 176 Р), в месяц. Поскольку к тому моменту y нас не было ни кредитной истории, ни номера социального страхования, SSN, нам пришлось оплатить съем жилья на полгода вперед. Это было условие компании, сдающей апартаменты.
  3. На компьютер и другие товары, связанные с производственной необходимостью, потратили 3000 $ (196 800 Р).
  4. На оплату всевозможных счетов — за бензин, отопление и других — уходило 190 $ (12 464 Р) в месяц.
  5. На еду, включая кафе, — 286 $ (18 761 Р) в месяц.
  6. Остальные деньги, около 2500 $ (164 000 Р), ушли на обустройство апартаментов, поскольку их сдавали пустыми, и на ситуативные расходы.

Должен сказать, что мои траты не совсем репрезентативны. Все-таки большинство программистов, приезжающих в Калифорнию, не селятся в маленьких городах за 180 километров от ближайшего мегаполиса. И, соответственно, расходы на съем жилья у них куда выше — примерно 3000—5000 $ в месяц.

Так в марте выглядит улица, на которой я живу в Бейкерсфилде

Как бы то ни было, мы экономили, я работал на российскую компанию, пытался подрабатывать парсингом как фрилансер, собирая данные для магазина искусственных бриллиантов и для предпринимателя, занимавшегося маркетингом. За несколько дней работы получил 150 $.

Несмотря на это, наши сбережения постепенно таяли. Через полгода после въезда в США мы подготовили и подали документы на соискание политического убежища, а еще через полгода я получил разрешение на работу. К тому моменту денег у нас оставалось на пять-шесть месяцев.

Нужно было искать новую работу.

Мне очень хотелось стать программистом в Америке, но я был готов и к тому, чтобы пойти в такси. Насколько знаю, там можно зарабатывать достаточно, чтобы закрывать базовые потребности: около 3000 $ в месяц — вполне реально. Жена еще шутила: «В „Убер“ тебя в любом случае возьмут — не разработчиком, так водителем». И я действительно подавал резюме программиста в эту компанию — и даже получил приглашение на собеседование. Но в итоге не прошел дальше третьего кодинг-интервью.

Этапы собеседования на программиста в США

По опыту Сергея Галича, проходившего интервью в десятке американских компаниях, включая «Амазон», «Убер» и «Теслу», а также по опыту других программистов:

  1. Беседа с рекрутером. Созвон продолжительностью около получаса, в ходе которого рекрутер рассказывает о компании и задает стандартные поведенческие — behavioral — вопросы: например, об опыте работы, реализованных проектах, о том, что соискателю нравится и не нравится делать, о его слабостях, о том, что соискатель считает своим достижением.
  2. Решение задач. Компания дает соискателю задачи, связанные с программированием, и просит решить их онлайн. Соискатель пишет код под контролем сотрудника. Обычно проводят от двух до четырех таких испытаний.
  3. System design — этап собеседования, в ходе которого нужно спроектировать в общих чертах архитектуру того или иного приложения либо сайта, например аналог «Твиттера».
  4. Коллективное интервью — общение с членами команды, в которой предстоит работать. Члены команды в ходе интервью могут предложить решить ту или иную задачу, могут интересоваться компетенциями. Их главная задача — убедиться, что вы сможете комфортно и эффективно взаимодействовать.

Есть большая разница между наймом сотрудников в США и России. В России принято красочно писать в резюме о своих достижениях, а с начальником можно сойтись на основании взаимного увлечения рыбалкой. В Штатах же вся процедура приема на работу скорее напоминает ЕГЭ. Есть определенный набор вопросов, определенный набор задач и «хорошие» либо «плохие» ответы на них.

Собеседования в США очень предсказуемые. Подготовиться к ним можно, изучив материалы на teamblind.com — это сайт анонимных отзывов сотрудников о компаниях и glassdoor.com — здесь можно посмотреть вакансии и вилки зарплат. Там публикуется много информации о компаниях, включая даже вопросы, которые могут быть заданы на собеседовании.

Резюме, которое я отправлял в американские компании

Тестовые задачи. Главное, что составляет 99% успеха при прохождении интервью в США для начинающих программистов, — это умение уверенно решать задачи на LeetCode.

Это большой репозиторий с задачами, которые дают на технических собеседованиях в американских компаниях. Там же опубликованы их решения. Я решал эти задачи два месяца в ежедневном режиме, в среднем по паре часов в день, а потом смотрел, как это делали другие. Всего решил 270 задач: 170 простого уровня, 90 — среднего и 10 — сложного. Это очень хорошо систематизирует информацию и знания в голове, а кроме того, наверное, все задания, которые дают на собеседованиях, есть на LeetCode.

Собеседования. Эти советы я подсмотрел в интернете — на Glassdoor и Teamblind. И они действительно мне помогли.

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

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

Если спрашивают о слабостях — это часто задаваемый вопрос, — ни в коем случае не надо уходить от ответа, говоря, что вы слишком много времени уделяете работе и не успеваете что-то делать для себя, что вы трудоголик. Один из приемлемых вариантов ответа таков: «Я слишком много внимания уделяю деталям, иногда трачу на них много времени». Это ответ о манере работы и в то же время — о слабости. Я сам так отвечал на собеседовании в «Теслу».

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

Рекрутерам важно, чтобы рассказ соответствовал концепции STAR: situation — ситуация, task — задача, action — действие, result — результат. Моя ситуация — не работает парсер, моя задача — починить парсер, мое действие — Puppeteer плюс JavaScript, мой результат — парсер заработал.

Когда я искал работу в США, откликнулся более чем на тысячу вакансий. В результате получил шанс пройти интервью в десятке различных компаний. Из известных, кроме «Убера», был еще «Амазон». Там я тоже остановился на третьем кодинг-интервью.

Моим приоритетом была «Тесла». Я с детства увлекаюсь автомобилями, и для меня было два типа работодателей: «Тесла» и все остальные. И за рекрутеров своей нынешней компании я взялся очень основательно.

Собеседование, оффер, работа

Я нашел в «Линкедине» все аккаунты рекрутеров из «Теслы» и начал писать им в личные сообщения. Просил рассмотреть мое резюме. Кто-то отвечал, кто-то — нет, но на собеседование меня не приглашали.

Тогда я написал за полчаса парсер и собрал с его помощью имейлы всех рекрутеров из «Теслы» c «Линкедина» и сайта Crunchbase — это база данных о компаниях. И начал рассылку. Написал первой трети человек из списка — трем десяткам. И о чудо! Получил ответ от одного из рекрутеров: она сказала, что в компании есть вакансия с подходящим мне стеком технологий. И пригласила на интервью.

В Америке очень важно быть готовым к отказам и молчанию рекрутеров. И важно понимать: если тебя не приглашает на собеседование один, это не значит, что не пригласит другой. Если бы мне никто не ответил после имейл-рассылки, я бы начал им звонить, а если бы не получил окончательного ответа и по телефону — пошел бы в «Теслу» ногами, положил свое резюме на стол и сказал: «Рассмотрите».

Парковка у офиса «Теслы»

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

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

На втором этапе собеседования дали домашнее задание — написать программу для анализа реальных данных компании. Я понимал, что нельзя упускать шанс попасть в «Теслу», поэтому постарался сделать работу идеально. Специально ради такого случая даже впервые написал тесты: решил задачу другим, менее эффективным способом и проверил, идентичные ли результаты у обоих методов. А недавно коллега рассказал, что, увидев тогда мой код, они с начальником шутили: «Этого парня можем больше не собеседовать». Решение нанять меня они приняли, именно посмотрев мое домашнее задание.

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

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

На финальном этапе я нашел своего нынешнего шефа. Не добавлял его в друзья и вообще никак с ним не контактировал, но нашел членов команды и начал им писать: «У меня скоро собеседование. Очень хочу с вами работать. Как впечатлить начальника?» Никто, конечно, не дал конкретных ответов на эти вопросы, но людей это расположило ко мне. И когда мы созванивались для интервью, со мной общались уже не совсем как с человеком с улицы. Говорили: «О! Ты мне писал! Ну как ты?»

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

В итоге мне предложили оффер. Разумеется, я согласился, не раздумывая и не торгуясь ни по каким условиям договора. Мне предложили среднюю для начинающего программиста зарплату, которая в десять раз больше, чем была у меня в России, и в два с половиной раза больше средней зарплаты по США.

Уже год как я Python-разработчик в экономическом подразделении «Теслы». До 1 июня, когда Илон Маск запретил удаленку для сотрудников, работал из дома — за год приезжал в офис лишь несколько раз.

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

До недавнего времени я работал на удаленке. Фото: Кремниевая долина, США. Февраль 2022 года

Я не могу называть свою точную зарплату, но, по данным сайта levels.fyi, для моей позиции в «Тесле» она составляет 161 615 $⁣ (8 541 745 Р) в год. При этом нужно понимать, что эта сумма — до вычета налогов, а они съедают здесь примерно 30%. Кроме того, приблизительно пятую часть дохода выдают не долларами, а акциями. И чем старше должность в компании, тем большую часть зарплаты выдают именно в акциях. Дальше ты можешь их продать, а можешь хранить — на твое усмотрение.

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

Коротко о том, как я вошел в ИТ

  1. Для старта в профессии я читал «Грокаем алгоритмы» Адитья Бхаргавы и «Изучаем Python» Марка Лутца, смотрел канал «Хауди Хо» на «Ютубе». Но больше всего навыков дают курсы, решение задач на LeetCode и, конечно, рабочая практика.
  2. Я учился программированию на двух курсах: Learn Python и на курсах фронтенд-разработки от «Яндекса» и МФТИ на «Курсере». Learn Python дали мне большинство стартовых навыков. Многие я применяю и сейчас. На курсах хороший преподавательский состав и программа обучения. А чтобы получить сертификат об окончании, нужно защитить свой проект. Единственный минус в том, что они платные: 40 000 Р за два месяца.
  3. Фронтенд-разработка от «Яндекса» и МФТИ — это бесплатные онлайн-курсы продолжительностью два месяца. Я пришел на них, чтобы решить конкретную задачу — написать парсер на незнакомом мне в тот момент языке JavaScript. Отучился около месяца, получил нужные для решения своей задачи навыки и прекратил обучение. На обучение программированию потратил 40 000 Р — на двухмесячных курсах Learn Python. Курсы фронтенд-разработчика от «Яндекса» на «Курсере» были бесплатными.
  4. Английский во время курсов я не подтягивал, хотя он у меня был всего лишь на школьном уровне — Intermediate. Начать путь в профессии с такими знаниями реально. Можно даже вовсе не знать языка и пользоваться онлайн-переводчиками. Но чтобы развиваться и заниматься действительно серьезной работой, английский необходим на уровне, достаточном для чтения документации. Потому что вся документация — имею в виду не бумаги от заказчика, а справочники о том, как пользоваться языком программирования и его различными библиотеками, — на английском.
  5. Приглашение на первое собеседование я получил спустя два месяца после того, как начал учиться кодить, имея базовые навыки использования Git, Bash, Python и его библиотеки Pandas, а также Jupyter Notebook. Чтобы стать программистом с нуля, нужно быть готовым тратить на это много времени, а лучше все свое время. Как говорится, eat, sleep, code, repeat. А еще я понял, что не нужно бояться ошибаться. Баг — это основной двигатель развития в программировании. Большую часть программистских будней занимает не разработка нового кода, а исправление и доработка старого.
  6. Собеседования на программиста в США стандартизированные. К ним можно подготовиться, изучая материалы teamblind.com и glassdoor.com. Там публикуется много информации о компаниях, включая даже вопросы, которые могут быть заданы на собеседовании.
  7. Сейчас я периодически получаю сообщения от программистов из России: они просят помочь им устроиться в «Теслу». Хочу сразу честно сказать: устроиться в «Теслу», находясь в России, невозможно. По тому, что я вижу, для американских эйчаров очень важно, чтобы человек уже находился в Штатах. Практика подсказывает: шанс устроиться есть, если сначала переехать в США — и уже тут искать работу.

Всю жизнь я постоянно задавался типичными философскими вопросами «Что я хочу от жизни?» и «Кем я хочу работать?». Как и многие молодые ребята в России, я поступил на свою специальность в университете не по взаимной любви. Изначально я хотел быть историком, но, к счастью или к сожалению, мне не хватило десяти баллов до бюджетного места на истфаке, поэтому я пошел на бюджет на социальную работу.

Тем не менее, время, проведённое в университете, было основополагающим. Тогда я узнал, что есть программа обмена с Германией, с нуля выучил язык, прошёл отбор и провёл год в городе Эссен, где работал социальным работником, учился в местном университете и много путешествовал. По возвращении у меня была глубокая депрессия, так как я не понимал, что делать дальше. Это было очень яркое и захватывающее время, а после него наступил экзистенциальный кризис. Социальная работа в Германии уважается и хорошо оплачивается. Социальная работа в России… Лучше не будем об этом :) Тем не менее я решил поработать социальным работником и в России, но это, мягко говоря, не шло ни в какое сравнение с тем, что было в Европе.

Я получил диплом, на дворе был 2020 год, разгар пандемии и тотальное непонимание, что делать дальше. Мой друг тогда устроился в компьютерный клуб админом и позвал меня с собой. Я подумал: «А почему бы и нет?». В этом даже была какая-то романтика – ведь все в детстве ходили в компьютерные клубы и играли в CS и Варкрафт? :) В каком-то смысле я воплотил подростковую мечту. Но, как это всегда и происходит, детские мечты разбиваются о серые будни реальной жизни. Неофициальная работа с графиком 2/2 и зарплатой 18000 рублей – это не то, о чём стоит мечтать.

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

По сути, такое исследование нужно было проводить ещё перед сдачей ЕГЭ, но многие ли из нас в 18 лет обладают достаточным здравомыслием, чтобы чётко и осознанно принимать решения, влияющие на всю жизнь? В Европе молодые люди заканчивают школу в 21 год и обычно берут год на то, чтобы посмотреть мир и понять, чем хотят заниматься дальше. Думаю, такой подход помогает лучше понять как себя, так и окружающий мир: вход во взрослую жизнь становится более плавным и гармоничным.

Но вернёмся к исследованию. Одним из опрашиваемых был Марал из Казахстана – с ним я познакомился во Флоренции. Он упоминал, что работает программистом и часто ездит в отпуск за границу. Когда я с ним списался, он рассказал про свой путь фронтенд-разработчика, и я наметил план из конкретных шагов, по которому можно достичь такого же результата. По итогам своего исследования я решил выбрать именно программирование: оно способно было дать ту степень свободы и такие возможности, которые мне хотелось.

Многие задаются вопросом: «А как можно выучиться на программиста?» На мой взгляд, адекватных пути только три. Первый – получить высшее образование. Второй – устроиться на платные курсы от именитых компаний. Третий – учиться самостоятельно. Вариант с высшим образованием я отбросил сразу: у меня уже был бакалавриат, мне не хотелось тратить ещё несколько лет на учебу, которая не совсем соответствует современным трендам и используемым технологиям. Дорогие платные курсы я банально не мог себе позволить. У меня оставался только один путь – самообразование.

Через какое-то время я остался без подработки в компьютерном клубе. К сожалению, я успел изучить только HTML и CSS, поэтому стал искать варианты, чтобы иметь возможность дальше учиться программированию и зарабатывать.

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

Затем я перешёл на другую работу, где искал исключительно программистов. Это оказалось познавательно и полезно – я одновременно смотрел на процесс и с точки зрения нанимающей стороны, и с точки зрения того, кто хочет устроиться на работу. Рекрутинг серьёзно прокачал мои софт скиллы и дал представление о рынке IT.

В августе 2021 года в Нижнем Новгороде проходила офлайн-конференция GP Days, которую организовывали Globus и Mish, и я решил её посетить. Это был невероятный опыт! Спикеры рассказывали о трендах и крутых технологиях в IT, тем самым мотивируя меня задаваться новыми вопросами и погружаться в тематику, вокруг было много людей, которым всё это тоже было интересно! Подобные мероприятия дают фантастический заряд и вдохновение, заставляют двигаться вперед. На конференции я познакомился с Глебом Михеевым, CTO Skillbox, который поддержал меня в моём начинании и попросил написать, как только я буду готов :)

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

Переломный момент произошел в феврале 2022 года: тот ужас, что происходил вокруг, захватил меня с головой. Я очень сильно переживал, постоянно находился в состоянии неопределённости. Казалось, что мир рушится: в чём смысл стараться делать хоть что-то? Но именно тогда я твердо решил во что бы то ни стало выучиться и стать программистом, как и хотел. На фоне происходящего кошмара я с головой ушёл в курсы программирования, параллельно делал проекты. На тот момент Виталя уже работал фронтенд-разработчиком и был для меня ментором – мы вместе писали проекты и изучали технологии.

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

Вот моя личная статистика за тот период: 720 откликов, 300+ отказов, 11 тестовых. Из 11 тестовых 6 были на уровень middle и на их выполнение я бы потратил неделю, что не имело смысла. Из оставшихся 5 я отобрал 2 лучших, сделал их и прошел 2 финальных собеседования. Но, к сожалению, по обоим получил отказ – решили взять ребят с коммерческим опытом.

После этих отказов я решил поинтересоваться у всех знакомых, не нужен ли им в команду перспективный джун. Написал в том числе и Глебу Михееву. Он дал мне контакты Лёши Авдеева, CTO Mish, который тоже был на конференции GP Days в 2021 году. По счастливой случайности в компанию как раз нужен был Junior фронтенд-разработчик :) Мы провели собеседование, пообщались, и я получил долгожданный оффер!

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

Резюмируя весь свой путь, я хочу сделать выводы, основанные на моём опыте, которые могут быть полезны читателю:

  • Если вы только начинаете искать себя, обратите особое внимание на то, что любая работа состоит из творческой части и рутинной. Насколько вы готовы к специфичной рутине выбранной профессии?
  • Постарайтесь найти ментора, который поможет на вашем пути. Ментор многократно ускоряет ваш рост, видит ваши слабые места, знает, на что именно стоит делать упор в обучении, контролирует прогресс.
  • Обучение должно быть систематическим и ежедневным. Минимум два часа в день – крайне желательно. «Догоняться» в какой-то из дней за шесть часов подряд – неэффективно.
  • Чтобы научиться программировать, нужно ПРОГРАММИРОВАТЬ! Просто повторять код за кем-то недостаточно. Придумывайте проекты и реализуйте их, выкладывайте результат на гитхаб.

#статьи

  • 22 сен 2021

  • 0

Бывший фотограф из Калининграда рассказал, как перешёл во фронтенд, почему GitHub важнее сайта-портфолио, а в резюме лучше не писать слово «junior».

OlyaSnow для Skillbox Media

Редакция «Код» Skillbox Media

Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.

об эксперте

Живёт в Калининграде, в 37 лет бросил фотографию и освоил веб-вёрстку, JavaScript, Vue.js и React. Получил сотни отказов на HeadHunter, но в итоге устроился фронтенд-разработчиком.



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

В основе статьи — тред автора в Twitter.

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

В Калининграде дела шли плохо. Я увлекался фотографией, даже открыл убыточную студию. Работал где придётся, в том числе кассиром на рыночной парковке.

В 27 лет решил переехать к подруге во Владивосток — мы общались давно и всё друг о друге знали. Я продал свои вещи, купил ноутбук и взял билет в одну сторону. Весь скарб поместился в чемодан и рюкзак. Никаких планов я не строил и вообще не представлял, что меня ждёт. Было страшно, но радостно.

Поначалу Владивосток меня очаровал: наверное, так повлияли перемены. С подругой мы съехались — она занималась татуировками, а я пытался фотографировать, проколол уши и сменил причёску.

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

Я вспомнил, что когда-то интересовался вебом, но дальше забав с HTML-тегами дело не пошло. Вскоре наткнулся на бесплатные тренажёры HTML Academy — часами проходил их и громко матерился на заданиях, где вёрстка должна была совпасть с образцом пиксель в пиксель. Потом я купил подписку и прошёл все тренажёры по вёрстке.

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

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

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

Большую часть своей жизни я находился в эмоциональной заднице — и закончить жизнь в той же заднице я не хочу. Но и IT я выбрал вовсе не из-за денег — мне и правда было интересно. Вёрсткой я могу заниматься, забывая поспать и поесть. Это ли не счастье? А вот работа только ради зарплаты — путь в никуда.

Фото: предоставлено Олегом Кокошинским

Я начал изучать фронтенд, когда начиналась пандемия. В это время я то работал, то нет, поэтому денег на курсы не было и я тырил с торрентов всё, что мог найти. Иногда занимался весь день, иногда только пару часов. Верстал лендинги, погрузился в JavaScript на уровне обработчиков событий и всплывающих окон. И даже попробовал учить jQuery — правда, мне не понравилось. Про взрослые фреймворки вроде Vue.js и React я ещё не знал.

С таким подходом мне очень не хватало общения, поэтому я завёл аккаунт в Instagram*, подписался на многих ребят из индустрии и начал рассказывать о себе. Очень быстро появились знакомые и я понял, как развиваться дальше.

Поначалу я обходился без JS-фреймворков и сборщиков — пользовался плагинами Live Server и Live Sass Compiler для редактора Visual Studio Code.

В какой-то момент я записался на бесплатный курс в RS School. Это был интересный опыт, но до конца я так и не дошёл, потому что все вебинары и челленджи пролетали мимо меня: их проводили примерно в 20:00 по Москве — во Владивостоке в это время было три часа ночи.

В Instagram* я познакомился с Сашей Белькевичем — фронтендером, который работает на Vue.js. У него есть Patreon-сообщество, где он за небольшие деньги даёт задания с обратной связью. Конечно, я присоединился.

Русскоязычные курсы по Vue.js мне не понравились, но Саша предложил поискать уроки от Максимилиана Шварцмюллера — самоучки, который сам освоил фронтенд и бэкенд, а потом сделал курсы и обучил полтора миллиона человек.

Эти уроки я скачал с торрента. Переживал из-за своего плохого английского, но там были субтитры, и первое время я выписывал незнакомые слова в тетрадь. Зато сейчас уже всё воспринимаю на слух. Спустя некоторое время я удалил торренты и купил курс Максимилиана на Udemy.

Теперь моё портфолио пополнилось проектами от RS School и Саши, я более-менее научился верстать и использовать препроцессор, немного разбирался в Bootstrap, JavaScript и основах Vue.js.

Я завёл аккаунт на LinkedIn, оформил профиль, подтвердил несколько навыков и начал наращивать сеть контактов. В комментариях к какому-то посту мне предложили пройти собеседование: в итоге меня интервьюировали, когда я копал картошку у тёщи. Стоя с лопатой посреди сорняков, я отвечал на вопросы о promise и this, bind и reduce. Интервьюер сказал, что мне стоит подтянуть, и посоветовал изучить React. Я уже был готов на всё, поэтому пошёл на Udemy и купил очередной курс.

React мне понравился — у него есть нормальная документация. Не знаю, почему все говорят, что Vue.js намного проще.

Во время учёбы я понял, что главное — это практика. Неважно, где вы берёте знания: это могут быть книги, курсы или что угодно ещё. Пробуйте что-то делать и заливайте на GitHub — потом эти работы можно показать на собеседовании, да и проще будет освежить память и переиспользовать какие-то удачные приёмы.

Мне было 36 лет, ноль опыта, только резюме и несколько проектов на GitHub. Я искал работу больше полугода: за это время было несколько сотен отказов и проигнорированных откликов на HeadHunter.

Во Владивостоке мало вакансий по фронтенду, а джуниорские появляются совсем редко. Я мониторил HeadHunter и FarPost — дальневосточный Avito. Хотел устроиться в офис, чтобы было у кого учиться. Да и удалёнка не подходила из-за большой разницы в часовых поясах — всё-таки +7 к Москве. Так себе ситуация: ты работаешь, а команда спит.

Я сделал резюме на HeadHunter и начал робко откликаться на вакансии. Тщательно выбирал одну-две в день, искал только такие, которым полностью соответствовал. Это неправильно, но поначалу так многие делают. Привирать в резюме не стал — хотя некоторые ребята советуют указать побольше опыта и технологий.

В сопроводительных писал что-то вроде: «Заинтересовала вакансия. Пожалуйста, рассмотрите мою кандидатуру». В основном никто не отвечал или я получал стандартное «Мы внимательно ознакомились с резюме, но…».

В резюме не стоит писать, что вы ищете позицию джуна. Вместо Junior Frontend Developer оставьте Frontend Developer — так резюме будут смотреть намного чаще. Пусть грейд определяют сами HR-специалисты.

Про свой опыт рассказывать сложно. Например, нерелевантный на первый взгляд опыт может быть ценным — если вы работали в продажах, то предполагается, что у вас развиты софт-скиллы. С ноября 2019-го по октябрь 2020-го я занимался удалённым ручным тестированием в «Яндексе», и это стало неплохой строчкой в резюме.

В опыт можно вписать и обучение: какие проекты делали, какие задачи решали, какие технологии использовали. Не помешают и ссылки на красиво оформленные проекты на GitHub.

Как-то я набрёл на чат джуниоров и мидлов и познакомился с его администратором Наташей Давыдовой. Она подсказала, как улучшить резюме и даже какую фотографию поставить. Я безмерно ей благодарен.

А вот сайт-портфолио я делать не стал. Может быть, он нужен фрилансерам, но я хотел устроиться в офис. Уверен, что лучше завести и оформить нормальный профиль на GitHub. Забегая вперёд, скажу: именно он и помог мне найти работу.

Фото: предоставлено Олегом Кокошинским

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

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

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

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

На первое собеседование меня позвали, когда я сделал таблицу, в которой данные подгружаются из JSON-файла, а строки можно сортировать. Наверное, кого-то удивит XMLHttpRequest, зато задание было выполнено и всё заработало (про Fetch API и библиотеку Axios я тогда не знал). К этому моменту я уже несколько месяцев рассылал резюме и делал тестовые.

Перед собеседованием я разложил на столе все свои записи, открыл справочники, проверил камеру с микрофоном и стал ждать. Я три раза прыгал с парашютом, но ожидание интервью было намного страшнее :)

И вот в кадре появились трое и похвалили моё тестовое. Правда, я поплыл, когда приступили к техническим вопросам, — на какие-то ответил, но умудрился засыпаться на теме про document.createElement. Меня спросили, как создать элемент, а я начал что-то бормотать про innerHTML, хотя уже не раз создавал элементы. В тот момент я понял, что не нужно скрывать своё волнение: на той стороне тоже люди, и у них тоже когда-то было первое собеседование.

Меня не взяли, потому что нашёлся кандидат, которому не пришлось бы работать по ночам из-за временного сдвига. Зато волнение полностью пропало. Отказ — не конец света, а просто ещё одна попытка.

Иногда мне предлагали странные тестовые — например, за два месяца сделать большой личный кабинет на Vue.js или сверстать полноценный сайт и отдать его через GitHub.

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

Простое тестовое задание, после которого меня пытались нагрузить. Скриншот: Skillbox Media

С «Хабр Карьеры» я получил другое тестовое — сверстать лендинг по подбору авто. Фидбэк на него был грубоватый, с выражениями вроде: «top: 30vh? Серьёзно». Я позиционировал модальное окно через position: fixed; и top: 30vh;. Их смутило, что вместо пикселей я использовал относительные единицы Viewport Height. Сказали, что «адаптив просто ужасный», хотя в ТЗ его и не было.

Тестовый лендинг о лизинге авто. Скриншот: Skillbox Media

Работу не мог найти уже 8 месяцев, поэтому попросил Сашу Белькевича посмотреть мой аккаунт на GitHub. Он ответил, что я крепкий джун, а моя беда в часовом поясе. Но деваться было некуда — мы с женой не могли переехать по семейным обстоятельствам.

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

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

Тестовое на Vue.js — каталог акций для магазина бытовой техники. Скриншот: Skillbox Media

Технических вопросов почти не было, зато обсудили моё тестовое — сказали, что title великоват, однако не спросили, смогу ли я это поправить. После задали глупый вопрос, могу ли работать с DOM, хотя тестовое я делал на Vue.js. Фидбэк получился коротким: «Мы ждали большего опыта». Я пришёл домой, за две секунды поправил title и сказал себе, что больше не стану искать варианты во Владивостоке.

Пока я искал работу программистом, рассматривал и временные варианты не из IT. Удалось устроиться в агентство недвижимости на восемь месяцев на очень маленькую зарплату. Зато хватало времени верстать какие-то свои проекты и я урывками решал задачи из RS School. Но каждый день меня ждал вынос мозга, а по утрам понедельника хотелось плакать — иногда я так и делал.

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

По одной из вакансий вроде оператора ПК меня позвали на собеседование. Я ехал до места с двумя пересадками, а вместо офиса там оказался цех с паяльниками и шуруповёртами. Меня встретил директор по производству и сказал, что здесь собирают электросчётчики. Я покивал, хотя ничего не знаю про счётчики. Оператором ПК там и не пахло.

Зарплата устроила, оформляли официально — работа с 9 до 18, час на обед, перекуры. Я подписал бумаги и вышел уже на следующий день. Решил, что днём буду собирать счётчики на заводе, а дома буду учить React.

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

Я поел, включил лекцию по React и понял, что ничего не соображаю. Попробовал писать код, но вышло так себе. Понадеялся, что через день-два привыкну. На работе я научился паять, крутил пластиковые гайки — делал одно и то же по восемь часов подряд. Мозг и пальцы уже не справлялись.

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

Я проработал на заводе неделю, когда мне в Telegram написал начальник местного маркетингового агентства. Он сказал, что ищет фронтендера. Я уже ни на что не надеялся, но договорился созвониться с ним после смены.

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

Оказалось, что я уже откликался на их вакансию, но тогда не подошёл. А теперь им снова понадобился программист на Vue.js. Я рассказал о своём опыте, и мне предложили оплачиваемое тестовое задание — сверстать лендинг для застройщика. Пообещал, что сделаю его за выходные.

Тестовый лендинг для застройщика, после которого меня взяли на работу в агентство. Скриншот: Skillbox Media

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

Через два дня мне позвонили и предложили работу. Что-то говорили о зарплате и компенсации курсов, но это было неважно, потому что я медленно сползал по стене на пол. Ответил, что уволюсь с завода и скажу, когда смогу выйти. Разговор закончился, а я лёг на пол и заплакал.

На заводе отрабатывать две недели не заставили, а просто дали расчёт и отпустили. Было стыдно, потому что я обещал, что устраиваюсь надолго. Но поступить иначе не мог.

На следующий день пришёл в агентство — со всеми познакомился, мне показали офис, дали компьютер. Начальник сказал, что договор заключим позже, зарплата серая, но можно просить компенсацию в 50% от стоимости курсов.

Я сразу залогинился в GitHub, установил Telegram и Visual Studio Code. Меня добавили в Trello, GitLab и «Битрикс24», завели почту и дали несколько небольших задач. Я скопировал проекты себе и начал в них разбираться. Меня ждали сюрпризы.

Как только вы куда-то устроились, сразу напишите об этом на HeadHunter, в LinkedIn, «Хабр Карьере», Djinni и везде, где можно указать место работы. С этого момента вы в IT и вам капает опыт.

Проектов было несколько — сайт агентства на Nuxt.js (тогда я впервые услышал об этом фреймворке), интернет-магазин булочной и сайт застройщика с расчётом смет, вакансиями и калькуляторами.

Иногда я спрашивал фронтендера, как работает тот или иной кусок кода, но он чаще всего отвечал: «Хрен его знает». Сюрприз был в том, что единственный фронтендер в агентстве увольнялся через пять дней и я оставался на проектах один.

Приходили и рекламные лендинги, которые агентство заказывало на аутсорсе. Я заливал их на хостинг, иногда немного правил. В первые три дня я возненавидел Pug — он там был везде, как кинза в кавказских блюдах.

Самым сложным оказался сайт застройщика — код был просто адский. Никакого Vue CLI и Vuex, а Vue.js использовался как jQuery. Так я узнал о существовании Event Bus.

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

Работа не была похожа на сказку. Я правил вёрстку по замечаниям из Trello — большинство комментариев получал в стиле: «Отступ меньше!» Когда я уточнял, насколько меньше, в ответ присылали скриншот с подписью: «Как здесь».

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

Позже мне снова написали в Telegram — компания из Кисловодска нашла мой аккаунт на GitHub, где сказано, что меня не пугают сдвиг часового пояса и удалёнка, у меня нет игровой приставки, а на ноутбуке стоит Linux.

Человек спросил, сколько лет я работаю с Vue.js (нисколько), знаю ли Vuex (нет). Я скинул ему тестовое, которое делал для магазина техники, и меня взяли. На всё ушёл один телефонный звонок.

Я сказал, что сперва должен уволиться из агентства, и он предложил первое время совмещать обе работы. В тот же вечер мне дали доступы и сказали изучать документацию.

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

Дальше я работал в агентстве до 19:00, час добирался домой, а потом до 2:00 делал задачи для новой компании. Спать по четыре часа было трудно, так что я постоянно пилил начальника, чтобы он быстрее искал замену. В итоге меня отпустили на неделю раньше и даже выдали всю зарплату.

На новой работе тоже были странности — например, перед выходными старший фронтендер сказал разбираться с Vuex и BootstrapVue, а в понедельник уже уволился. Целую неделю я учил документацию, на дейли писал, что жду задач. В итоге пришёл новый человек и меня отдали ему.

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

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

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

Сейчас в работе тоже есть моменты, которые меня не очень устраивают, — хочется более интересных условий и развития в профессии. Поэтому, скорее всего, буду потихоньку присматривать другие варианты. А скоро пройду новый курс по JavaScript, окончу курс по Vue.js, попробую разобраться в TypeScript. Параллельно буду делать задачи с Codewars или LeetCode. А потом, может, и вовсе уйду в бэкенд.

В конце рассказа я хочу поделиться полезными ссылками, которые в своё время помогли мне:

  • HTML Academy — русскоязычные тренажёры по HTML, CSS, JavaScript и PHP.
  • freeCodeCamp — полностью бесплатные курсы на английском.
  • Glo Academy — YouTube-канал с уроками по Bootstrap, jQuery и WordPress.
  • «Фрилансер по жизни» — канал о том, как начать карьеру в IT.
  • Чат джуниоров и мидлов — место, где общаются начинающие и опытные фронтендеры. Ещё у них есть записи лекций.
  • Александр Белькевич — Instagram-профиль** фронтендера Саши, где он делится опытом.
  • Hexlet.io — здесь много бесплатных материалов.
  • RS School — бесплатные курсы по фронтенду, машинному обучению, iOS- и Android-разработке.
  • JavaScript, React и Vue.js — три курса от Максимилиана Шварцмюллера и курс на Udemy по JS.

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


* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности».

Научитесь: Профессия Разработчик
Узнать больше

Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.

  • Знакомство с вёрсткой
  • Интенсивы
  • Про Хекслет
  • Про резюме и трудности при смене профессии
  • Про собеседования
  • Про проекты на Хекслете
  • Про Open Source
  • Заветная работа
  • Благодарности

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

Свой путь в «большое» программирование я начал в 2015 году, когда вдруг осознал, что действительно хочу стать разработчиком. Тогда я начал активно читать «Хабрахабр», при этом большую часть статей я не особо понимал, но все равно было очень интересно. Нужно было выбрать первый язык. Я пошерстил интернет на эту тему, перечитал уйму разных статей — и выбрал Python. В качестве курсов я выбрал Codecademy и начал читать Марка Лутца «Изучаем Python». Даже поставил себе цель на SmartProgress и каждый день описывал свой прогресс. Вот ссылка. Курсы на Codecademy оказались довольно поверхностными, а книга Лутца очень объемной.

Тогда я начал искать какие-то дополнительные ресурсы для изучения программирования, наткнулся на Хекслет и даже зарегистрировался на нем. Но учиться на нем тогда не начал, потому что на тот момент меня больше привлек сервис Checkio.org. У него был очень клёвый дизайн и много интересных задачек по Python.

Чтение Лутца, курсы на Codecademy и решение задач на Checkio, отписка на SmartProgress — в таком вялотекущем режиме прошел мой 2015-й год. Прогресса особого не было, нужно было писать какой-то свой pet-project, чтобы применять полученные знания. Но я не знал как. И забросил это дело.

Знакомство с вёрсткой

В 2016 году я озадачился тем, что хочу сделать собственный сайт, но не знаю как. Тогда я хотел запустить свой бизнес — конечно же в интернете. Собирал сайт на конструкторе, пробовал установить WordPress и сделать что-то на нём. Я хотел, чтобы всё было красиво, а получалось либо коряво, либо результат меня совсем не устраивал. Тогда я понял, что мне нужно изучить вёрстку. Я нашел Html-Academy и её интерактивные курсы — и меня затянуло. Я прошел все бесплатные курсы и даже на месяц купил подписку. Всё это обучение шло параллельно с основной работой. Тогда я начал верстать свои первые макеты, стало что-то получаться. Так прошел весь 2016 и половина 2017 года. Когда HTML и CSS я более или менее освоил, то понял, что совсем не знаю JavaScript. Я выбрал его как основной язык и начал активное изучение. Начал с книги «Eloquent JavaScript», тогда же я стал больше смотреть тематических видео на YouTube.

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

Интенсивы

Мое обучение шло довольно медленно. И я решил, что мне не хватает практики и командной работы. В начале 2018 года я принял решение пройти базовый курс по вёрстке от Html-Academy. Даже не смотря на то, что вёрстку на тот момент я более или менее знал, выбрал именно базовый курс — но самый сложный макет. Курс оказался очень интересным и насыщенным. На выходе я получил свёрстанный интернет-магазин, который не стыдно было положить в портфолио. Но так как на тот момент я уже больше изучал JS, а на втором курсе академии была продвинутая вёрстка, я купил интенсив от Loftschool. Потому что в нём, судя по описанию, было больше JavaScript и еще давали Vue.js. Летом я закончил этот курс, где сделал за все время собственный сайт-портфолио и немного изучил Vue. Но всё равно чего-то не хватало. Было много практических заданий, но как будто не было прочных фундаментальных знаний. В тот момент я начал активно читать Slack Хекслета и смотреть лекции на YouTube. И меня очень сильно зацепило. Я понял — вон оно, это именно то, что мне нужно! И с 1 сентября, я, как прилежный ученик, начал проходить курсы на Хекслет.

Про Хекслет

Я выбрал профессию «Фронтенд-JavaScript» и поставил себе цель — полностью пройти профессию и завершить все проекты. Что больше всего меня поразило, так это то, что на самом базовом курсе «Введение в программирование» даются очень глубокие фундаментальные знания. Особенно мне понравился сам формат обучения. Небольшая лекция и сразу практическая задача. Это позволяло учиться в комфортном режиме. Что было, как бальзам на душу, по сравнению с 2-х часовыми вебинарами на других курсах. Уровень практических задач заставлял мой мозг сильно напрягаться. Это не было похоже на Codecademy, плюс много непонятных терминов — СИКП, пары cons, car, cdr, рекурсия, каррирование. Что это вообще такое? Курс «Введение в программирование» пролетел незаметно. Я, не раздумывая, оплатил подписку и продолжил свой путь.

Мне очень понравилось, что если ты не можешь долго решить задачу, к каждой есть топики. В них можно задать свой вопрос, либо найти чей то ответ, который подтолкнёт тебя к верному решению. Также у Хекслета очень дружелюбное комьюнити в Slack — можно задать свой вопрос там. Спасибо всем ребятам, кто не раз помогал мне, когда я упирался в проблему.  Единственное, чего мне не хватило для более качественного обучения — личного наставника, к которому всегда можно обратиться за советом. Но насколько я знаю, у Хекслета уже есть такая возможность.

Про резюме и трудности при смене профессии

Работу программистом я начал искать в середине 2018 после окончания курса на Loftschool. Для начала нужно было составить резюме, и я решил оформить его на «Мой круг». В резюме я указал все свои учебные проекты и желаемую должность — frontend-разработчик. Но одного сервиса «Мой круг» было недостаточно, так как основная площадка для поиска работы — это HH. Вот тут начались проблемы — у меня уже было резюме на HH по основной специальности, я решил создать новое. Но с новым резюме я никак не мог пройти модерацию, потому что постоянно прилетал отказ.

Когда ты меняешь профессию, HH обязательно требует указывать твоё предыдущее место работы. На тот момент я этого не знал, поэтому в новом резюме указывал только учебные проекты и как последнее место работы — фриланс. Тогда я действительно занимался фрилансом — делал сайты для бизнеса для своих друзей. В конечном счёте, в резюме я добавил два последних места работы по специальности, а в разделе «О себе» подробно описал почему я решил сменить профессию. И моё резюме приняли.

Используя эти две площадки, я начал мониторить рынок и откликаться на вакансии. Я принял решение сразу позиционировать себя как frontend-разработчик — без приставок junior. На основной работе у меня был хороший доход, поэтому при смене профессии я решил, что буду искать примерно такой же уровень. Но тогда я еще был готов к просадке в 20% на начальном этапе.

Но всё изменилось в конце 2018 года. У меня нет собственного жилья, а мы с женой жили на съёмной квартире. В конце года у нас родился сын, и жилищный вопрос встал особо остро. Мы купили квартиру в ипотеку. Маленький ребёнок и ипотека — это самые большие статьи расходов и большая ответственность. Поэтому при поиске работы программистом я уже не мог позволить себе просадку и искал зарплату, которая равнялась бы основному доходу. Это накладывало определенные ограничения. Не каждый работодатель готов платить такую сумму за человека, у которого в портфолио только учебные проекты, но я не сдавался и продолжал уверенно идти к своей цели — активно откликался на все вакансии, которые мне попадались. Поначалу были сплошные отказы и первые отклики пошли не сразу, — но все-таки они были. И вот спустя 3 месяца меня приглашают на первое собеседование.

Про собеседования

Первое приглашение на собеседование я получил в какую-то аутсорсинговую компанию. Они занимались разработкой софта для банковского сектора и даже игр. Но это было не техническое собеседование, а скорее общее с HR и директором компании. В целом оно прошло гладко — из вопросов я больше всего запомнил часть про методологию scrum, agile (про них я ничего не знал). А также у меня спросили почему Vue, а не React? Мне не перезвонили, и я продолжил свои поиски.

Второе собеседование было в компанию, которая разрабатывала софт для государственных заказчиков. На этот раз это было чисто техническое собеседование. Собеседовал меня один на один тимлид компании. Гонял по всем вопросам — HTML, СSS, Git, performance, как работает браузер, сети, HTTP, JavaScript, Vue.js. На первую половину вопросов я ответил довольно бодро и уверенно. А когда пошли более глубокие вопросы по JS и Vue — начал немного плавать. В целом я оказался крайне доволен этим собеседованием, так как прошёл его достойно. Тимлид дал мне положительный фидбек и готов был взять на работу — нужно было согласование с hr и бизнесом. Но у них оказались другие планы. Через два дня на созвоне с HR она мне отказала, по причине того, что у меня нет коммерческого опыта разработки. И за такую сумму они не готовы меня нанять, так как им легче найти на рынке студента с меньшими амбициями. Я не сильно расстроился и продолжил искать дальше.

Летом 2019 на меня выходит HR крупной туристической компании и предлагает работу. Я соглашаюсь на скайп-интервью. Беседа с техническими специалистами показала, что они не очень уверены в моих знаниях и предложили выполнить тестовое задание. Я согласился. Нужно было реализовать небольшое SPA-приложение на Vue — корзину покупок. Две недели я активно делал это задание и старался сделать его максимально качественно. Я по максимуму прилизал приложение и задеплоил его на Github pages. Не успел только написать тесты, и отправил на проверку.

Неделю я ждал от компании ответа. Первично они оценили его положительно, но взяли время для окончательного принятия решения. И вот, спустя неделю, я получаю от них на почту свой первый оффер! Я был немного ошарашен. В оффере говорилось, что они по достоинству оценили мое тестовое и выбрали в качестве финального кандидата меня. Зарплату мне предложили такую же как на моей основной работе. Всё выглядело просто шикарно, но меня накрыл страх. Мне вдруг резко стало страшно. Страшно уходить с текущей работы, здесь я всё знаю, все стабильно. Что ждёт меня там? Я же ничего не знаю. Ничего не умею. А вдруг я не справлюсь? А вдруг меня уволят? Как я буду платить за ипотеку? Все эти вопросы роем кружились в моей голове и я, как будто находился в оцепенении. Я не знал что мне делать. Я созвонился с HR и начал более подробно расспрашивать про компанию и про работу.

Оказалось, что у компании сейчас нет свободных мест в офисе и на время, пока они ищут офис побольше, мне предлагали поработать месяц или два на удалёнке. Также в компании была очень маленькая белая зарплата, всё остальное чёрным налом. Эти два фактора очень сильно меня смутили и только усилили мои переживания. Какая удаленка, я же искал офис? Как я буду коммуницировать с командой? Я же зелёный джун, а вдруг я не справляюсь с задачами и не у кого будет спросить совета? Чёрная зарплата, — а вдруг мне выплатят не всю сумму или лишат за что-то? Все эти вопросы только усилили мою неуверенность в себе и в компании. И я отказался. Зато я получил бесценный опыт. Я понял, что даже джуном можно найти достойную зарплату, если грамотно подойти к выполнению тестового задания.

Поиски работы продолжились. После этого было еще несколько собеседований, всех уже не вспомнить. Но больше всего я запомнил своё самое провальное собеседование. Это была небольшая компания, которая занималась логистикой. Я нашел их на HH и откликнулся, даже не смотря на странный стек. На клиенте они использовали Backbone, Marionette, MVC-архитектуру. Меня позвали на собеседование. Не то чтобы я прям хотел работать в этой компании, скорее наоборот. Я согласился только ради опыта собеседования. Все пошло не по плану с самого начала — меня завели в переговорку и попросили подождать. Собес проводили сразу три разработчика, должности их я не знал. Они начали сразу немного в агрессивной форме. После вопросов обо мне, начали указывать мне на баги, которые нашли в моих учебных работах. И говорили об этом в ироничном ключе. Я сразу стал жутко переживать, и чувствовать себя неловко. Отвечая на один вопрос, меня могли перебить и тут же задать другой. Сложилось впечатление, что разработчики тешили своё ЧСВ. Потом мне дали самую простую задачку. Написать на листочке функцию анаграмму. Я конечно же знал, как перевернуть строку, но так как изначально я сильно растерялся, захотел почему то решить её именно через рекурсию. Но шестерёнки в моем мозгу, как будто заклинило, и я даже не смог выдать рабочее решение. Я попросил другую задачу, но опять же не смог её решить. В итоге интервьюер сказал, что собеседование на этом закончено. И поглумился над тем, что я джун, а прошу такую большую зарплату. Вот такой был факап. Но я не расстроился. Этот случай наоборот придал мне уверенности, и я продолжил свои поиски.

Про проекты на Хекслете

Параллельно с поиском работы я продолжал активно учиться на Хекслете и проходить проекты. Первый проект оказался не таким сложным — самое трудное было настроить окружение, CI/CD, разобраться, как работает npm, как опубликовать пакет и записать asciinemу. Проект который взорвал мой мозг — вычислитель отличий, вот где по-настоящему пришлось попотеть. Помню, были моменты, когда ты открываешь шаг и просто не понимаешь, как к нему подступиться. Это было больно — но через эту боль я чувствовал, что расту.

Самый интересный момент произошёл со мной в начале 2020 года. В начале января я оплатил четвертый проект. В то же время в Slack-канале job я увидел интересное объявление, которое меня заинтриговало, где пользователь Михаил запрашивал помощь в разработке Open Source проекта конференции IT Global Meetup. Стек: React, Storeon, Parcel. Опыта в опенсорсе у меня не было. Единственный PR, который я сделал — были примеры тестовых для hexlet/ru-test-assignments. Я тогда только закончил курсы по React/Redux, но не писал на этих технологиях. Я написал Михаилу, что так мол и так. Такой то опыт — готов помочь. И оказался в деле. Также со мной в команде оказались ребята из Slack-комьюнити Хекслета.

Про Open Source

Проект я тогда отложил и погрузился в этот Open Source. Мы работали с ребятами в команде, проводили совместные созвоны, распределяли задачи через issues на GitHub. Постоянно обсуждали какие-то решения в нашем телеграм-чате. В общем — это была настоящая командная работа. Не все фичи, которые мы разрабатывали, попали в итоге в продакшен, но с горем пополам этот проект был запущен. Конечно, пандемия коронавируса внесла свои коррективы в работу конференции IT Global Meetup, но это уже другая история. Этот проект очень сильно мне помог. Я почти сразу добавил его первым пунктом в своё резюме. И на всех последующих собеседованиях выглядел уже более привлекательно для работодателей.

Мой совет всем новичкам — не бойтесь опенсорса. Хотите получить реальный опыт работы, но не знаете как? Open Source —  ваш лучший выбор! Даже сейчас я стараюсь находить свободное время и контрибьютить в опенсорс. Например, в проекты Хекслета.

Заветная работа

В марте этого года мне неожиданно прилетает письмо на почту, примерно такого содержания. «Евгений, ваше резюме на HH еще актуально? Ищем сейчас фронтендера. Требования — такие…, задачи…, условия…. Смотрю на лейбл отправителя — компания «Газпромнефть». Я был заинтригован и тут же дал ответ — мол да, актуально. Списываемся в телеге, созвон, мне рассказывают более подробно про проект и стек. Звучит интересно, я договариваюсь на этот же день на собеседование. Приезжаю к ним уже через полтора часа. Беседую с руководителем и бекенд-разработчиком. По технологиям расспрашивает фронтендер. Всё проходит очень гладко. Мне задают вопрос, в случае успешного рассмотрения, через какой срок я готов выйти на работу ? Я говорю, что минимум через две недели. Прощаемся. На следующий день звонок. Евгений — твою кандидатуру утвердили. Радуюсь в душе. Ура! Меня готовы взять. Но вида не подаю. Говорю, что готов к ним выйти, но чтобы запустить процедуру увольнения, хочу получить от них официальный оффер. Мне говорят, что контора крупная и всё идёт через бюрократию долго. Я понимаю, что возможно ничего мне не светит в данной ситуации и тупо забиваю. Тем более в самом разгаре началась пандемия коронавируса и карантин. Продолжаю дальше ходить на свою работу и параллельно откликаться на вакансии. Каково же было моё удивления, когда спустя почти месяц, мне прилетает на почту официальный оффер. С требованием принять решение до конца дня. Снова всё тот же страх накатывает на меня. Сердце бешено колотится в груди, и я судорожно решаю, что же мне делать. Трезво оценив ситуацию и посовещавшись с женой, я понимаю — что это мой шанс и его нельзя упускать. Я же так давно его ждал. Я подписываю оффер и в этот же день пишу заявление на увольнение. Я прыгнул в омут с головой и ничуть об этом не жалею.

Читайте и другие истории успеха:
Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока

В итоге я работаю фронтенд-разработчиком в крупной компании, которая занимается цифровыми решениями. У меня интересный проект, связанный с большим объемом данных и их визуализацией. Мой стек на текущей работе: Vue.js, Vuex, Vue-router. Выучил я его, потому что активно использовал для выполнения тестовых заданий. Но данный стек — не приговор, в свободное время я пишу на React.

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

Благодарности

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

Хекслет помог мне посмотреть на мир программирования под другим углом, я стал глубже разбираться в фундаментальных основах и по-другому анализировать и решать инженерные задачи. Также хотел сказать огромное спасибо наставникам и всем участникам комьюнити в Slack. Ребята — вы супер! Мои планы на будущее не ограничиваются фронтендом. Я собираюсь пройти профессию по бекенду и поглубже изучить Node.js. В свободное время продолжу контрибьютить в Open Source проекты.

Мой совет всем, кто только в начале пути. Ребята, верьте в себя! Ставьте себе цель и потихоньку идите к ней. Старайтесь выделять на обучение хотя бы 30 минут в день. Как можно раньше ходите на собеседования. Слушайте подкасты и посещайте конференции. Не зацикливайтесь на технологиях и расширяйте кругозор.
Таков мой путь. Он был не быстрым, но его надо было пройти.

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

Понравилась статья? Поделить с друзьями:
  • Как найти ворлд офисе
  • Как можно найти рефераты
  • Как найти бородавку матку
  • Как найти работника магнита
  • Трусливый пес как исправить