HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Первое собеседование на должность программиста - источник постоянного стресса независимо от возраста. Во время собеседования начинают забываться элементарные вещи, а некоторые вопросы ставят в тупик. Совсем убрать волнение невозможно, но подготовка к интервью может его уменьшить.</p>
1 <p>Первое собеседование на должность программиста - источник постоянного стресса независимо от возраста. Во время собеседования начинают забываться элементарные вещи, а некоторые вопросы ставят в тупик. Совсем убрать волнение невозможно, но подготовка к интервью может его уменьшить.</p>
2 <p>В этом уроке мы разберем, к чему программисту готовиться на собеседовании.</p>
2 <p>В этом уроке мы разберем, к чему программисту готовиться на собеседовании.</p>
3 <h2>Ключевые темы</h2>
3 <h2>Ключевые темы</h2>
4 <p>Ключевые темы на собеседовании на программиста:</p>
4 <p>Ключевые темы на собеседовании на программиста:</p>
5 <ul><li>О себе. Прошлый опыт</li>
5 <ul><li>О себе. Прошлый опыт</li>
6 <li>Прикладные знания</li>
6 <li>Прикладные знания</li>
7 <li>Задачи</li>
7 <li>Задачи</li>
8 </ul><p>Разберем каждую тему подробнее.</p>
8 </ul><p>Разберем каждую тему подробнее.</p>
9 <h3>О себе. Прошлый опыт</h3>
9 <h3>О себе. Прошлый опыт</h3>
10 <p>Обычно в начале собеседования происходит знакомство. Сначала компания рассказывает о себе, а потом представляется кандидат. Также вам могут задавать вопросы. К ним лучше подготовиться заранее.</p>
10 <p>Обычно в начале собеседования происходит знакомство. Сначала компания рассказывает о себе, а потом представляется кандидат. Также вам могут задавать вопросы. К ним лучше подготовиться заранее.</p>
11 <p>На этом этапе будьте готовы ответить на следующие вопросы:</p>
11 <p>На этом этапе будьте готовы ответить на следующие вопросы:</p>
12 <ul><li>Чем вы больше всего гордитесь как программист?</li>
12 <ul><li>Чем вы больше всего гордитесь как программист?</li>
13 <li>Какая самая сложная и интересная задача, которую вы решали в прошлом проекте или в учебном проекте?</li>
13 <li>Какая самая сложная и интересная задача, которую вы решали в прошлом проекте или в учебном проекте?</li>
14 <li>Как вы тестировали работоспособность кода? Умеете ли вы писать автоматические тесты?</li>
14 <li>Как вы тестировали работоспособность кода? Умеете ли вы писать автоматические тесты?</li>
15 <li>Как был построен процесс разработки на прошлом месте?</li>
15 <li>Как был построен процесс разработки на прошлом месте?</li>
16 <li>Какую последнюю книгу по программированию вы прочитали?</li>
16 <li>Какую последнюю книгу по программированию вы прочитали?</li>
17 </ul><p>Чтобы быть готовым к подобным вопросам, создайте заранее несколько проектов на Github, ответьте для себя на вопросы, описанные выше, и познакомьтесь с идеями<a>экстремального программирования</a>. Полезные ссылки:</p>
17 </ul><p>Чтобы быть готовым к подобным вопросам, создайте заранее несколько проектов на Github, ответьте для себя на вопросы, описанные выше, и познакомьтесь с идеями<a>экстремального программирования</a>. Полезные ссылки:</p>
18 <ul><li><a>Книги, которые стоит читать любому программисту</a></li>
18 <ul><li><a>Книги, которые стоит читать любому программисту</a></li>
19 <li><a>Список тестовых заданий от разных компаний</a></li>
19 <li><a>Список тестовых заданий от разных компаний</a></li>
20 <li><a>Проекты Хекслета</a></li>
20 <li><a>Проекты Хекслета</a></li>
21 </ul><h3>Прикладные знания</h3>
21 </ul><h3>Прикладные знания</h3>
22 <p>На этом этапе программистов спрашивают о технологиях, с которыми уже приходилось работать. Знания делят на общие и специфичные.</p>
22 <p>На этом этапе программистов спрашивают о технологиях, с которыми уже приходилось работать. Знания делят на общие и специфичные.</p>
23 <p>К общим знаниям относятся:</p>
23 <p>К общим знаниям относятся:</p>
24 <ul><li>Базы данных, SQL. Могут попросить составить запрос. Чаще всего интересует знание соединений (joins)</li>
24 <ul><li>Базы данных, SQL. Могут попросить составить запрос. Чаще всего интересует знание соединений (joins)</li>
25 <li>ООП. На базовом уровне имеется ввиду умение создавать классы и умение моделировать</li>
25 <li>ООП. На базовом уровне имеется ввиду умение создавать классы и умение моделировать</li>
26 <li>Веб-разработчиков могут спросить про DOM Api</li>
26 <li>Веб-разработчиков могут спросить про DOM Api</li>
27 </ul><p>В качестве специфичных знаний проверяется знание библиотек, фреймворков, особенностей языков. В интернете созданы списки по каждому возможному стеку:</p>
27 </ul><p>В качестве специфичных знаний проверяется знание библиотек, фреймворков, особенностей языков. В интернете созданы списки по каждому возможному стеку:</p>
28 <ul><li><a>java</a></li>
28 <ul><li><a>java</a></li>
29 <li><a>frontend</a></li>
29 <li><a>frontend</a></li>
30 <li><a>python</a></li>
30 <li><a>python</a></li>
31 <li><a>javascript</a></li>
31 <li><a>javascript</a></li>
32 </ul><h3>Задачи</h3>
32 </ul><h3>Задачи</h3>
33 <p>Задачи для программистов бывают разными. Им задают вопросы на логику и воображение, а также на оценку владения профессиональными навыками. Последние в этом уроке разберем подробнее.</p>
33 <p>Задачи для программистов бывают разными. Им задают вопросы на логику и воображение, а также на оценку владения профессиональными навыками. Последние в этом уроке разберем подробнее.</p>
34 <h4>Алгоритмы и структуры данных</h4>
34 <h4>Алгоритмы и структуры данных</h4>
35 <p>На этом этапе могут попросить реализовать переворот односвязного списка или выполнить сортировку пузырьком. Более сложные вещи писать не просят, их могут спросить устно. Например:</p>
35 <p>На этом этапе могут попросить реализовать переворот односвязного списка или выполнить сортировку пузырьком. Более сложные вещи писать не просят, их могут спросить устно. Например:</p>
36 <ul><li>Как найти пропущенное число в отсортированном массиве, который содержит значения от 1 до 100?</li>
36 <ul><li>Как найти пропущенное число в отсортированном массиве, который содержит значения от 1 до 100?</li>
37 <li>Чем отличается O(1) от O(n)?</li>
37 <li>Чем отличается O(1) от O(n)?</li>
38 <li>Какая алгоритмическая сложность у бинарного поиска?</li>
38 <li>Какая алгоритмическая сложность у бинарного поиска?</li>
39 <li>Как определить наличие цикла в односвязном списке?</li>
39 <li>Как определить наличие цикла в односвязном списке?</li>
40 <li>Как эффективно объединить два отсортированных массива?</li>
40 <li>Как эффективно объединить два отсортированных массива?</li>
41 </ul><p>Этого раздела не стоит пугаться, никто не требует от вас глубокого знания алгоритмов и всего прочитанного Кнута. Достаточно прочитать одну книгу и немного попрактиковаться. Этот опыт не будет лишним - правильно выбранная структура данных в коде сделает вашу жизнь значительно легче.</p>
41 </ul><p>Этого раздела не стоит пугаться, никто не требует от вас глубокого знания алгоритмов и всего прочитанного Кнута. Достаточно прочитать одну книгу и немного попрактиковаться. Этот опыт не будет лишним - правильно выбранная структура данных в коде сделает вашу жизнь значительно легче.</p>
42 <p>Рекомендации:</p>
42 <p>Рекомендации:</p>
43 <ul><li>Вспомните логарифмы. Они нужны для оценки сложности. Это единственная обязательная математика для книг по алгоритмам</li>
43 <ul><li>Вспомните логарифмы. Они нужны для оценки сложности. Это единственная обязательная математика для книг по алгоритмам</li>
44 <li>изучите основные алгоритмы</li>
44 <li>изучите основные алгоритмы</li>
45 <li>изучите основные структуры данных</li>
45 <li>изучите основные структуры данных</li>
46 <li>напишите сортировку пузырьком</li>
46 <li>напишите сортировку пузырьком</li>
47 <li>познакомьтесь с хеш-таблицами</li>
47 <li>познакомьтесь с хеш-таблицами</li>
48 <li>научитесь выполнять бинарный поиск</li>
48 <li>научитесь выполнять бинарный поиск</li>
49 <li>изучите сбалансированные деревья</li>
49 <li>изучите сбалансированные деревья</li>
50 <li>выучите нотацию Big O, научитесь определять сложность простых алгоритмов</li>
50 <li>выучите нотацию Big O, научитесь определять сложность простых алгоритмов</li>
51 </ul><p>Полезные ссылки:</p>
51 </ul><p>Полезные ссылки:</p>
52 <ul><li><a>Грокаем алгоритмы</a></li>
52 <ul><li><a>Грокаем алгоритмы</a></li>
53 </ul><h4>Операционные системы и сети</h4>
53 </ul><h4>Операционные системы и сети</h4>
54 <p>Сюда входит огромный перечень тем, например: владение командной строкой, понимание tcp/ip, http, dns, event loop и многое другое. Как правило, эти вопросы не задают напрямую. В основном придумывают различные истории или ситуации. Примеры вопросов:</p>
54 <p>Сюда входит огромный перечень тем, например: владение командной строкой, понимание tcp/ip, http, dns, event loop и многое другое. Как правило, эти вопросы не задают напрямую. В основном придумывают различные истории или ситуации. Примеры вопросов:</p>
55 <ul><li>Может ли существовать такой ip адрес: 283.12.30.111?</li>
55 <ul><li>Может ли существовать такой ip адрес: 283.12.30.111?</li>
56 <li><a>Что происходит, когда пользователь вбивает в браузер адрес google.com?</a></li>
56 <li><a>Что происходит, когда пользователь вбивает в браузер адрес google.com?</a></li>
57 <li>Можно ли в HTTP запросы указывать одновременно query и post параметры?</li>
57 <li>Можно ли в HTTP запросы указывать одновременно query и post параметры?</li>
58 </ul><p>Рекомендации:</p>
58 </ul><p>Рекомендации:</p>
59 <ul><li>прочитайте книгу по операционным системам</li>
59 <ul><li>прочитайте книгу по операционным системам</li>
60 <li>перейдите на Linux, например, Ubuntu</li>
60 <li>перейдите на Linux, например, Ubuntu</li>
61 <li>изучите сети на базовом уровне: tcp/ip, dns, http</li>
61 <li>изучите сети на базовом уровне: tcp/ip, dns, http</li>
62 </ul><h4>Операции с числами</h4>
62 </ul><h4>Операции с числами</h4>
63 <p>Популярные задачи на системы счисления и битовые операции:</p>
63 <p>Популярные задачи на системы счисления и битовые операции:</p>
64 <ul><li>Как определить четность числа не выполняя деления?</li>
64 <ul><li>Как определить четность числа не выполняя деления?</li>
65 <li>Как поменять две переменные местами, не используя третью переменную?</li>
65 <li>Как поменять две переменные местами, не используя третью переменную?</li>
66 </ul><p>Чтобы ответить на подобные вопросы, рекомендуем изучить системы счисления и битовые операции.</p>
66 </ul><p>Чтобы ответить на подобные вопросы, рекомендуем изучить системы счисления и битовые операции.</p>
67 <h4>Problem-Solving задачи</h4>
67 <h4>Problem-Solving задачи</h4>
68 <p>Problem-Solving - самый интересный тип задач. В них моделируется реальная ситуация. Вам предстоит придумать способ решения в рамках каких-то ограничений. С помощью Problem-Solving задач работодатель проверяет навыки кандидатов в решении поставленных задач и оценивает его способности.</p>
68 <p>Problem-Solving - самый интересный тип задач. В них моделируется реальная ситуация. Вам предстоит придумать способ решения в рамках каких-то ограничений. С помощью Problem-Solving задач работодатель проверяет навыки кандидатов в решении поставленных задач и оценивает его способности.</p>
69 <p>Например, вас могут попросить реализовать редактор так, чтобы он открывал с одинаковой скоростью файлы любых размеров.</p>
69 <p>Например, вас могут попросить реализовать редактор так, чтобы он открывал с одинаковой скоростью файлы любых размеров.</p>
70 <p>Фактически все задачи на работе - это Problem-Solving. Только в жизни мы можем тратить на это большую часть времени, оптимизировать решение, долго обдумывать. А на собеседовании на это дается намного меньше времени. Поэтому при решении таких задач важно не волноваться и сосредоточиться на проблеме, которую нужно решить.</p>
70 <p>Фактически все задачи на работе - это Problem-Solving. Только в жизни мы можем тратить на это большую часть времени, оптимизировать решение, долго обдумывать. А на собеседовании на это дается намного меньше времени. Поэтому при решении таких задач важно не волноваться и сосредоточиться на проблеме, которую нужно решить.</p>
71 <h4>Написание кода</h4>
71 <h4>Написание кода</h4>
72 <p>Чем меньше у вас опыта, тем выше вероятность того, что вас попросят написать код. Обычно просят написать его на листочке или в среде подобной<a>repl.it</a>. На задачу дают 10-20 минут. Примеры:</p>
72 <p>Чем меньше у вас опыта, тем выше вероятность того, что вас попросят написать код. Обычно просят написать его на листочке или в среде подобной<a>repl.it</a>. На задачу дают 10-20 минут. Примеры:</p>
73 <ul><li>напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово "Fizz", а вместо чисел, кратных пяти, - слово "Buzz". Если число кратно и 3, и 5, то программа должна выводить слово "FizzBuzz".</li>
73 <ul><li>напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово "Fizz", а вместо чисел, кратных пяти, - слово "Buzz". Если число кратно и 3, и 5, то программа должна выводить слово "FizzBuzz".</li>
74 <li>напишите программу, которая переворачивает строку. Предложите несколько способов.</li>
74 <li>напишите программу, которая переворачивает строку. Предложите несколько способов.</li>
75 <li>напишите программу, которая проверяет сбалансированность скобок в строке.</li>
75 <li>напишите программу, которая проверяет сбалансированность скобок в строке.</li>
76 <li>реализуйте программу, которая удаляет директорию со всеми вложенными файлами и директориями - задача на рекурсию.</li>
76 <li>реализуйте программу, которая удаляет директорию со всеми вложенными файлами и директориями - задача на рекурсию.</li>
77 </ul><p>Во время решения могут попросить рассуждать над задачей вслух. Собеседующий хочет проследить за вашим ходом мыслей.</p>
77 </ul><p>Во время решения могут попросить рассуждать над задачей вслух. Собеседующий хочет проследить за вашим ходом мыслей.</p>
78 <p>Эти задачи показывают насколько у интервьюируемого хорошо с логикой, алгоритмическим мышлением, как он владеет базовыми конструкциями языка. Они позволяют отсеивать слабых кандидатов, но не помогают определить сильных.</p>
78 <p>Эти задачи показывают насколько у интервьюируемого хорошо с логикой, алгоритмическим мышлением, как он владеет базовыми конструкциями языка. Они позволяют отсеивать слабых кандидатов, но не помогают определить сильных.</p>
79 <p>В интернете созданы десятки<a>сервисов</a>, которые специализируются на подобных задачах. Обязательно включите их в свой список для подготовки. Научитесь проходить задачи уровня easy с закрытыми глазами. Этот навык поможет не только для прохождения собеседований, но и в реальном программировании.</p>
79 <p>В интернете созданы десятки<a>сервисов</a>, которые специализируются на подобных задачах. Обязательно включите их в свой список для подготовки. Научитесь проходить задачи уровня easy с закрытыми глазами. Этот навык поможет не только для прохождения собеседований, но и в реальном программировании.</p>
80 <p>Рекомендации:</p>
80 <p>Рекомендации:</p>
81 <ul><li>потренируйтесь писать код на листочке</li>
81 <ul><li>потренируйтесь писать код на листочке</li>
82 <li>попробуйте рассуждать вслух во время решения алгоритмических задач</li>
82 <li>попробуйте рассуждать вслух во время решения алгоритмических задач</li>
83 <li>найдите удобную платформу и оттачивайте мастерство</li>
83 <li>найдите удобную платформу и оттачивайте мастерство</li>
84 </ul><h2>Вывод</h2>
84 </ul><h2>Вывод</h2>
85 <p>В этом уроке мы разобрались, как программистам готовиться к собеседованию, чтобы уменьшить волнение при его прохождении. Остается потренироваться и подтянуть слабые стороны. В этом случае вы увеличите вероятность успешного прохождения интервью. В дополнительных материалах мы поделились полезными ссылками, которые помогут лучше подготовиться к интервью.</p>
85 <p>В этом уроке мы разобрались, как программистам готовиться к собеседованию, чтобы уменьшить волнение при его прохождении. Остается потренироваться и подтянуть слабые стороны. В этом случае вы увеличите вероятность успешного прохождения интервью. В дополнительных материалах мы поделились полезными ссылками, которые помогут лучше подготовиться к интервью.</p>