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

Что вы хотите видеть в новом кандидате?

1.0 Junior🔥 161 комментариев
#DevOps и инфраструктура#Django

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

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

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

Что я хочу видеть в новом кандидате Python-разработчике

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

1. Фундаментальное понимание основ

Я не ищу человека, который знает все фреймворки. Мне нужен тот, кто глубоко понимает основы:

# Знаешь ли ты почему это работает так, а не иначе?
class_var = []

class MyClass:
    shared = class_var
    
    def __init__(self):
        self.instance = []  # != class_var

# Понимание переменных экземпляра vs. переменных класса

Важные основы:

  • Как работает память и объекты в Python
  • Разница между pass by value и pass by reference
  • GIL (Global Interpreter Lock) и его влияние
  • Протоколы (duck typing, magic methods)
  • Декораторы и метапрограммирование

Эти основы помогают решать любые проблемы, даже с новыми фреймворками.

2. Практический опыт проектной разработки

Мне не интересны люди, которые решают LeetCode задачи. Я хочу видеть:

  • Реальные проекты на GitHub (даже маленькие)
  • Коммиты с хорошими сообщениями
  • README с описанием и инструкциями
  • Тесты и документация
# Хороший проект выглядит так:
/my-project
  ├── src/
  │   ├── domain/
  │   ├── application/
  │   ├── infrastructure/
  │   └── presentation/
  ├── tests/
  │   ├── unit/
  │   ├── integration/
  │   └── e2e/
  ├── README.md
  ├── requirements.txt
  ├── .gitignore
  └── pyproject.toml

Это показывает, что кандидат не просто знает синтаксис, но может проектировать системы.

3. Способность учиться самостоятельно

Технологии меняются быстро. Мне нужны люди, которые:

  • Читают документацию вместо только использования Stack Overflow
  • Изучают исходный код интересующих их библиотек
  • Экспериментируют с новыми подходами
  • Следят за трендами, но критически их оценивают
"Какие блоги, подкасты или книги ты читаешь?"

Отличный ответ:
"Я следю за Real Python, слушаю Talk Python to Me,
 читаю исходный код FastAPI, и недавно закончил
'Fluent Python' Лучиано Рамальо."

4. Ориентация на качество кода

Качество кода — это не просто красивые имена переменных. Это:

# SOLID принципы
class Repository:
    def __init__(self, db):
        self.db = db  # Dependency injection

# DRY — не повторяй себя
def validate_email(email):
    # Одна функция для валидации везде
    return bool(re.match(r'^[^@]+@[^@]+\.[^@]+$', email))

# KISS — не усложняй
def get_max(numbers):
    return max(numbers)  # Не пиши пузырьковую сортировку

# Типизация
def process_user(user_id: int) -> User:
    # Явные типы помогают
    pass

# Тестируемость
def calculate_tax(price: float, rate: float) -> float:
    return price * rate  # Чистая функция, легко тестировать

5. Коммуникационные навыки

Код пишется один раз, но читается сто раз. Мне нужны разработчики, которые:

  • Объясняют сложные идеи просто
  • Слушают мнение коллег
  • Задают вопросы, если что-то непонятно
  • Документируют нетривиальные части
  • Проводят code reviews конструктивно
# Хорошая документация
def calculate_fibonacci(n: int) -> int:
    """
    Вычисляет n-е число Фибоначчи.
    
    Использует итеративный подход для O(n) времени
    и O(1) памяти, вместо рекурсии, которая может
    переполнить стек при больших n.
    
    Args:
        n: Позиция в последовательности Фибоначчи (1-indexed)
        
    Returns:
        n-е число Фибоначчи
        
    Raises:
        ValueError: если n <= 0
    """
    if n <= 0:
        raise ValueError("n должно быть > 0")

6. Ответственность и надёжность

Я хочу видеть людей, которые:

  • Берут ответственность за свой код
  • Не выдумывают оправдания, а решают проблемы
  • Проверяют свою работу перед отправкой
  • Учатся на ошибках вместо повторения их
"Я нашёл bug в моём коде перед code review,
потому что я запустил локальное тестирование."

Вместо:
"Боевой сервер упал потому что я не проверил..."

7. Практическое понимание инструментов

Не обязательно знать всё, но нужно уметь работать с:

  • Системы контроля версий (Git — день первый)
  • Виртуальные окружения (venv, Poetry, uv)
  • Тестирование (pytest, mock, fixtures)
  • Логирование (logging модуль, структурированные логи)
  • Отладка (debugger, print statements умно, logging)
  • SQL (хотя бы базовый, чтобы не писать N+1 запросы)

8. Этика и принципы

Я ценю разработчиков, которые:

  • Не скрывают проблемы, а сообщают о них рано
  • Не занимаются микротранзакциями с часами (честность)
  • Помогают коллегам расти
  • Берут на себя сложные задачи
  • Не боятся сказать "не знаю", но готовы выучить

Что НЕ нужно

  • Зубрёжка алгоритмов из LeetCode
  • Количество лет опыта без практики (3 года опыта, повторённого 5 раз — это не 15 лет)
  • "Rockstar" attitude — команда важнее "звёзд"
  • Боязнь признать ошибку
  • Игра (претензии на знания, которых нет)

Заключение

В идеале я ищу голодного ученика с крепким фундаментом, который:

  1. Знает основы глубоко
  2. Может показать реальные проекты
  3. Учится самостоятельно
  4. Пишет качественный код
  5. Хорошо общается
  6. Берёт ответственность
  7. Умеет пользоваться инструментами
  8. Имеет хорошие принципы

Всё остальное — это деталь. Я готов учить новые фреймворки и технологии, но я не готов учить принципы и этику.

Что вы хотите видеть в новом кандидате? | PrepBro