Часть 2. Путь программиста
В первой части я рассказываю, как принял решение стать айтишником, а сейчас – о том, как я им стал. Обо всём пошагово на тот случай, если вы захотите повторить мой путь.
Шаг 1. Выберите, чем хотите заниматься
Мне казалось, что в первую очередь нужно выбрать язык, который я буду осваивать. Но мой друг-программист философски заметил: «Язык всего лишь инструмент – он подберётся к задаче. Важно определиться с тем, чем ты хочешь заниматься». А чем я хочу заниматься? Друг обратил внимание на то, что мне всегда нравились продукты от Apple. Я следил за событиями компании, собирался купить iPhone, а на MacBook разрабатывал квесты.
Так я решил, что буду делать приложения на iOS и macOS – для этого мне были нужны языки Swift и Objective-C. Я начал со Swift, потому что он был проще.
Шаг 2. Встройте учёбу в свой привычный график
В моём расписании уже была забота о квестах, семья, хоккей, на который нужно отвести сына, тайский бокс, на который нужно отвести себя, и сон. На программирование у меня оставалось 6 часов: 2 до квестов и 4 в течение дня.
В одной из обучающих статей советовали следующий распорядок: 1 час изучать книги по программированию, 1 час учить английский и 2 часа писать код – всего 4 часа. Этим методом я и воспользовался, но схитрил: совмещал теорию и английский, читая зарубежные источники, чтобы у меня оставалось больше времени на код.
Материалы, которые помогли мне начать:
- Intro to App Development with Swift – вводный учебник от Apple, распространяется бесплатно.
- App Development with Swift – базовый учебник от Apple с более подробным описанием возможностей Swift, с примером разработки нескольких небольших приложений и множеством «домашних заданий», тоже бесплатный.
- SWIFT марафон – канал Алексея Скутаренко на YouTube. Полезный курс, описывающий возможности языка, с примерами и д/з.
- Профессия iOS-разработчик – обучающий курс по Swift от Skillbox.
С теорией, англоязычными учебниками, статьями и видео я справлялся быстро – спасибо онлайн-играм, которые прокачали мой английский. Но практика давалась тяжело: на выполнение одного задания у меня могло уйти от нескольких часов до нескольких дней.
Первые месяцы мне было трудно концентрироваться, я не мог заставить себя работать дольше четырёх часов и ждал, когда же меня отвлекут какими-то «срочными» делами. Развить усидчивость мне помогли прогулки: я выходил на 10–20 минут и размышлял о том, чем занимаюсь. В это время приходили новые идеи по коду, а вот отдых за телевизором и на YouTube совсем не расслаблял меня. И я не первый, кому не-делание помогало отвлекаться и находить нестандартные решения.
Шаг 3. Переживите депрессию
На третьем месяце я впал в отчаяние.
Моё обучение шло по плану, я воспринимал процесс как RPG-игру: прокачиваешь персонажа, дерёшься с монстрами послабее, потом посильнее, а потом, в конце уровня, побеждаешь босса. Но я быстро понял, что аналогия ошибочна: трудности встретились мне в самом начале, когда у меня толком не было скиллов.
Проблемная задача, с которой я боролся несколько дней, выбивала меня из колеи. Чем дольше я с ней возился, тем громче внутренний голос твердил, что мне не дано. На фоне этих мыслей появилась апатия, я признал себя безнадёжным, решил всё бросить и сбежал в мир Dark Soul, который только усугубил моё состояние.
Но на третьей неделе депрессии крест, который я поставил на своей карьере программиста, пошатнулся. Бывший коллега позвал меня на «старую» новую работу в дилерском центре. Деньги, знакомая деятельность, прежние связи – это звучало заманчиво, и я задумался. Тут же воображение нарисовало возможное будущее, отчего меня накрыло волной холодного пота: не было ни малейшего желания возвращаться к рутине, от которой я бежал.
На следующий же день я вернулся к той непосильной задаче и решил её за пару часов. Первая большая победа облегчила дальнейший путь, усидчивость появилась сама собой: я спокойно работал по 8, иногда по 12 часов.
Если вы чувствуете, что вот-вот всё бросите, вот советы от меня, которые помогут вам не сойти с дистанции:
- Вам нужна эмоциональная поддержка: позвоните другу и выскажите всё, что вы думаете об этом коде.
- Профессиональная поддержка тоже важна: найдите человека, который объяснит сложную тему на пальцах, и обращайтесь к нему, когда будете в тупике.
- Не наседайте на себя строгим порядком в обучении: беритесь за тему, которая «идёт», а сложному дайте утрястись в вашей голове – возможно, вы постигните его через простое. Но чуть позже.
Шаг 4. Откажитесь от того, что не даёт вам расти
Чётко, размеренно я шёл к своей цели десять месяцев, и мне хотелось попробовать себя в бою. Под руку попался стартап, в котором я выполнял мелкие несложные задачи. Как раз в этот момент подскочила арендная плата за помещение для квестов.
Поговорив с хозяином, мы съехали – нам подходило место поменьше и подешевле, в котором всё нужно было оборудовать заново. Переезд затянулся на два месяца, и в это время я почти не программировал. Поиск работы, как и тренировки я отложил на неопределённый срок, а доход от квеста отсёкся сам собой – остались только затраты и долги. Когда мы воскресили феникса, стало понятно, что золотых гор он нам не принесёт.
С тех пор я стал относиться к квестам как к хобби и тратил на них меньше времени. Это дало мне фору в программировании, и я бросил стартап ради того, чтобы устроиться на свою первую работу в айти.
Шаг 5. Найдите работу
Мне хотелось, чтобы опытные люди оценили мои навыки со стороны. То есть я хотел услышать не похвалу, а именно оценку, потому что критика позволила бы мне подтянуть слабые места. Я написал резюме и ждал собеседования.
Первая компания искала полноценного сотрудника, но дала мне два тестовых задания: на стажёра и разработчика. Стажёрское задание было готово к вечеру, а вот с более сложным я возился неделю, по 11–12 часов в день. Пришлось посмотреть правде в её глубокие безразличные глаза: я тянул только на стажёра, а он в компании был не нужен.
Я попробовал себя ещё на одном собеседовании. После долгого интервью с техническим директором, получил тестовое: написать полноценный интернет-магазин. Я справился с заданием за неделю и сам был доволен результатом, но не знал, как его оценят. Спустя неделю ожидания я получил оффер: меня приглашали в «Лайв Тайпинг» на должность junior iOS-разработчика с испытательным сроком.
Тогда я почувствовал всё, что мог: и смятение, и восторг, и облегчение, и радость. И конечно, гордость за себя и свои усилия. Ну, а команде и тимлиду, который нянчился со мной первое время, я благодарен до сих пор.
Шаг 6: Наслаждайтесь победой
Мне 31. Два года я работаю iOS-разработчиком в «Лайв Тайпинге», пишу код для приложений Sephora, ИЛЬ ДЕ БОТЭ и LIMÉ с тысячами скачиваний в App Store, изучаю что-то новое сам и учу других. Менять профессию было больно, но оказалось, что ничего не делать и прозябать там, где тебе не место, ещё больней.
Outro. Как всё это повторить
Если вы ждёте особого знака, то это он. Менять профессию страшно, но этот страх естественен. Если вы тоже хотите попробовать себя в айти, воспользуйтесь этими советами – они помогут вам сделать первые шаги:
- Найдите то, чем вам интересно заниматься в программировании, а язык – приложится.
- Будьте готовы к тому, что вам придётся долго сидеть на месте – программирование требует усидчивости, концентрации и постоянной работы над своими навыками.
- Не спешите зубрить матчасть – для первых шагов в профессии школьных знаний будет достаточно.
- На время учёбы подстрахуйте себя финансовой подушкой безопасности, которая поможет вам дожить до окончания курсов.
- Поддержка близких важна всегда. Делитесь тем, что с вами происходит, и не стесняйтесь просить совета, если он вам нужен.
- Если есть финансовая возможность – найдите преподавателя или консультанта, который сможет решить трудную задачу вместе с вами.
- Не зацикливайтесь на сложной теме – пропустите её, вернитесь к ней позже и попробуйте еще раз.
- Лень, стресс и апатия не приговор, а вещи, с которыми можно и нужно бороться. Найдите самый подходящий способ справляться с этим, но не теряйте связь с реальностью.
- Найдите в интернете список вопросов для junior-разработчика по вашему языку программирования. Удалось на них ответить – собеседуйтесь.
- Если вас не взяли с первого раза, – продолжайте обучаться и готовиться к следующему собеседованию.
- Не ходите во фриланс: процесс обучения на задачах будет долгим, сами знания – неполными, а решения не всегда верными. Начинать лучше рядом с опытным разработчиком, который время от времени будет наставлять вас.
Теперь я могу сказать по своему опыту: начинать никогда не поздно. Надеюсь, моя история сподвигнет вас на первый шаг к цели!