Сколько нужно времени на выход на работу?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Рампап на новой работе: реалистичные сроки
Это очень практичный вопрос, показывает реальность. Дам честный ответ на основе своего опыта и наблюдений.
Краткий ответ
1-3 месяца — правильный промежуток в зависимости от:
- Сложности кодовой базы
- Качества документации
- Поддержки со стороны команды
- Твоего опыта
Детальная раскладка
Неделя 1: Адаптация ("Я ничего не понимаю")
- День 1-2: Оборудование, доступ, инструменты
- Ноутбук, IDE, credentials
- Доступ к репозиториям, Jira, Slack
- VPN, внутренние системы
- Потеря ~2 дня
- День 3-5: Окружение и старт
- Запуск локального окружения
- Первое чтение README и документации
- Знакомство с архитектурой на высоком уровне
- Первое собрание с командой
- Потеря ещё ~1 дня на отладку
Результат недели 1:
- Может запустить приложение
- Понимает структуру репозитория
- Никаких реальных задач
Неделя 2-3: Понимание ("Начинаю видеть структуру")
// Что происходит
- Читаю основные сервисы и их взаимодействие
- Запускаю приложение с отладчиком
- Прохожу по коду вслед за запросом (request tracing)
- Первые мелкие задачи (bug fixes, minor features)
- Погружение в документацию, Confluence, Arch Decision Records
public class WeekTwoThreeProgress {
public double understandingLevel = 0.20; // 20% понимания
public double productivityLevel = 0.05; // 5% от senior'а
public double speedOfWork = 0.10; // В 10 раз медленнее
}
// Типичные задачи
list<Task> tasks = list.of(
new Task("Fix typo in error message", "30 min"),
new Task("Add new field to logging", "2 hours"),
new Task("Update API documentation", "4 hours"),
new Task("Investigate slow query (подсказка от тимлида)", "1 day")
);
Неделя 4-6: Частичная независимость ("Я уже кое-что знаю")
- Начинаю задавать меньше вопросов
- Могу сам найти файлы для edit'а
- Понимаю, как тестировать локально
- Первые нормальные PR'ы (до 300 строк)
- Знаю, кого спросить для разных вещей
Типичный спринт (неделя 4):
- Пн: Onboarding session с архитектором (1 час)
- Вт-Пт: Выполнение 2-3 истории из бэклога
- Каждая история: 1-2 дня на реализацию
- Code review занимает 2-3 итерации
- Минус ошибки и недопонимания
Неделя 7-12: Квазиполная функциональность ("Я работаю как полноценный разработчик")
public class MonthTwoToThreeProgress {
public double understandingLevel = 0.50; // 50% понимания
public double productivityLevel = 0.60; // 60% от senior'а
public double speedOfWork = 0.70; // В 1.4 раза медленнее
public boolean canTakeLargeFeatures = true;
public boolean stillMakesSillyMistakes = true;
}
// Новые знания
Map<String, Topic> topicsLearned = Map.of(
"Database schema", Topic.DEEP,
"API contracts", Topic.DEEP,
"Deployment pipeline", Topic.MEDIUM,
"Performance issues", Topic.MEDIUM,
"Legacy code corners", Topic.EMERGING
);
Факторы, которые влияют на сроки
УСКОРЯЕТ:
// 1. Хорошая документация
if (company.hasComprehensiveDocs() &&
company.hasArchitectureDecisions() &&
company.hasOnboardingGuide()) {
timeToProductive = timeToProductive.minus(2, ChronoUnit.WEEKS);
}
// 2. Опытная, дружелюбная команда
if (team.hasMentor() &&
team.isResponsiveToQuestions() &&
team.doesPairProgramming()) {
timeToProductive = timeToProductive.minus(2, ChronoUnit.WEEKS);
}
// 3. Простая архитектура
if (codebase.isWellStructured() &&
codebase.followsConventions() &&
codebase.hasGoodTests()) {
timeToProductive = timeToProductive.minus(2, ChronoUnit.WEEKS);
}
// 4. Опыт с похожим стеком
if (myExperience.hasSpringFramework() &&
myExperience.knowsPostgreSQL() &&
myExperience.knowsTheirDeploymentTool()) {
timeToProductive = timeToProductive.minus(3, ChronoUnit.WEEKS);
}
ЗАМЕДЛЯЕТ:
// 1. Легаси-код без документации
if (codebase.isOldCode() &&
codebase.noDocumentation() &&
codebase.noTests()) {
timeToProductive = timeToProductive.plus(4, ChronoUnit.WEEKS);
}
// 2. Сложная микросервисная архитектура
if (architecture.isMicroservices() &&
architecture.hasMessageQueues() &&
architecture.hasComplexSync()) {
timeToProductive = timeToProductive.plus(3, ChronoUnit.WEEKS);
}
// 3. Неопытная или занятая команда
if (team.hasTurnover() &&
team.isBusyWithDeadlines() &&
team.noMentor()) {
timeToProductive = timeToProductive.plus(2, ChronoUnit.WEEKS);
}
// 4. Новый стек для тебя
if (!myExperience.hasKotlin() &&
!myExperience.knowsGrpc() &&
!myExperience.knowsTheirCloudInfra()) {
timeToProductive = timeToProductive.plus(4, ChronoUnit.WEEKS);
}
Типичная шкала
| Компания | Архитектура | Сложность | Время |
|---|---|---|---|
| Startup | Монолит | Простая | 2-3 недели |
| Mid-size | Монолит | Средняя | 4-6 недель |
| Large | Микросервисы | Сложная | 8-12 недель |
| Enterprise | Сложные системы | Очень сложная | 12-16 недель |
Мой опыт
Лучший случай:
Компания: Startup (25 человек)
Архитектура: Simple Spring Boot monolith
Документация: Отличная
Команда: Дружелюбная, опытная
Результат: Productive за 3 недели
Время до полной самостоятельности: 6 недель
Худший случай:
Компания: Enterprise
Архитектура: 50+ микросервисов, Kubernetes, CQRS
Документация: Размазана по 10 вики и Confluence
Команда: Занята, turnover 30%
Результат: Productive за 8 недель
Время до полной самостоятельности: 4 месяца
Что реально происходит
Месяц 1: Основы
- Знаю, как найти нужный файл
- Знаю, как запустить тесты
- Могу исправить баг, если указать где
- Могу добавить простое поле в API
- Никакого критического кода
Месяц 2: Уверенность растёт
- Могу сам разобраться с простым фичей
- Знаю, какие части кода менять опасно
- Могу написать юнит-тесты
- Могу сделать code review мелких PR'ов
- Ещё не должен возглавлять архитектурные решения
Месяц 3: Хороший разработчик
- Могу взять сложный фичей
- Могу совещаться по архитектуре
- Могу помочь juniors
- Знаю граждане и ловушки
- Могу предложить улучшения
Как это оценивают в компаниях
@PerformanceReview(month = 1)
public class FirstMonthExpectations {
// Компания НЕ ожидает высокую производительность
public double expectedProductivity = 0.30;
public String focus = "Learning, asking questions, setup";
public boolean wilBeJudged = false; // Не судят за медлительность
}
@PerformanceReview(month = 3)
public class ThirdMonthExpectations {
// Компания ожидает уже заметный вклад
public double expectedProductivity = 0.70;
public String focus = "Delivering features, helping team";
public boolean willBeJudged = true; // Оценивают лидерский потенциал
}
Практические советы
1. Активно учись первый месяц
- Записывай вопросы, не отвлекай постоянно
- Читай код, слушай архитектурные обсуждения
- Погружайся глубже
2. Первая задача должна быть super-simple
- Typo в сообщении об ошибке
- Добавить логирование
- Обновить README
- Что-то, что даст быстрый win
3. Не беспокойся о производительности первые 6 недель
- Качество важнее скорости
- Лучше потратить 2 дня и написать хороший код
- Чем потратить 2 часа и создать техдолг
Вывод
Честный ответ:
- Productive: 3-4 недели (могу вносить вклад)
- Competent: 8-12 недель (знаю, что делаю)
- Expert: 6-12 месяцев (понимаю нюансы и историю)
Но это не проблема! Каждый проходит через это. Компании это знают и планируют рампап. Главное — быть готовым учиться быстро и не боятся задавать вопросы.