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

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

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

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

Более того, когда я подал заявку на должности начального уровня, я заметил, что несколько компаний в Новой Зеландии предпочитают адекватный опыт работы с C ++ или C #, а также с .NET framework - даже для выпускников. Это странно. Я выбрал неправильные курсы для получения степени? Это была моя первая мысль. Однако я понял, что это не оправдание для меня. Итак, я пошел изучать программирование на C # и изучать платформу ASP.NET.

Первоначальные интервью

Через две недели мне поступило всего два звонка - один на роль разработчика iOS, а другой на роль разработчика программного обеспечения для повышения квалификации на C #.

Во-первых, у меня был некоторый опыт программирования на Swift и iOS во время краткой стажировки, на которой я программно создавал пользовательские интерфейсы iOS, а также использовал REST API для отправки и получения данных с внутреннего сервера. После этого я даже написал статью , которая некоторое время назад была в списке рекомендаций Medium и была принята в Better Programming.

Я просмотрел веб-сайт компании и, как обычно, сделал некоторые заметки и вопросы. Я также подготовил несколько поведенческих и технических вопросов, на которые я взял ссылку из «Cracking the Coding Interview» - оно очень информативное, особенно для новых разработчиков, - и пошел на собеседование для роли разработчика iOS.

Первый раунд был очень непринужденной беседой, в которой HR также задавали некоторые поведенческие вопросы. Я пошел домой, узнав больше о корпоративной культуре, в ожидании еще одного конкурса на второй раунд. Во втором раунде собеседования проводилась оценка на месте в течение всего дня. Сначала мне было поручено разработать экраны для приложения, которое позволяет пользователям отслеживать свои складские запасы и заказывать новые товары для пополнения пустых запасов. Затем последовал настоящий технический тест, в ходе которого я должен был собрать то, что я разработал, за 6 часов. В тот момент для меня это была непростая задача, так как я должен использовать Storyboard, а не делать что-то программно. Хотя раскадровку легко использовать и программировать, я действительно боролся с частью представления таблицы, где мне пришлось добавить запись в представление таблицы для каждого элемента в списке. Мне потребовалось много времени, чтобы понять это, проконсультировавшись с Google, StackOverflow и Youtube. Несмотря на то, что оценщик сказал мне, что это нормально, что не закончить весь продукт, и успокоил меня, сказав, что многие люди тоже не могут закончить вовремя, я хотел закончить его.

Увы, 6 часов пролетели в мгновение ока; Я еще не завершил оценку. Я пошел домой, чувствуя разочарование в себе, и тут у меня в голове всплыло много мыслей о том, что, если. Однако прошлое осталось прошлым, и мне, тем не менее, пришлось двигаться дальше. Как и ожидалось, я не попал на роль iOS; По отзывам, у меня были отличные коммуникативные навыки, но мои технические навыки еще не на должном уровне. Выпотрошенный, я двинулся дальше.

Второе интервью с дипломированным разработчиком программного обеспечения было полной катастрофой - кошмаром. Я был недостаточно подготовлен и слишком сосредоточен на алгоритме; Первоначальным тестом была оценка программирования, подобная вопросам о Hacker Rank и Leet Code. Я слишком увлекся мыслью, что технические вопросы собеседования также будут основаны на алгоритмах и структуре данных. Я совершенно не ожидал, что компания задаст вопросы относительно SQL и базы данных. Полный беспорядок с моей стороны. Я сильно ошибся в том конкретном вопросе, как создать таблицу символов и заполнить ее (да, это было так просто) . С этого момента все пошло под откос; уровень моей уверенности упал, когда в следующем вопросе меня спросили, как я могу использовать e xecute (SQL) для выполнения команд SQL в Python. Оглядываясь назад, можно сказать, что вопросы были такими простыми и беспощадными, и я должен был пройти собеседование, чтобы повысить свои шансы на работу. Я даже отлично справился с вопросами поведенческого собеседования, и, как цитирует HR, «удивительно, что компания не будет продолжать работу над моим заявлением».

Бездонная яма

