7 ключевых шагов к получению первой работы в области разработки программного обеспечения

Я закончил учебный курс по веб-разработке в 2017 году. У меня не было опыта работы инженером-программистом или в технической сфере. Я начал подавать заявки на работу в октябре и начал работать полный рабочий день в качестве Front End Engineer в декабре.

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

1. Составьте портфолио из нескольких выдающихся проектов.

Я просмотрел резюме других выпускников учебного лагеря, где они перечислили только один или два частично завершенных проекта. Они не обязательно должны быть идеальными (моя глючная игра Phaser.js - нет), но они должны показывать прогресс, достигнутый вами как разработчиком программного обеспечения.

Это означает, что если вы говорите, что знаете React, у вас должно быть хотя бы одно приложение React в вашем портфолио. Если у вас нет опыта работы в качестве разработчика, важно иметь портфолио как минимум из трех проектов . Это также не должны быть учебные пособия - проявите творческий подход! Чем интереснее для вас проект, тем больше работы вы в него вложите. И тем более страстным вы будете звучать, когда расскажете об этом интервьюеру. (Бонусные баллы, если вы тоже создаете свой собственный сайт-портфолио!).

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

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

Что касается Git, то все мои интервьюеры были впечатлены тем, что у меня был опыт использования Git для контроля версий и совместной работы. Рекомендую ознакомиться с Git + Github . Если вы никогда не использовали Git для совместной работы в команде, я определенно рекомендую сделать ваш первый пиар для проекта с открытым исходным кодом. Хорошие привычки Git также имеют большое значение. Один из моих собеседников просто просмотрел мою историю коммитов, чтобы увидеть, как я «думаю», и я был очень рад, что это был проект с хорошими сообщениями о коммитах.

2. Подготовьтесь к техническому собеседованию.

Есть много проблем с тем, как проводятся технические собеседования, но факт остается фактом: для многих компаний «белая доска» никуда не годится. Есть масса отличных ресурсов, чтобы попрактиковаться в этом (Pramp, InterviewCake и, конечно, Cracking the Coding Interview, чтобы назвать несколько).

Я должен признаться, что я ОЧЕНЬ борюсь с этим - мой разум теряет сознание под давлением. Но самое главное - тренироваться думать вслух . Полная неловкая тишина во время собеседования - это последнее, чего вы хотите, и чем больше вы думаете вслух, тем больше интервьюер будет знать, как далеко вы продвинулись (и сможет лучше помочь вам, если он так склонен!) .

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

Не все компании будут просить вас заняться доской, но почти все зададут вам несколько основных технических вопросов, которые я называю «пустяками» из-за отсутствия лучшего термина. Что касается вакансий, на которые я подавал заявку, эти вопросы обычно касались HTML, CSS, JavaScript и производительности в Интернете. Есть также много онлайн-ресурсов со списками общих вопросов - я просто сделал кучу карточек и потренировался!

Есть несколько тем, в которых должен быть комфортно любой интерфейсный или полный веб-разработчик. К ним относятся цикл событий в JS, обещания и async / await, блочная модель CSS, веса специфичности CSS и способы ускорения времени загрузки веб-страницы. Мне не раз задавали вопросы обо всем этом.

3. Определите, какую компанию или роль вы хотите

В начале своего поиска работы я совершил ошибку, завязав очень широкую сеть с мышлением «нищих, которые не могут выбирать». Но где бы вы ни оказались, большую часть времени вы будете посвящать работе. Какой в ​​этом смысл, если вы едва ли испытываете какое-либо волнение по поводу похода в офис или, что еще хуже, боитесь этого?

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

  • Возможности решать интересные мне сложные задачи
  • Хороший баланс работы и личной жизни
  • Возможности работы с современным технологическим стеком

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

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

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

4. Будьте организованы и отслеживайте все

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

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

Вот ссылка на шаблон, который я использовал. (Для всех ботаников, не работающих с электронными таблицами, Airtable похожа на любовное дитя электронной таблицы Excel и реляционной базы данных.) Одна вещь, которая мне нравится в Airtable, - это возможность связывать записи в разных таблицах. Это позволило мне вести подробный список контактов компании и отдельных лиц на странице «Люди» и компаний - на другой.

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

Например, вот распределение моих заявлений о приеме на работу после того, как я получил работу:

Из 40 присланных мною заявлений я не получил ответа от ~ 50%, а предложения о работе - от 20%. Неплохо, если учесть дробовик, который у меня был при отправке заявок. Но все же не так высоко, как хотелось бы.

Но если мы посмотрим на вакансии, на которые мне довелось пройти собеседование:

Вещи выглядят намного лучше. У меня 50% предложения. Что касается четверти вакансий, на которые я проходил собеседование, я все еще находился между раундами собеседований, когда принял свое предложение о работе. Так что они тоже могли бы превратиться в предложения, если бы я продолжил с ними интервью. После собеседования мне отказали только в одной компании (скорее всего, потому, что я засмеялся, когда узнал, что их средняя продолжительность рабочей недели составляет 60+ часов - довольно неудобное интервью!).

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

Это подводит нас к следующим нескольким пунктам ...

5. Напишите содержательное резюме и сопроводительное письмо.

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

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

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

Я мог бы написать целую статью только о резюме. Но в целом вы должны выделить наиболее важные технические аспекты вашей предыдущей работы. Например, я работал в некоммерческих организациях, занимающихся разработкой и сбором средств - в названии должности нет крика «веб-разработчик». ОДНАКО, я постарался выделить свою работу по переносу данных и управлению программным обеспечением для сбора средств. Кроме того, я разместил свои три самых актуальных портфельных проекта в верхней части своего резюме. Таким образом, мои технические способности были продемонстрированы ДО моего стажа работы.

6. Сеть!

Итак, я УЖАСНО в сети. Я застенчивый интроверт, и мне трудно общаться в большой группе. Но даже для меня это было возможно. Я тащился на местные встречи, а иногда даже весело болтал с другими технарями.

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

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

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

7. Не соглашайтесь на меньшее, договаривайтесь, договаривайтесь, договаривайтесь.

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

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

Поэтому всякий раз, когда меня спрашивали, каковы мои требования к зарплате, я отвечал: «Мой целевой диапазон зарплаты составляет от X до X долларов. Однако деньги - это не самое главное. Я действительно ищу компанию, в которой я могу продолжать расти и вносить свой вклад в команду ». По сути, это был мой способ заявить свою целевую зарплату самым вежливым способом, который я знал. Я указал диапазон, чтобы выразить свою гибкость, но убедился, что нижняя граница диапазона - это то, что меня на 100% устраивает.

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

Вывод

Спасибо всем, кто дошел до этого! Я надеюсь, что вы нашли это полезным при поиске работы. Мой последний совет: не беспокойтесь о том, чтобы просто найти работу. Спрос на программистов огромен даже за пределами крупных технологических центров. Если вы учились и подготовились, вы сможете получить работу.

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

Будьте добры к себе и берегите себя. Удачи!

PS Если вы хотите узнать немного больше о моем личном опыте собеседований, а также о том, где я наконец оказался, ознакомьтесь с моей статьей «Собеседование в качестве инженера-программиста в Niche».