35 вопросов о программировании, на которые вы должны знать ответ
Подготовили список вопросов о программировании, которые вам могут задать на собеседовании. Они не относятся к конкретному ЯП, а раскрывают общий уровень.
1. Что такое программирование?
Программирование – это процесс создания компьютерной программы, включающий в себя проектирование программы, использование алгоритмов, написание кода программы и так далее.
2. Как работает программный код?
Код программы содержит инструкции, которые являются исполняемыми командами, выполняемыми машиной после преобразования кода компилятором.
3. Что такое отладка?
Отладка – это процесс поиска и устранения ошибок в программе.
4. Назовите типы ошибок, которые могут возникнуть в программе
- Синтаксические ошибки.
- Runtime errors или ошибки времени выполнения.
- Логические ошибки.
5. Расскажите о синтаксических ошибках
Синтаксическая ошибка возникает, когда в коде программы допущена опечатка или есть несоответствие правилам используемого языка в языковой конструкции, имени переменной, функции и так далее. Ошибка определяется на этапе компиляции программы.
6. Расскажите об ошибке времени выполнения
Runtime error возникает в случае, когда программа пытается совершить нелегитимное действие, например, поделить на ноль. Ошибка времени выполнения может появиться на любом этапе работы программы, когда совершается неправильное действие. В случае возникновения этой ошибки машина останавливает выполнение программы и может показать диагностическое сообщение, объясняющее суть ошибки.
7. Расскажите о логических ошибках
Логическую ошибку труднее всего определить, так как она может не проявляться при компиляции и во время выполнения программы, но при этом приводит к ее неправильному выполнению. Логическая ошибка может возникнуть как из-за неправильного применения алгоритма, так и из-за простого чтения/записи неправильной переменной.
8. Что такое блок-схема?
Блок-схема – это графическое представление программы. Блок-схема помогает понять логику работы программы или ее части при проектировании.
9. Что такое алгоритм?
Алгоритм – это конечный набор шагов, которые при следовании им решают какую-то задачу.
10. Что по вашему значит «Поддерживать и обновлять программу»?
Поддержка программы – это процесс регулярного обновления программы для удовлетворения новых требований к оборудованию или программному обеспечению. Это процесс улучшения и обновления программы после ее установки.
11. Что такое переменные?
Переменные – это именованные ячейки памяти, которые используются для хранения данных программы, результатов ее вычислений. Значение переменной может меняться в ходе выполнения программы.
12. Что такое зарезервированные слова в программировании?
Зарезервированные или ключевые слова – это слова и выражения, которые имеют предопределенные значения и не могут использоваться при написании кода для иных целей, например, для именования переменных. Примеры распространенных ключевых слов в языках программирования – это конструкции if/then/else или различные варианты циклов. Вроде for и while.
13. Что такое цикл?
Цикл – это языковая конструкция, которая может определять участок программы для многократного повторения и количество этих повторений.
14. Назовите разные виды циклов
В различных языках эти конструкции описываются по-разному, но в большинстве языков можно найти конструкции вида for, while, do … while. Цикл содержит условие окончания, и по времени проверки этого условия циклы могут быть с предусловием и постусловием.
15. Чем отличаются for и while?
For использует счетчик и полезен при выполнении заранее определенного количества итераций.
While будет выполнять действие до тех пор, пока заданное условие не станет ложным. Это полезно при необходимости использования цикла с неопределенным числом итераций.
16. Что такое вложенный цикл?
Цикл, который выполняется в теле другого цикла, является вложенным.
17. Что такое документация?
Документация – это подробное описание алгоритмов и частей программы, процесса проектирования, тестирования и паттернов правильного использования. Документация может предназначаться как для пользователя программы, так и для разработчика.
18. Что делает компилятор?
Компилятор «читает» код, написанный на определенном языке программирования, и преобразует описанные команды и конструкции языка в исполняемый машинный код.
19. Что такое двоичный код?
Двоичный код – это бинарная форма представления кода определенного языка программирования.
20. Что такое константа?
Константа – постоянная, именованное значение, которое не может быть изменено. Константы могут быть числовыми и строковыми.
Числовые константы могут содержать целые, числа с одинарной и двойной точностью.
Строковые константы могут содержать последовательность букв и чисел, заключенных в кавычки.
21. Что такое операторы?
Операторы – это специальные символы, которые используются в коде программы для выполнения определенных операций над данными. Операторы могут быть арифметическими, логическими, реляционными и присваивающими.
22. Что такое массив?
Массив – это набор смежных областей памяти, которые хранят данные определенного типа.
23. Что такое подпрограмма?
Подпрограмма представляет собой автономный набор инструкций, которые могут использоваться из любой точки программы. Подпрограмма выполняет свою конкретную задачу, а затем возвращает управление основной программе, которая вызвала подпрограмму.
24. Когда применяют арифметические операторы?
Арифметические операторы применяются для выполнения арифметических операций над значениями.
25. Реляционные операторы
Реляционные операторы используются в программировании для сравнения значений. Результатом оценки с использованием реляционных операторов будет true или false.
26. Для чего нужны логические операторы?
Логические операторы объединяют простые условия для построения более сложных (под условием мы имеем в виду выражение, оценивающее истинность).
27. Зачем нужны операторы присваивания?
Оператор присваивания используется для сохранения значений в переменной.
28. Что значит «низкоуровневый язык программирования»?
Низкоуровневый язык программирования – язык, близкий к тому, что используется при программировании непосредственно в машинных кодах реального или виртуального процессора.
29. Высокоуровневый язык программирования
Отличие высокоуровневых языков от низкоуровневых – наличие абстракций, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде очень длинны и сложны для понимания.
30. Что такое машинный код?
Машинный код – это язык программирования, который может обрабатываться напрямую процессором, без необходимости предварительной компиляции.
31. Объясните термин «надежность ПО»
Надежность – это гарантированная правильная работа программы в течение определенного времени.
32. Что такое тестирование ПО?
Тестирование ПО – это процесс проверки программного обеспечения на соответствие требуемому качеству работы, а также проверка пользовательского опыта, который дает программа.
33. Что такое бета-версия?
Бета-версия программы – это версия, которая может быть доработана и изменена после получения обратной связи от пользователей. Бета-версия – рабочая версия программы, не готовая к финальному запуску.
34. Что значит «анализировать программу»?
Анализ программы – это процесс решения проблемы программы путем разбиения большой проблемы на подзадачи. Каждая подзадача или «под-проблема» будет решаться отдельно, что в конечном итоге приведет к более простому решению глобальной проблемы.
35. Как работает алгоритм?
Каждый алгоритм в программировании реализует по крайней мере три шага:
- Получение данных.
- Выполнение вычислений.
- Вывод результата.