Из бармена в айтишника. Как начать работу в ИТ?

Из бармена в айтишника. Как начать работу в ИТ?

Всем привет! Меня зовут Игорь, я работаю iOS-разработчиком в компании Joy Dev.
Но так было не всегда: прежде чем стать таковым, я прошёл все 5 стадий принятия неизбежного. Во время обучения этой профессии я вынес для себя несколько кейсов, которые помогают мне и могут быть полезны другим начинающим разработчикам. Всё это — мой личный опыт и рекомендации.

Оглавление

Небольшая предыстория

Февраль 2020. Я - перспективный бартендер в Москве, который стремится открыть своё консалтинговое агентство в области HoReCa. Но Covid всё портит. Сначала лёгкий испуг из-за того, что всё в стране закрывается, в том числе бары и рестораны. Потом карантин продлевается на 2 недели, потом на месяц. И так было до июля.

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

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

Начал интересоваться направлениями и понял, что их великое множество. В итоге решил, что хочу разработать приложение для смартфонов - трекер актуальных скидок в игровых магазинах для Xbox, PlayStation и PC. Так как я всегда любил продукцию Apple, то выяснил, что существует язык SWIFT. С ним у меня и сложились дальнейшие отношения.

Ну а теперь, давайте перейдём к советам и разберемся, как же начать работу в IT.

Подпишитесь на тг-каналы для разработчиков

Из бармена в айтишника. Как начать работу в ИТ?

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

Найдите литературу

Первое правило программирования – всё есть бесплатно в интернете. Моё мнение - не спешите покупать курсы. Чаще всего это лишняя трата денег и никто не даёт вам никаких гарантий. Есть официальная книга от Apple и документация по всему языку. Я изначально её скачал, чтобы понимать, нравится мне это или нет. После ознакомления с 3-м изданием книги Усова и понял, что мне это нормально заходит. Потом купил 5-е издание в бумажном виде, это была благодарность автору, а еще к этой книге был бонус – доступ к закрытым чатам и сайт с тестами и задачками.

Я советую всем, кто хочет изучить язык SWIFT, следующие книги:

Видеоуроки на YouTube

Никто не объясняет язык лучше, чем человек в видеоролике. Мне помогали изучать язык Скутаренко, Зверика и переведённые стенфордские курсы, они уже устарели, но для первого ознакомления отлично подходят. Поверьте, поначалу вы частенько будете лезть на Ютуб, чтобы найти информацию. Плюс, у Яндекс браузера есть синхронный голосовой переводчик, теперь вы можете легко смотреть и английские ролики.

Вот несколько интересных каналов:

Постоянно пишите код

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

Принципы ООП

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

Синтаксис - это не всё

После того, как я более-менее осилил синтаксис, к своему удивлению я выучил алфавит. Самое интересное было впереди. Архитектуры, фреймворки, многопоточность, работа с сетью, вёрстка и далее по нарастанию.

Программы для контроля версий

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

Программные инструменты для управления проектами

Из бармена в айтишника. Как начать работу в ИТ?

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

Гугли

Поверьте, это очень важный навык. Его нельзя недооценивать. Правильно сформулированный вопрос сможет дать вам развернутый ответ в первых трёх ссылках. StackOverflow и GitHub - ваши верные товарищи. Почти всё, что вам нужно, находится на этих сайтах. И да, лучше вопросы задавать на английском - успех в этом случае возрастает на 80%.

Никуда без Soft skills

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

Возьмите за правило: если вы не можете решить задачу больше часа, то идите в Google. И только после этого обращайтесь к коллегам. Так же чётко сформулируйте свою проблему: “Задача такая, делал это, проблема тут, решений не нашел.” Учитесь сдерживать гнев: желание выругаться будет посещать достаточно часто, когда у вас что-то не будет получаться (поверьте мне на слово). Но помните: терпение и труд всё перетрут.

Спик инглиш

Из бармена в айтишника. Как начать работу в ИТ?

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

Сколько времени нужно потратить на обучение

Я ставил себе цель - 4 месяца. Начал я в августе 2020, получил стажировку в ноябре 2021. Я работал, параллельно учился по 2-3 часа в день, но потом сменил план: в августе 2021 уволился и выделил всё свободное время учёбе. Занимаясь даже по 8 часов в день, начинающему разработчику нереально получить работу за 6 месяцев. Есть уникальные случаи, но не обманывайте себя.

Из бармена в айтишника. Как начать работу в ИТ?

Так же есть академии при компаниях, которые помогают за несколько месяцев освоить базу, чтобы получить стажировку и выполнять несложные задачи. А дальше уже всё зависит от вас, как вы будете адаптироваться и решать поставленные задачи. Расскажу, как было у меня в академии компании Joy Dev, в которой я работаю по сей день.

