TGViewer
Хочу в Google Хочу в Google @hiremegoogle · 3.18K subscribers
Post #65 2.4K
​​Был интересный вопрос про то как улучшить аккуратность и скорость кодинга. Думаю вопрос очень важный, отвечаю.

Думай на бумаге (или на доске)

На настоящем собеседовании тебе придется решать задачу на доске или в редакторе кода. У тебя не будет возможности компилировать, запускать и дебажить код как ты привык делать в реальной жизни. Поэтому очень важно уметь писать код на бумаге и компилировать его у себя в голове.

Как это работает? Перед тем как сесть решать задачу, берешь ручку с бумагой (или доску с маркером), и пишешь свое решение сначала на бумаге.

Шаг 1. Conceptual overview - прежде всего опиши свой алгоритм по шагам, просто словами, как список. Возьми какой нибудь пример и запусти свой алгоритм на этом примере. Записывай как твои данные будут меняться, по мере продвижения по списку. Формат не имеет значения, пиши как тебе удобно. Это поможет проверить жизнеспособность твоего алгоритма, поможет найти  edge case-ы, исправить баги на раннем этапе. Также это хороше упражнение для мозга, который привык к тому что все в разработке уже автоматизировано.

Например, проверка строки на полиндромность:
• If string is empty or contains only one symbol return True
• Create two pointers, on left end and right end
• Create loop from 0 to N/2, check left and right symbols
• If pointers are equal, shift them to the center
• If pointers are different, return False
• Return True in the end
Loop from i: 0 -> 3

i = 0
“ten1et”
^ ^
L R => “t” == “t”
——
i = 1
“ten1et”
^ ^
L R => “e” == “e”
——
i = 2
“ten1et”
^^
LR => “n” != “1” => return False


Шаг 2. Написание кода - теперь после того как ты обкатал свой алгоритм на нескольких разных примерах можно приступать к написанию кода, опять на бумаге. Не псевдокод, а настоящий рабочий код, со всеми точками и запятыми. После того как ты закончил, опять прогони примеры через свой код, опять запиши как меняются данные. Попытайся сломать свой код и найти edge case-ы. Попробуй пустую строку, попробуй строку с четной и нечетной длиной, попробуй строку с цифрами и с символами и т.д.

Пример кода на Python:
def isPalindrome(string):
    for i in range(len(string)//2): 
        if string[i] != string[len(str)-i-1]:
            return False
    return True

Ш
аг 3. Запуск - когда ты уже на 100% уверен что твой код работает, можешь переписать его в редактор и попробовать его запустить. Компилятор выкинул ошибку синтакса? Это нормально, будь готов к тому что код не запуститься с первого раза и его надо будет отредактировать, это нормально. После того как код запустился проверь свои примеры на рабочем коде, сравни со своими записками. Если все не сходится в начале это нормально, нужно нарабатывать навыки решения задач на бумаге постепенно.

На фото мой блокнот.

#interviewtip #algo
  • 👍 2
More from @hiremegoogle
  1. Jul 4, 2026Почти год сюда не писал. Давайте по порядку. Последние пару лет я пытаюсь переосмыслить бы…
  2. Mar 3, 2025🗓️ Один день из жизни программиста в Мета. Понедельник 7:00 - звонит мой утренний будильн…
  3. Feb 28, 2025🤞 Сокращения Не успел год начаться как Мета объявила об очередной волне увольнений. На эт…
  4. Jan 13, 2025photo post
  5. Jan 13, 2025🎉 Цели на 2025 Всех с Новым Годом! Это мое запоздавшее поздравление. На этот раз у меня н…
  6. Dec 16, 2024Dear Eva, It will be almost a month since you wrote to me and you have possibly forgotten…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →