Как бэкенд-разработчику подготовиться к техническому интервью в большую компа­нию

4
Аватар автора

Мария Беликова

нашла ответы

Страница автора

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

🧮 Потренировать алгоритмы и структуры данных

Если только погружаетесь в тему, обратите внимание на бесплатные курсы по алгоритмам и структурам данных от Coursera. А если есть бэкграунд, потренируйтесь на задачах от LeetCode и HackerRank. Посмотрите, насколько быстро вы их решаете по сравнению с другими пользователями, — это поможет оценить готовность к собеседованию

📖 Освежить теорию по языкам программирования

На собеседованиях спрашивают, как работает тот или иной язык, его основные структуры. Например, по Python часто задают вопросы о контекстных менеджерах и декораторах — потренируйтесь делать их самостоятельно. Базовая теория для питонистов есть на Stepik, тонкости — в документации. Для Java доступен похожий курс и своя документация

❓ Подготовиться к вопросам про базы данных

Обширная тема со множеством теоретических аспектов. Stepik выложил курс с основами, также прочитайте статьи про ACID и уровни изоляции, вспомните индексы в SQL Server. Мидлов часто спрашивают, как проверять план выполнения запросов к базе данных через explain, а именно как их оптимизировать. Чтобы подготовиться, изучите документацию PostgreSQL и MySQL

🔍 Тщательно изучить фреймворки

Как правило, работодатель ищет кандидата под конкретный стек и указывает знание конкретных фреймворков. Наиболее популярные, к примеру, для Python — FastAPI и Django, для Java — Spring. Перед собеседованием обязательно освойте или повторите фреймворки, базовые для вашей специализации

✍️ Отточить написание юнит-тестов

По умению проверять собственный код в компании понимают, как соискатель создает тестовые сценарии и пользуется ими, тщательно ли проверяет функциональность. Лучшие подходы описаны в статье на GitHub, а конкретные практики на примерах кода на Java посмотрите в руководстве от QaRocks

💡 Быть готовым к вопросам про многопоточность и асинхронность

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

📚 Прочитать про SOLID, KISS, DRY, YAGNI

Принципы, о которых любят спрашивать на техническом собеседовании: они основополагающие в разработке. От вас просто требуется понимание того, как расшифровывается каждая буква и в чем заключается суть аббревиатуры. Изучите статью с краткими пояснениями от Skillbox или более подробную на «Хабре»

🤔 Разобраться с Kubernetes

Освоив технологию, вы поймете, как работать с контейнеризацией, управлять приложениями и масштабировать их. Этот пункт важен только на технических интервью в компаниях с развитой инфраструктурой. «Слёрм» опубликовал плейлист, где Kubernetes объясняют с точки зрения разработчика

🤿 Углубиться в системный дизайн

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

👀 Посмотреть, что требует работодатель

Некоторые компании сами публикуют ресурсы для подготовки к техническому собеседованию. Например, такой список собрал Т⁠-⁠Банк. Не пренебрегайте рекомендациями, с ними понятнее, к чему и как подготовиться

📚 Больше о карьере и образовании

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

Больше пользы по теме:

Новости из мира образования, советы по карьере и учебе, вдохновляющие истории — в нашем телеграм-канале: @t_obrazovanie

Мария БеликоваЧто еще сделать перед техническим интервью?
  • Забаненый за правдуОбзавестись знакомыми, которые вас в компанию протащат))7
  • Денис Ромашин> Прочитать про SOLID, KISS, DRY, YAGNI В целом да, однако эти принципы достаточно размыты (конкретно последние три). В большинстве случаев все равно приходится руководствоваться здравым смыслом нежели строго следовать принципам. Банальный пример - нарушение SRP в том же Django в части ORM, про который выше как раз написано, вы же не будете в соответствии с принципами использовать в джанге ту же алхимию. > Разобраться с Kubernetes Как будто бы это конфликтует с пунктом про "разобраться с тем, что требует работодатель". Кмк корректнее будет "разобраться с основными принципами и подходами развертывания приложений, а также CI/CD (который кстати как будто бы забыт)" Также как будто бы не хватает очень важного пункта - подготовить вопросы к собеседующему. Ведь очень часто описание вакансии не дает ответа на то, например: чем вы будете конкретно заниматься, какой процент продуктовых задач относительно техдолговых, как выстроен процесс планирования, какой конкретно стек(!) у вас будет (вполне возможно что в описании вакансии Java, на деле половину кода вы будете писать на C++ потому что "так исторически архитектурно сложилось"). Ну и в целом будет полезно предварительно поискать информацию про компанию, если вы не знаете точно чем она занимается10
  • Alexander PonomarchukОбычно нужны алгоритмы и system design, остальное специфично0
  • Юля Зефирка :ЗДенис, Как будто бы, вроде как бы, и да, и как бы, вроде, наверное, что-то около того, фифти-фифти.0