Сферу IT любят за интересные задачи, хорошие зарплаты, плюшки-бонусы, отличные офисы или, наоборот, за возможность удалёнки. Но диплом о высшем образовании не гарантирует, что вам легко достанется желаемая должность. Вуз даёт основу и старт, всё остальное зависит от вас самих. В этой статье рассказываем, что можно и нужно делать начиная с первого курса, чтобы найти работу мечты во время учёбы или сразу после выпуска.
За 2018 год мы взяли в команду десять студентов и выпускников, провели две практики и два курса семинаров по бэкенд и фронтенд разработке. В 2019 году придут ещё двенадцать практикантов. Рекомендации в этой статье — это наш опыт и критерии, по которым мы отбираем ребят в команду.
Определитесь с направлением
Время, когда разработчик сам делал прототипы, придумывал дизайн и писал код, ушло. Сегодня ценятся узкие специалисты: фронтенд и бэкенд-разработчики, аналитики данных, тестировщики, технические писатели, продакт-менеджеры и прочие. Выбор огромный! Чтобы понять, что вам ближе, читайте книги и блоги с опытом разработчиков, отмечайте интересное, участвуйте в хакатонах, сделайте проект, в котором все роли возьмёте на себя — от прототипа до бэкенда. Никто не говорит, что это навсегда, в любой момент своей карьеры вы можете заняться чем-то новым.
Иногда разработчики делают бесплатные вводные занятия к платным курсам. Например, у Яндекс.Практикум можно пройти двадцать часов обучения по трём специальностям: веб, фронтенд и аналитик данных.
Помните: чем раньше выберете направление, тем сильнее прокачаетесь. Вы будете готовы к работе больше, чем среднестатистический выпускник.
Изучайте технологии и прокачивайте навыки самостоятельно.
В вузе преподают на Windows, хотя её век ушёл, SQL всё ещё из 1999, а на дворе 2019. Догонять разницу всегда придётся самому. Ниже несколько актуальных технологий:
- Подходы к разработке: экстремальное программирование, система непрерывной интеграции CI и система контроля версия Git.
- Языки программирования, фреймворки и библиотеки: С ++, Python, jаvascript, TypeScript, Angular, React и др.
- Технологии: LXD, Docker-контейнеры, кластеры Amazon и Google Cloud, мониторинг Docker Swarm.
- Навыки тестирования: ручное, автоматизированное, нагрузочное, приёмочное, AB, SHADOW, TDD и т. д.
- Прочее: работа в команде, оценка и декомпозиция задач, методы управления проектами Scrum и Kanban, KPI.
Технологий — море, а их сочетаний ещё больше. Знать всё невозможно, но иметь представление полезно как минимум, чтобы поддерживать разговор с бэкенд разработчиком, если вы занимаетесь фронтендом, и наоборот.
Как учиться самому? Когда в вуз приходят преподавать разработчики из IT-компаний, не пропускайте. У каждого инструмента есть мануалы и документация, гуглите. В свободном доступе можно найти записи полноценных курсов, например, Технопарка Mail.ru Group и МГТУ им. Баумана. Если есть возможность платить за обучение, загляните на Coursera, Академию Яндекса и Geekbrains. Учитесь даже тогда, когда едете в автобусе. В приложении Sololearn, например, вы найдёте краткие курсы почти по любому языку программирования с тестированием, практикой, сертификатами и даже ачивками.
Если есть вопросы и сомнения, всегда можно попросить совета у старших товарищей.
Помните: программа вуза несовершенна, ответственность за знания только на вас. Выберите направление, создайте план, по которому постепенно будете осваивать инструменты, языки и т. д.
Делайте проекты
Теория — это важно, но каждую изученную технологию, даже самую небольшую фичу, необходимо закреплять качественной практикой. В конце концов, вам нужен именно опыт разработки и проекты, которые можно показать работодателю.
Где брать проекты? Лабораторные или курсовые работы — отличное поле для практики. Помимо этого, делайте сайты или разрабатывайте приложения для друзей и знакомых, а если никто не просит — фантазируйте. Пишите компьютерные игры, это и увлекательно, и полезно, так можно попробовать себя в сложных дисциплинах: разработке физических движков или работе с 3D-графикой. Собирайте команду на хакатоны или проходите курсы, результаты которых можно добавить в портфолио. Например, в Хекслет вы можете выбрать специализацию и за полгода обучения получить четыре реальных проекта.
На старте кода в стиле «работает, и ладно!» не достаточно, вникайте в особенности, ищите примеры на GitHub, GitLab или Medium. Изобретайте «велосипеды», так вы быстрее разберётесь в предметной области. В каждом проекте, изучая новую технологию, бросайте себе вызов. Не стоит стесняться тренировать инструменты, которые в спецификациях значатся «под разработкой» или «экспериментальное».
И только когда будете быстро делать проекты, почти не обращаясь к Google, Toster и StackOverflow, — можно пытаться зарабатывать. Идите на биржи фриланса и в агентства города.
Помните: пока вы спите и отсиживаетесь на парах, кто-то кодит и прокачивает портфолио.
Учите английский язык
Бо́льшая часть технической документации — на английском. Учебники и другую профессиональную литературу переводят с запозданием или не переводят вообще. Кроме того, на английском больше информации, и найти решение по англоязычному запросу проще. У ПО обычно несколько языковых версий, неплохо бы их понимать, а иногда и общаться с пользователями. Кажется, уже этих причин достаточно, чтобы захотелось подтянуть английский язык!
Как учить? Здорово, если в вузе хорошо преподают английский и у вас не осталось проблем со школьных времён. Если нет, можно пойти на курсы или заниматься с преподавателем по скайпу, читать книги, статьи и документацию ко всем технологиям только в оригинале. Сначала придётся проверять в словаре каждое слово, но постепенно это пройдёт. И самая приятная часть — играйте на ПК и консолях без перевода и смотрите видео в оригинале. Это даст результат! В идеале нужно подтянуть уровень до В2 (средне-продвинутый) или С1 (продвинутый) и подтвердить это сертификатом.
Помните: без английского в IT совсем никуда. Хорошая новость — многим технический английский даётся легче, чем разговорный или деловой.
Прокачивайте soft skills
Сейчас в IT принято делить навыки на «жёсткие» (hard) и «гибкие» (soft). Первые — это профессиональные умения для решения технических задач: владение C++, Java, jаvascript, например. Ко вторым относят коммуникации, целеполагание, стресс-менеджмент, лидерство.
Зачем нужны гибкие навыки? Как минимум затем, чтобы общаться с командой и доносить до неё информацию. А ещё, чтобы планировать время и задачи, ставить эффективные цели, быть ментором и управлять эмоциями. Soft skills помогут выступать на конференциях, рассказывать о технических победах и продуктах, над которыми вы работаете.
Помните: сегодня большинство продуктов разрабатывают в командах. Быть командным игроком, который не умеет слушать, задавать вопросы и доказывать свою точку зрения, очень сложно. Вуз — отличное место, чтобы начать прокачивать гибкие навыки.
Станьте частью профессионального сообщества
Оставаться всегда «на волне» вам помогут новости из мира IT, статьи и переводы обо всём, что связано с разработкой. Их можно найти у Tproger и на Хабре, читайте регулярно. Подписывайтесь на сообщества IT-компаний, чтобы получать полезные материалы, информацию о стажировках и приглашения на мероприятия. Не ограничивайтесь местными компаниями и помните, что сейчас IT-специалисты нужны не только разработчикам, но и банкам, и мобильным операторам и т. д. Они ездят по стране с хакатонами в поисках талантов. Локальные сообщества — ещё один источник знаний и связей.
Помните: вы хотите работать в IT, где изменения происходят очень быстро, а конкуренция очень высокая. Вы должны постоянно развиваться и вращаться в сообществе.
Общайтесь с работодателями
IT-компании, как правило, на виду у студентов, им нужны лучшие кадры. Они ходят в университеты на ярмарки вакансий, приглашают на практику, читают лекции и ведут семинары. Отмечайте такие компании, составьте список интересных работодателей.
Создайте резюме на HeadHunter с тегом «Начало карьеры», тогда вам будут приходить подборки вакансий для начинающих специалистов. Из них как минимум можно понять, чего именно ждут работодатели. Откликайтесь и ходите на собеседования. Просите тестовое задание и отнеситесь к нему серьёзно, это ценный опыт. Если не получилось с первого раза, попросите дать вам обратную связь о плюсах и минусах решения, чтобы сделать выводы и прокачать слабые стороны. Кроме того, что вас запомнят, вы получите опыт прохождения собеседований и в будущем не будете волноваться.
Кстати, даже если открытой вакансии или объявления о наборе на практику нет, всё равно напишите письмо менеджеру по персоналу и отправьте резюме. Мы иногда берём людей, если они впечатлили, даже когда не планировали искать специалиста.
Помните: присматриваться к работодателям и вакансиям нужно с первых курсов. Ваша работа на период учёбы — подготовить себя к требованиям рынка.
Будьте честными
Да, вначале кажется, что опыта недостаточно. Это нормально! Указывайте в резюме те навыки, которыми действительно владеете, и те технологии, с которыми работали, и на каком уровне с ними знакомы. На собеседовании обязательно об этом спросят, и преувеличить не получится. Лучше честно сказать, с чем не сталкивались и о чём не знаете.
Помните: работодатель понимает, что вы начинающий. На собеседовании он хочет понять, впишитесь ли вы в команду и для какого из его проектов подойдёте.