Как не волноваться на live-coding собеседовании
Live-кодинг - один из самых сложных видов собеседований. Программировать на время и под присмотром незнакомого человека - очень волнительно. А от волнения многие забывают все что знали, не могут себя показать. В данной статье я даю три работающие стратегии как перестать волноваться на собеседовании.
Быстрая победа через дисциплину
Я буду решать эту задачу: Дан список слов. Написать функцию, которая вернет самый длинный префикс. Префикс - набор букв, с которых начинается слово.
Например:
# самый длинный одинаковый префикс - это две буквы "fl"
solution(['flower', 'flow', 'flight']) -> 'fl'
На всякий случай, привожу финальное решение:
def solution(words: list[str]) -> str:
def _get_min_word_len() -> int:
"""Вычисляем минимальную длину слова"""
return min(len(w) for w in words)
def _get_prefs_for_len(i) -> list[str]:
"""Возвращаем префиксы длиной i для всех слов"""
return [w[:i] for w in words]
def _are_the_same(prefs: list[str]) -> bool:
"""Вернет true если все префиксы одинаковые"""
return len(set(prefs)) == 1
min_word_len = _get_min_word_len()
for i in range(min_word_len, 1, -1):
prefs = _get_prefs_for_len(i)
if _are_the_same(prefs):
return prefs[0]
return ''
Быстрая победа через дисциплину
Напиши функцию, обозначь исходные данные, добавь аннотации типов. Это даст понимание входных и выходных данных. Название функции должно быть лаконичными и показывающим что функция делает . Затем обязательно вызови функцию и распечатай результат. Запусти код, убедись что работает. Многие ребята забывают вызывать функцию, которую объявили, запускают, а код не работает.