63 часа работы в неделю, три выходных за полгода и подвешенное состояние гастарбайтера: меня зовут Мустафа Бекиров, мне 23 и я вкатываюсь в IT. Работаю дальнобойщиком 1,5 года, а в перерывах между грузами почитываю Хабр. Никогда официально не учился на программиста, но полгода назад всё-таки смог прорваться в IT, стал разработчиком под iOS, и пока полёт нормальный. Решил рассказать свою историю. Может, кому-то она будет полезной или интересной.
Учиться в перерывах между загрузкой и выгрузкой
Моя сильная сторона — это умение быстро адаптироваться к новой среде, быстро учиться.
До того, как в моей жизни появилось программирование, я был простым водителем фуры. А ещё до того — просто учился на заочном, параллельно занимаясь продажами в колл-центре. Всё это шло плохо, чувствовал, что всю жизнь провести в таком «обычном мире» — не по мне. Поэтому три с половиной года назад бросил университет и переехал в Чехию, в Прагу. Как раз перед ковидом.
Уже тут сдал на права, сделал удостоверение. И начал работать дальнобойщиком, возить грузы внутри страны. Из плюсов — неплохая зарплата, лучше, чем в колл-центре или на заводе. А ещё, как оказалось, есть время читать книги и смотреть видеокурсы: когда загружаешься и выгружаешься, сидишь по полчаса.
Я самоорганизованный и хорошо планирую своё время. Поэтому решил, что и такое «сидячее» время тоже стоит тратить с пользой. Искал, что изучать. И в итоге так начал читать о программировании. Хотя сам ничего из этой сферы не знал.
Бесплатный гарвардский курс как отправная точка в IT
Год назад мне на глаза попалась статья об affiliate-маркетинге. Я начал об этом читать, чтобы куда-то развиваться. Стал изучать Google Ads. И у меня вдруг возникла проблема: не смог подключить рекламу к своему сайту. Начал разбираться, как это можно сделать. Стал копаться в коде WordPress: HTML, CSS, JavaScript. Мне это понравилось, ощутил состояние потока. Очень приятно, когда что-то делаешь пять минут, а оказалось — прошёл час.
Все знакомые из этой сферы сначала рекомендовали разобраться, что мне интереснее: фронтенд, бэкенд, мобильная разработка. Прошёл бесплатный курс Harvard CS50 на EDX, основы программирования. Это была моя отправная точка в IT. Получил хотя бы общее понимание того, как всё вообще устроено в Computer Science.
Для людей, которые никогда этому не учились в вузе, очень рекомендую. Даёт понимание основных принципов разработки: алгоритмы, фреймворки, архитектура приложений. Как это всё работает и зачем оно нужно. Мне кажется, этот курс заложил в меня хороший фундамент. Иначе у меня не было бы понимания, из чего всё строится и как это работает.
Параллельно пробовал Python, прошёл мини-курсы по фронтенду. Информации там было много, мне было сложно выбрать что-то конкретное. Потом попробовал мобильную разработку. Android-устройств у меня не было, был только iPhone. Поэтому начал изучать создание приложений под iOS. Изучал язык Swift. Смотрел канал The Swift Developers и курсы Скутаренко на Ютубе. Было сложно: много новых фраз, плюс информация оказалась устаревшая, 2015 года, которой нет в современном языке. Но какие-то знания получил.
Пришёл к тому, что мне всё-таки больше нравится мобильная разработка. Спланировал себе весь график обучения. Читал книгу Усова о введении в язык Swift (тоже слегка устаревшая, но уже есть и новая версия). Написал себе roadmap: что нужно сделать, чтобы стать разработчиком. Учился, осваивал язык. Очень помог курс разработки под iOS у Стэнфорда — много знаний, и это бесплатно: они так тренировали своих студентов в 2021 году во время ковида. Очень много сидел на Хабре: если что-то неясно — всегда сюда, читать статьи. Очень много полезной конкретной информации выцепил, особенно в комментариях.
Сейчас могу сказать, что было бы ещё быстрее, если бы я просто открывал сайт Apple Developer и смотрел там каждое выступление. Начиная с того времени, как они презентовали новый язык, и до сегодняшних дней. Этого плюс немного пояснений с Хабра было бы достаточно. И устаревшей информации у Apple почти нет: они там всё регулярно обновляют, синтаксис актуальный. То же самое есть у них в приложении. По сути, этого достаточно, чтобы выучить Swift и фреймворки: есть и доступные видео, и документация. Нужен только английский (к счастью, у меня отец его преподавал).
Работать 9 часов в день, 7 дней в неделю
В affiliate marketing у нас было своеобразное братство, сообщество. Мы переписывались, пытались помогать друг другу. В этой сфере также крутился один из моих бывших одногруппников. В связи с СВО он переехал в Польшу, узнал, что я изучаю программирование, предложил мне попробовать присоединиться к его команде. Он был медиабайером, занимался перепродажей клиентов. У него было четыре Android-разработчика, тимлид-бэкендер, и я стал первым разработчиком под iOS.
У меня рабочая виза в Чехии, я привязан к работодателю, чтобы меня не выселили из страны. Длительность моей визы зависит от длительности моего трудового договора. Мне нужно официально проработать в стране 5 лет, чтобы иметь возможность получить ПМЖ. Я работаю так 4 дня в неделю, 32 часа. А параллельно сейчас удалённо кожу для компании знакомого — по 30 часов в неделю, получая новые знания.
Были моменты, когда я думал, что мне стоит бросить работу в IT и заняться чем-то другим. Сложно совмещать. За последние четыре месяца я отдыхал три дня. Всё остальное время — работа нон-стоп или изучение новых инструментов. Мне предлагали переехать в Польшу, чтобы там работать в команде, но я не хочу, — это опять новый стресс. Хочу найти другую, full-time-работу, может быть, в одной из чешских компаний. Для этого постоянно сижу на Indeed, Prace.cz, Jobs.cz.
Проблема в том, что я живу в небольшом городке, 150 тысяч населения. Айтишные компании тут есть, но за полгода на iOS-разработчика вакансия была только один раз. И то это была сеньорная позиция в банк! Но надеюсь, что возьмут куда-то — может быть, в другой город. Я проверил на Хабре свои знания: 75% правильных ответов, то есть думаю на фулл-тайм джуна пройду. Тогда, может быть, станет полегче.
Череда испытаний — мне кажется, неизбежный первый этап в процессе развития, особенно в карьере инженера ПО. Когда я начинал свой путь в мобильной разработке, у меня почти каждый день были сомнения — сделал ли я правильный выбор. Но сейчас вижу, что разработка под iOS — это то, что действительно меня вдохновляет и что я готов делать всё возможное, чтобы добиться успеха в этой области и получить долгожданный оффер.
Компенсировать свой недостаток знаний
Благодаря своей (короткой) карьере в IT я нашёл свои сильные и слабые стороны. Понял, что моя настойчивость и упорство помогают мне достигать успеха, но мой недостаток знаний и опыта, нехватка понимания того, что изучать, мешают мне расти быстрее. Я начал работать над своими слабостями, изучать новые технологии и учиться у коллег. На самом деле, это очень круто, когда ты видишь, в каких аспектах тебе нужно расти. Не каждая карьера так открывает глаза.
Я посещаю конференции, читаю книги и статьи в перерывах между основной работой смотрю видеоуроки. Мне кажется, самое главное — планирование и самодисциплина. Поэтому раскладываю задачи по пунктам во избежание прокрастинации.
Мой совет начинающим: не нужно искать информацию в Гугле. По крайней мере, в сфере разработки для iOS. Для себя я построил так: в первую очередь заходить на Swift.org. Потом — Apple Developer. Потом — Stack Overflow, потом Хабр. И только если нигде из этого не нашёл, можешь поискать в Гугле на каких-то случайных сайтах. И мои коллеги, и я сейчас делаем так — и поиск выходит быстрее.
Считаю, для джунов первое дело — изучать, знать английский. Особенно для разработки на iOS. Все нововведения выходят на английском, и только через недели-месяцы появляется перевод, и то в нём часто не вся информация. Некоторых тем по Свифту на русском вообще не найти — целых разделов документации. Иногда я искал и понимал, что половины информации нет.
Не бояться «слишком сложных» задач
Особенно сложным опытом для меня пока стало создание приложения, которое должно было работать с сервером и обрабатывать большой объём данных. Нужно было интегрировать существующую БД с сайта в наше приложение. Я вообще не понимал, как подступиться к этой задаче. У меня сокращённый рабочий день, 4 часа, и всё это время я сидел в прострации и не понимал, что делать. Написал три строчки кода, потом их стёр. Отправил что-то тимлиду, потом за это стало стыдно.
Не хватало знаний в области сетевой разработки и обработки данных, не хватало опыта в работе с базами данных, были трудности в оптимизации производительности приложения.
Я пробовал всё. Проводил исследования и изучал документацию, чтобы узнать, как лучше всего работать с сервером и БД. Использовал опыт других разработчиков из моей команды, которые работали с похожими проектами. И в итоге за неделю всё-таки смог найти подход, написать код и всё это интегрировать.
Справившись с этой задачей, я получил ценный опыт в работе с сетевой разработкой, базами данных и оптимизацией производительности приложения. А ещё научился лучше понимать, как работать в команде и решать сложные проблемы совместно.
Каждый новый проект для меня — как новый босс в видеоигре. Он преподносит новые вызовы, зато тестирует твои способности и даёт возможности повысить свой уровень. В целом я убеждён, что опыт и знания, накопленные на протяжении карьеры, помогают в дальнейшем справляться с новыми вызовами. Как в видеоигре. Но я также думаю, что опыт не является единственным фактором успеха. Важно иметь хорошие коммуникационные навыки, умение работать в команде и быть готовым к постоянному развитию.
IT — работа в удовольствие
Когда мы делаем новый релиз, я чувствую огромную гордость и удовлетворение от того, что смог справиться со сложной задачей и достичь цели. Мне нравится это ощущение — что все усилия и время, вложенные в проект, окупились и принесли плоды.
В этой работе я уже отбил все деньги, что потратил на книги и на ноутбук. Я продолжаю возить грузы, а программирование сейчас идёт в хороший бонус. Чувствую себя очень круто — что хобби может являться работой. Мне это суперинтересно, получаю удовольствие от изучения новых знаний. Когда ты видишь задачу и просто не понимаешь, как её можно решить, а потом, изучив, получаешь результат — и всё работает! Офигенное чувство.
Пока что план — ещё год проработать на фурах, чтобы получить ПМЖ. Мне в Чехии нравится, уже выучил язык, снова переезжать куда-то не хочется. Я уже интегрировался в это общество, чувствую себя комфортно. Даже на море не хочется. Хочу просто жить здесь и пробиться в IT.
Сейчас работаю над своим приложением — должна выйти образовательная платформа. Чтобы человек мог, ничего не умея и не зная, стать полноценным водителем-профессионалом. Тоже своего рода roadmap, только под водителей, чтобы в игровой форме прокачивали свои скиллы и получали эффект. Лайфхаки, которые я изучил за время вождения фуры, тесты, помощь с резюме и поиском работы, в том числе за границей. В сентябре, думаю, доделаю его, и состоится релиз. Потом посмотрим — может быть, придумаю себе новое испытание.