Сколько планируешь пройти собеседований?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Стратегия поиска работы: количество интервью
Это отличный вопрос, потому что показывает отношение кандидата к процессу. Расскажу честно о своей стратегии.
Мой подход
Я не ищу работу часто, но когда начинаю — делаю это системно. Основной принцип: качество над количеством.
Почему не тысяча собеседований?
Математика:
- Средняя вероятность успешного интервью: 20-30% (в зависимости от уровня)
- Нужно 3-5 интервью, чтобы получить 1 оффер (если честно оценивать себя)
- Но я предпочитаю качественный отбор компаний
Практически: Если я ищу работу, я нацелен на 30-50 интервью, которые распределяются так:
50 заявок → 20 первых интервью (40% ответ) → 10 вторых раундов (50% прошли)
→ 5 финальных интервью → 1-2 оффера
Почему именно эти числа?
1. Меньше 20 интервью = неправильная стратегия
// Аналогия с тестированием
if (interviews < 20) {
// Слишком мало данных для статистики
// Может быть везением, а не мастерством
System.out.println("Результат ненадёжен");
}
// Нужно достаточно интервью, чтобы:
// 1. Понять, где твои слабые стороны
// 2. Отработать и улучшиться
// 3. Получить несколько офферов для выбора
2. Более 100 интервью = проблема
if (interviews > 100) {
// Либо у тебя проблемы с интервью
boolean hasWeakTechnical = true; // Не можешь решить задачи?
boolean hasWeakSoftSkills = true; // Плохо общаешься?
boolean wrongTarget = true; // Ищешь не своего уровня?
// После 50 интервью должны быть офферы
// Если нет — нужно менять подход
}
Фаза 1: Подготовка (2-4 недели)
До первого интервью я всегда готовлюсь:
// Чек-лист подготовки
List<PrepItem> preparation = List.of(
// 1. Refresh технических знаний
new PrepItem("Solve 50 LeetCode problems", "Medium level"),
new PrepItem("Review data structures", "Array, LinkedList, HashMap, Trees"),
new PrepItem("Review algorithms", "Sorting, Searching, Dynamic Programming"),
// 2. System Design
new PrepItem("Study System Design", "Scaling, Caching, Databases"),
new PrepItem("Prepare for design questions", "Twitter, Netflix, Uber"),
// 3. Soft Skills
new PrepItem("Prepare stories (STAR method)", "Конфликты, лидерство, неудачи"),
new PrepItem("Research companies", "История, культура, проблемы"),
// 4. Projects
new PrepItem("Prepare portfolio", "3-5 лучших проектов"),
new PrepItem("Know every line of code", "Будут спрашивать детали"),
// 5. Mock interviews
new PrepItem("Do 10-15 mock interviews", "С друзьями или онлайн")
);
Фаза 2: Активный поиск (3-6 недель)
Неделя 1-2: Разослать заявки
- TopTech companies (Google, Meta, Uber): 5 компаний
- Scaling startups (Series C-E): 15 компаний
- Solid mid-size companies: 15 компаний
- Local opportunities: 5 компаний
Итого: 40 заявок на неделю
Неделя 3-4: Первые интервью
Ожидаемо: ~20 первых раундов (50% ответ)
- Screen call: 30-60 минут
- Technical coding: обычно 1-2 проблемы
- Отработка слабых мест
Неделя 5-6: Вторые и финальные раунды
Ожидаемо: ~10 вторых раундов (50% прошли первый)
- Deep technical dive
- System Design
- Behavioral questions
- Negotiations
Почему я не делаю меньше?
Причина 1: Статистика
// Вероятность успеха
double successRate = 0.25; // 25%
int targetOffers = 2; // Хотим 2 оффера для выбора
int requiredInterviews = (int) Math.ceil(targetOffers / successRate);
// requiredInterviews = 8
// Но это ЕСЛИ идеальный случай
// На самом деле нужно 20-30, потому что:
// - Не все интервью доходят до конца
// - Некоторые компании отклоняют на последних этапах
// - Нужно время на улучшение после неудач
Причина 2: Обучение
Первые 10-15 интервью — это обучение:
- Привык к стрессу
- Отработал подачу
- Понял слабые места
- Улучшился в рассказе о себе
Причина 3: Выбор
Хочу иметь выбор между несколькими офферами:
- Разные зарплаты
- Разные компании
- Разные условия
- Разные команды
Как я отслеживаю прогресс
@Data
public class InterviewTracker {
private String company;
private LocalDate interviewDate;
private String round; // "Screen", "Technical", "System Design", etc.
private String result; // "PASS", "FAIL", "DECISION PENDING"
private String feedback; // Что сказали интервьюеры
private String myNotes; // Что я узнал
private String nextSteps;
}
// Анализ
public class InterviewAnalysis {
public void analyze(List<InterviewTracker> interviews) {
// Успешность по компаниям
interviews.stream()
.collect(Collectors.groupingBy(
InterviewTracker::getCompany,
Collectors.counting()
))
.forEach((company, count) -> {
double passRate = interviews.stream()
.filter(i -> i.getCompany().equals(company))
.filter(i -> i.getResult().equals("PASS"))
.count() / (double) count;
System.out.println(company + ": " + passRate);
});
// Какие раунды мне даются сложнее?
interviews.stream()
.collect(Collectors.groupingBy(
InterviewTracker::getRound,
Collectors.averagingDouble(
i -> i.getResult().equals("PASS") ? 1 : 0
)
))
.forEach((round, successRate) -> {
System.out.println(round + ": " + successRate);
});
}
}
График распределения
Созданное время: 6 недель
Неделя 1: Подготовка (не беру интервью)
Неделя 2: 5-10 первых раундов
Неделя 3: 10-15 первых раундов + 2-5 вторых
Неделя 4: 0-5 новых первых + 5-10 вторых/финальных
Неделя 5: Главным образом вторые и финальные раунды
Неделя 6: Переговоры и финальные решения
Как я выбираю компании для заявок?
public class CompanyEvaluation {
public boolean shouldApply(Company company) {
// 1. Технический стек
if (!company.getStack().contains("Java") &&
!company.getStack().contains("Spring")) {
return false; // Не релевантно
}
// 2. Размер и стабильность
if (company.getAnnualRevenue() < 10_000_000 &&
!company.isFunded()) {
return false; // Слишком рискованно
}
// 3. Культура и удаленность
if (!company.supportsRemote() &&
!company.isCloseToMyLocation()) {
return false; // Логистика
}
// 4. Уровень
if (company.getJuniorOpenings() > 0) {
// Junior роль для моего опыта?
return false; // Ниже моего уровня
}
// 5. Компенсация (baseline)
if (company.getSalaryRange().getMax() < 100_000) {
return false; // Ниже моих ожиданий
}
return true; // Подходит!
}
}
Итоговая рекомендация
Нормальный диапазон: 20-50 интервью
- 20 = если быстро везет
- 30 = типичная ситуация
- 50 = если очень требователен к компании
- 100+ = что-то не так, нужна переоценка
Главное: Делай это систематично, отслеживай прогресс, учись на ошибках. Каждое интервью должно тебя приближать к цели, даже если в этот раз отказали.