Недавно появились мысли походить на собеседования чем я успешно занялся. Если конкретно - смотрел лидовскую/сеньерскую позиции на Python и Golang(но статья может пригодиться backend разработчикам в целом). Не ставлю целью статьи объять необъятное и дать какие-то гарантии. Лишь зафиксирую данные для себя на будущее.

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

Сразу сделаю пометку, что некоторые навыки/ресурсы специфичны(по типу нарешивания Leetcode), но отталкиваемся от текущих реалий рынка.

SQL(Postgres)

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

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

NoSQL и брокеры

Not only SQL??? Да, пройдемся и по ним. У вас могут спросить о любой базе, но стоит знать устройство, преимущества, недостатки и места для применения 2х основных.

  • Redis - кеш и немного очередь(почему-то официальная дока перестала открываться)

  • RabbitMQ - брокер сообщений

Читать рекомендую именно официальную документацию - там неплохое изложение. Бонусом можно почитать про разницу Kafka и RabbitMQ ведь мы не просто json инженеры, а высоконагруженные json инженеры!

Я есть микросервис

Далее перейдем к модной теме микросервисов. Здесь порекомендую всего 2 ресурса, которых должно хватить.

Микросервисы - это просто и понятно!
Микросервисы - это просто и понятно!

Немного кода

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

Про python
  • Возможно глупо, но стоит посмотреть базовые вопросы по подготовке. Я на одном из собесов долго тупил над вопросом по изменяемым типам данных

  • Рекомендую повторить реализацию и использование контестных менеджеров и декораторов

  • Важно знать, что такое GIL

  • Asyncio

    • Самая база
      Самая база
  • Нужно знать разницу между процессами, потоками и асинхронщиной в Python

  • FastApi - Даже если никогда не писали стоит познакомиться с азами этого асинхронного фреймворка

  • Так же очень рекомендую книгу "Python К вершинам мастерства" - Лусиану Ромальо. Книга толстая, но стоящая(можно читать главы выборочно).

Алгоритмы и задачи

Самый спорный пункт, но очень актуальный.

  • Решайте задачки хотя бы easy уровня на Leetcode

  • Рекомендую к прохождению курс на Leetcode, курс платный. Но хорошо и понятно познакомит с основными типами данных(стеки, кучи, деревья и тд) и позволит решать задачи на собеседованиях и даже применять знания в жизни

System design

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

Резюме

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

Комментарии (10)


  1. kirillbelash93
    31.05.2024 10:51
    +1

    А нафига сеньору и уж тем более тимлиду готовится к собесу?)


    1. gromyko21 Автор
      31.05.2024 10:51
      +5

      Странный вопрос. Если ты хочешь получать достойную оплату за работу - с тебя будут много спрашивать.


    1. mikhail_roslov
      31.05.2024 10:51
      +6

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


    1. Batalmv
      31.05.2024 10:51
      +2

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

      Как ни странно, я вот прямо сейчас, к примеру не назову все уровни изоляции, а засыпаться на чем-то тупом тупо


  1. IamStalker
    31.05.2024 10:51

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


    1. gromyko21 Автор
      31.05.2024 10:51

      Поделись. У меня на 70% собеседований были задачи с литкода)


      1. pantsarny
        31.05.2024 10:51

        Дел


  1. DX28
    31.05.2024 10:51

    Года два назад решил 50 задач с литкода по методике neetcode. Перед интервью просто освежаю решение за час этих задач . С тех пор прошел с десяток интервью на позицию сеньора. В том числе первый уровень яндекса. (От второго сам отказался). Везде где был лайв кодинг этого оказалось достаточно.


  1. nixel
    31.05.2024 10:51

    Что-то я пригорел с рэббита и кафки в разделе NoSQL...


    1. gromyko21 Автор
      31.05.2024 10:51

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