Академия мобильной разработки Joy Dev

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

Академия набирала поток по 2 направлениям - iOS и Android. Каждую неделю дистанционная лекция, которую вёл действующий разработчик компании (у меня CEO компании преподавал). Вам рассказывают, показывают, объясняют, вы в конце лекции задаёте свои вопросы.

Вот темы лекций, которые я проходил:

  • Основы синтаксиса языка Swift
  • Объектно-ориентированное и протокольно-ориентированное программирование языка Swift. Особенности и отличия языка Kotlin
  • Особенности работы в среде разработки. Основные элементы интерфейса мобильных приложений
  • Работа с сетью и моделями данных
  • Практические приёмы взаимодействия сетевого слоя интерфейсов приложения
  • Способы хранения данных на мобильном устройстве
  • Основные архитектуры мобильных приложений
  • Многопоточность. Разбор наиболее популярных OpenSource библиотек

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

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

Также пример лабораторных работ:

  • Шаблон мобильного приложения и форма регистрации
  • Работа с компонентами интерфейса мобильного приложения
  • Взаимодействие мобильного приложения с данными
  • Изучение основных архитектур мобильных приложений

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

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

У меня всегда были проблемы с этими лабораторками, так как у меня не было никакого бэкграунда. Я мог обратиться к преподавателю и попросить о помощи. В академии заинтересованы в вашем обучении, потому что вы - потенциальный сотрудник, который принесёт компании выгоду. Поэтому в вас вкладывают свои время и деньги.

Придерживайтесь закона Парето, которым поделился преподаватель в академии:

«20% усилий дают 80% результата, а остальные 80% усилий — лишь 20% результата»

Поэтому вам достаточно освоить синтаксис языка, узнать, как делать сетевые get/set-запросы, изучить базовые классы UIKit для вёрстки, как и где хранить данные, базовые библиотеки - и можно начинать кодить в несложных проектах компании. Остальное приобретёте с опытом.

В конце я так и не смог закрыть финальное задание, потому что было много багов. Но за своё упорство и проявленные хорошие софт скилы мне предложили стажировку, где я мог набить руку на реальных задачах от заказчика. Утвердили испытательный срок и зарплату. Ах, да. Если вы с отличием закончите академию, то получите стипендию. Неплохо, правда?))

Благодаря академии я понял, в чём у меня проблемы и на что нужно сделать упор, чтобы стать лучше.

После вы уже сами решаете: работать удалённо в компании или релоцироваться в город, где есть офисы. Я выбрал первое, так как не хотел тратить время на дорогу в офис и иметь возможность постоянно менять города. Так и началась моя работа в компании Joy Dev.

Подробнее об академии можно узнать здесь. Сейчас как раз идёт набор по 4 направлениям: iOS, Android, React, Аналитика.

Опыт, который я вынес из реальных проектов

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

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

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

Из бармена в айтишника. Как начать работу в ИТ?

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

Для того, чтобы зайти на позицию джуна нужно знать архитектуры: MVVM, VIPER. С MVC и MVP. Ознакомьтесь, но не акцентируйте своё внимание: в реальных командных проектах почти не используется.

Научитесь работать с документацией языка в xcode, с 95% вероятностью вы сразу получите ответ.

Вам нужна машина с MacOS (если работаете удалённо), так как учиться на чём-то же нужно. Можно конечно попробовать накатить на ПК хакинтош или на Linux, но это отчаянная мера, и вы не сможете использовать на максимум среду разработки.

Можно первые 2 месяца обойтись онлайновым плейграундом, но компьютер с актуальной MacOS вам будет необходим.

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

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

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

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

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

Если вы думаете, что программирование - это “не ваше, отвечу: “Камон. Я – гуманитарий!”

UPD: Список тем, которые вам необходимо знать, чтобы завершить обучение и проходить собеседования:

Из бармена в айтишника. Как начать работу в ИТ?

А также многопоточность, ООП и SOLID, KISS, DRY, YAGNI

Заключение

Если вам было полезно и понравилось - ставьте лайк. Буду рад вопросам и пожеланиям. А если хотите начать свой путь в IT, то сейчас Joy Dev набирает людей в бесплатную академию по 4 направлениям: iOS, Android, React, Аналитика. Последний день приема заявок - 15 сентября!
Запись по ссылке: https://t.me/JoyDev_events

Всем Joy!

1010
12 комментариев

Спасибо за ваш труд

3

Илья, спасибо, что уделили время и прочли статью!)

кайф! пользуюсь джира постоянно, еще трелло люблю

1

полностью вас поддерживаем) Jira - неотъемлемая часть наших рабочих будней

Интересный путь. Здорово, что у вас все получилось!

1

спасибо, Тимур!) Лично от автора😊