← Назад к вопросам

Сколько планируешь пройти собеседований?

1.0 Junior🔥 171 комментариев
#Soft Skills и карьера

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

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Стратегия поиска работы: количество интервью

Это отличный вопрос, потому что показывает отношение кандидата к процессу. Расскажу честно о своей стратегии.

Мой подход

Я не ищу работу часто, но когда начинаю — делаю это системно. Основной принцип: качество над количеством.

Почему не тысяча собеседований?

Математика:

  • Средняя вероятность успешного интервью: 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+ = что-то не так, нужна переоценка

Главное: Делай это систематично, отслеживай прогресс, учись на ошибках. Каждое интервью должно тебя приближать к цели, даже если в этот раз отказали.