За четыре года обучения и изучения компьютерных наук я извлек много уроков. От написания своего первого заявления «Привет, мир» до прохождения летней стажировки я усвоил важные советы и уловки для проникновения в программную инженерию. Мне удалось пройти стажировку по разработке программного обеспечения в Intuit, LinkedIn и Google, и в этом году я вернулся в Google на полную ставку.

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

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

  • Вам нравится создавать новые вещи?
  • Вы хотите расширить свою базу знаний и узнать что-то новое?
  • Вам нравится решать проблемы, творчески мыслить и отправляться в неизведанное?

Если да, то вперед.

Итак, вот краткий график того, как проникнуть в разработку программного обеспечения!

1. Пройдите вводный курс

Моим введением в информатику стала компания AP Computer Science. Многие университеты предлагают вводный курс по информатике, и это может помочь вам быстро понять, подходит ли вам программирование. Обычно эти курсы проводятся на Java и Python, которые являются отличными языками для изучения.

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

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

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

2. Создайте свой собственный проект

Классы больших проектов

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

Хакатоны

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

Если вам сложно посещать хакатоны, просто участие в проекте с открытым исходным кодом может помочь вам продемонстрировать свои знания рекрутерам.

3. Начать подготовку к собеседованию

Вот основные ресурсы, которые я нашел очень полезными для подготовки к собеседованию:

  • LeetCode: массивное хранилище вопросов и ответов с интегрированной средой разработки и средой тестирования.
  • Cracking the Coding Interview: Я настоятельно рекомендую прочитать эту книгу вместе с LeetCode, это отличный способ изучить основы технических вопросов на собеседовании.
  • Онлайн-школы программирования: Я знаю, что полезны такие ресурсы, как FreeCodeCamp, Team Treehouse, CodePen, Udemy и Udacity.
  • Подготовка без программирования: подготовка к вопросам поведения, подготовка личного веб-сайта, размещение ваших проектов на GitHub.

4. Поиск работы

Поиск работы по своей сути является стрессом - вот несколько советов, как конкретно найти стажировку в SWE или работу на полный рабочий день:

  • Подайте заявку в как можно большем количестве мест. В худшем случае вы получите больше знаний о компании и сможете практиковать свои навыки.
  • Всегда проводите собеседование. Кто-то сказал мне это некоторое время назад, и это имеет смысл - вы хотите оставаться свежими в своих знаниях и быть острым.
  • Обращайтесь с отказом аккуратно. Никогда не знаешь, получится ли у тебя подать заявку повторно (шансы на это очень высоки).
  • Составьте сетку компаний, текущего прогресса, контактов и т. д. Это поможет вам оставаться организованным и готовым к работе с приложениями.

Предложение и переговоры

Сроки предложения

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

Продление предложений

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

Отклонение предложения

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

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

Оценка предложения

Поздравляем с предложением! Вот несколько вещей, которые следует учитывать при оценке предложения о работе:

  • Финансовый пакет. Заработная плата - это лишь один из компонентов вашего финансового пакета. Вы можете разбить это дальше на: бонус за подписку, разницу в стоимости жизни и опционы на акции.
  • Развитие карьеры: Насколько хорошо эта компания выглядит в моем резюме? Сколько я узнаю? Компания растет?
  • Стабильность компании. Всегда полезно знать, стабильна ли работа. Вот некоторые вопросы, которые вы можете задать здесь: Сможете ли вы быстро найти новую работу? Если да, то стоит ли рисковать и устраиваться на менее стабильную работу?
  • Фактор счастья. Культура компании, баланс работы и личной жизни, менеджер, продукт и товарищи по команде.

Переговоры

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

  • Знайте, чего вы хотите: всегда приходите на встречу / встречу для переговоров, точно зная, что вы ищете. Если вы скажете рекрутеру, что хотите большего, он или она просто поставит вам нижнюю границу наивысшего диапазона, а не даст вам то, что вы действительно хотите.
  • Высокий балл. Просите небольшую сумму больше, чем вы хотите. Это связано с тем, что часто компании будут пытаться встретиться с вами посередине, таким образом удовлетворяя ваш первоначальный запрос.
  • Используйте правильный канал. Хотя я считаю, что по телефону лучше всего вести переговоры, если вам удобнее общаться по электронной почте, определенно попробуйте это вместо телефонного звонка.

Будьте в курсе

  • Reddit Threads: отличные темы по программированию, Java и Python
  • Hacker News: действительно отличный ресурс, чтобы быть в курсе последних событий в сфере высоких технологий.
  • CodePen: отличный ресурс для знакомства с передовыми методами программирования.

Приложение

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