После испытаний я получил только предварительные отказы; нет даже шанса на интервью. Так продолжалось почти два месяца. Это было для меня очень разочаровывающим, поскольку я не ожидал, как трудно мне будет преодолеть этот барьер, чтобы войти в рабочую силу, особенно в ИТ. По общему признанию, депрессия медленно подкрашивалась ко мне, и я был не в настроении делать что-то продуктивное, связанное с выбором моей карьеры. Я все глубже погружался в пропасть, и с каждым днем ​​мне становилось все труднее получать мотивацию. Я даже подумывал о том, чтобы устроиться на работу на неполный рабочий день и просто жить днями. Однако один мой хороший друг посоветовал мне тратить время на создание побочных проектов, решение большего количества вопросов по Leet Code, вместо того, чтобы делать что-то, что не способствовало бы моей реальной карьере. Лучший совет на свете. Если бы не он, я бы и сейчас застрял на работе с частичной занятостью. Я не говорю, что работать неполный рабочий день плохо, но тратить время на то, что не добавляет ценности моей карьере, в то время не входило в мой список приоритетов; Я не просто хотел получать деньги.

Я ударил себя по лицу и поднялся. Я могу это сделать, я могу устроиться на работу разработчика. Впоследствии я потратил время на подготовку и удостоверился, что я настолько хорошо подготовлен к любым будущим собеседованиям, насколько мог. Я взял Docker и научился размещать свой собственный сайт и сервер. Я преобразовал свой университетский проект, локальное веб-приложение для обзора путешествий, которое работает аналогично TripAdvisor, но в меньшем масштабе (и менее красиво), в удаленное веб-приложение. Я разместил сервер и базу данных MySQL на Heroku и развернул веб-приложение через Netlify. Внешний интерфейс был построен с использованием Vue.js и Node.js / Express.js для внутреннего интерфейса. Не стесняйтесь получить доступ к базе кода в моем репозитории GitHub.

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

Конец был в поле зрения

Затем настал тот знаменательный день, когда я получил ответ от компании, которая в конечном итоге стала моим работодателем. Первоначальная оценка заключалась в создании страницы сведений о продукте для веб-сайта электронной коммерции. Это была роль фронтенд-разработчика и предпочтение отдавалось кандидатам с опытом работы с React.js. Я подумал, что для того, чтобы уравнять правила игры или даже получить преимущество над другими кандидатами, мне нужно изучить React.js. Хотя я мог бы просто сделать это с помощью HTML, CSS и Vanilla JavaScript, я хотел показать компании свою готовность изучить новую технологию.

Я пошел на Udemy, чтобы купить курс на React.js и начал учиться. У меня было всего 3 часа, чтобы завершить оценку, и, хотя крайнего срока не было, мне посоветовали закончить ее как можно скорее. Я потратил 2 часа на изучение основ фреймворка при настройке скелета для этого проекта. Мне пришлось преодолеть разрыв между веб-разработкой с использованием фреймворка React.js и без него. Сначала это была крутая кривая обучения, но с моими базовыми знаниями о компонентах из Vue.js и некоторой помощью из онлайн-статей и руководств мне удалось создать веб-страницу за три часа. Я разместил его здесь и зафиксировал код в моем репозитории GitHub, чтобы компания могла легко получить доступ к моему проекту.

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

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

Интервьюер задавал мне технические вопросы о React.js, а также о том, как работают адаптивные веб-макеты. За ними следовали некоторые обычные поведенческие вопросы, прежде чем подошла моя очередь задавать им вопросы. У меня все прошло хорошо, так как я мог довольно легко ответить на большинство вопросов. Я чувствовал себя хорошо после собеседования, но все же не осмеливался возлагать большие надежды на получение работы. В финальном раунде участвовал один из содиректоров компании; это должно было рассказать мне больше о культуре и том, как все работает в компании.

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

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

Ключевые выводы

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

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

"Почему мы падаем? Чтобы мы могли научиться брать себя в руки », - цитирует Альфреда в« Бэтмен: Начало »2005 года. Жизнь не всегда гладкая. В одно мгновение ты можешь быть королем, а в следующий - крестьянином. Все, что я говорю, это то, что отказ - это часть процесса. Он представляет собой неуверенность в компании при принятии решения о найме вас. Позвольте мне рассказать вам об этом:

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

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

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

Заключение

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

«Жизнь - это марафон, а не спринт».

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

Вы были потрясающей публикой. Ваше здоровье!