От кулинарии к программированию

Как я прошел путь от линейного повара до инженера-программиста менее чем за год.

Введение

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

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

Счастливый факт №1: мой наставник нашел меня.
В большинстве статей, посвященных младшим разработчикам, упоминается необходимость иметь наставника, человека, который прошел через трудности роста и может направлять вас в ваших поисках. Для этого есть веская причина. Они могут уговорить вас, когда вы в стрессе и хотите разбить свой компьютер. Они могут показать вам несколько полезных советов или указать на умирающие языки, чтобы не учить их. Все, что полезно в ландшафте бесконечной информации. Что делает мою историю еще более уникальной, так это то, что до встречи с Тайлером, моим рыцарем-программистом в сияющих доспехах, я даже не знал, что хочу стать программистом.

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

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

Счастливый факт №2: Портленд, штат Орегон
Моя кулинарная карьера привела меня в Портленд, штат Орегон. Подробности моей миграции не относятся к теме этой статьи, но важно то, что Портленд выиграл у нескольких других городов. Очевидно, что если бы мы не приземлились в Портленде, я бы не связался с Тайлером, но помимо этого техническое сообщество Портленда велико. Мы зажаты между Сиэтлом и Сан-Франциско, и мы стали популярным пулом инженеров-программистов. Все больше компаний обращают внимание на Портленд, потому что у нас много инженеров, а стоимость жизни не взлетела до уровня упомянутых выше городов. Хотя я могу столкнуться с большим количеством инженеров, чем в среднем по городу, я постоянно вижу открытые вакансии на местном уровне.

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

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

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

Счастливый факт №3b: я на самом деле являюсь младшим разработчиком.
Мой босс не только был готов нанять кого-то с моим опытом, но и искал кого-то для обучения. Короче говоря, мне не нужно было лгать о том, кто я такой. Меня поощряют задавать вопросы и возиться с кодом. В течение первых шести месяцев адаптации у меня было бесчисленное множество возможностей исправить мелкие ошибки или провести рефакторинг старого кода. И самое приятное то, что в течение моей рабочей недели у меня есть время, чтобы пройти дополнительные курсы для дальнейшего обучения. Большая часть моего обучения происходит с погружением в наш исходный код, но приятно получать деньги за продолжение своего образования. К сожалению, таких младших должностей становится все меньше, потому что они дают прекрасную возможность сделать разработчиков лучше. И когда разработчики становятся лучше, то же самое делают и их компании. Я просто счастлив, что смог найти такую ​​роль. (Мелисса Макевен отлично рассказала об умирающем здесь младшем Деве. Это стоит прочесть).

Счастливый факт № 4: Время решает все
Из более чем 60 вакансий, на которые я откликнулся, в одной из двух упоминался термин junior, и это было размещено в Интернете только в течение 3 дней. Это была глупая удача, что я случайно просматривал сайты с вакансиями и наткнулся на это. Помимо этого крайне важного слова младший, это также была одна из немногих публикаций, которые не были написаны по пунктам отделом кадров. Если вы подавали заявку на должность инженера-программиста, вы видели их: 5 лет Javascript, 3 с лишним года React, 5 лет CSS, Agile-опыт и т. д. Немного о характере или нематериальных качествах, которые делают кого-то ценным сотрудником. Это довольно обескураживающе, как начинающий программист. Как я могу получить этот опыт, если я только начинаю? Тем более я считаю свои счастливые звезды тем, что случайно наткнулся на объявление о вакансии, в котором были такие строки, как «вы не знаете всех этих языков, но, по крайней мере, заинтересованы» или «вы можете не знать ответ, но вы знаете, как это сделать». найти его».

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

1. Поиск наставника.Возможно, у вас не было наставника, как у меня, но я встречал много профессиональных разработчиков, которые готовы дать совет, взглянуть на код или по крайней мере, рассказать об их истории и борьбе. Отправляйтесь на встречу, обратитесь к переполненному стеку или тому подобному и посмотрите, кого вы можете найти.

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

3. Встречи. Посещение встреч по программированию полезно по целому ряду причин. Вы можете общаться с другими многообещающими разработчиками, а также с более опытными программистами. Вы можете поделиться своим опытом и трудностями. У некоторых из них могут быть лиды по открытию позиций. И вы сможете начать говорить о коде. Это было суперважно для меня. Будучи самоучкой, я много работал, просто читая документацию и следуя онлайн-урокам. Я жил в пузыре и даже не знал, как произносить некоторые термины вслух. JSON, GraphQL, MySQL? Ничто так не заставляло меня чувствовать себя как рыба в воде, как когда я был на встрече, и кто-то сказал «Cee Sharp», и я подумал: «О, вот как вы говорите C#, это имеет смысл». В конечном счете, чем комфортнее вы болтаете о коде с людьми в такой обстановке, тем комфортнее будет говорить о вашем коде на собеседовании.

Опыт у всех разный. Та стратегия, которая сработала для меня, может оказаться не лучшей для кого-то другого. Пишу это, потому что знаю, что таких, как я, много. Ваш опыт может быть ограничен, но ваш энтузиазм и страсть к программированию велики. Были месяцы, когда я не думал, что когда-нибудь получу возможность стать разработчиком на полную ставку. Теперь, когда я здесь, я хочу передать надежду, что если кто-то вроде меня сможет заставить это работать, то сможет любой. Желаем всем вам удачи!