35 вопросов о программировании, на которые вы должны знать ответ

Программирование – это процесс создания компьютерной программы, включающий в себя проектирование программы, использование алгоритмов, написание кода программы и так далее.

Код программы содержит инструкции, которые являются исполняемыми командами, выполняемыми машиной после преобразования кода компилятором.

Отладка – это процесс поиска и устранения ошибок в программе.

  • Синтаксические ошибки.
  • Runtime errors или ошибки времени выполнения.
  • Логические ошибки.

Синтаксическая ошибка возникает, когда в коде программы допущена опечатка или есть несоответствие правилам используемого языка в языковой конструкции, имени переменной, функции и так далее. Ошибка определяется на этапе компиляции программы.

Runtime error возникает в случае, когда программа пытается совершить нелегитимное действие, например, поделить на ноль. Ошибка времени выполнения может появиться на любом этапе работы программы, когда совершается неправильное действие. В случае возникновения этой ошибки машина останавливает выполнение программы и может показать диагностическое сообщение, объясняющее суть ошибки.

Логическую ошибку труднее всего определить, так как она может не проявляться при компиляции и во время выполнения программы, но при этом приводит к ее неправильному выполнению. Логическая ошибка может возникнуть как из-за неправильного применения алгоритма, так и из-за простого чтения/записи неправильной переменной.

Блок-схема – это графическое представление программы. Блок-схема помогает понять логику работы программы или ее части при проектировании.

Алгоритм – это конечный набор шагов, которые при следовании им решают какую-то задачу.

Поддержка программы – это процесс регулярного обновления программы для удовлетворения новых требований к оборудованию или программному обеспечению. Это процесс улучшения и обновления программы после ее установки.

Переменные – это именованные ячейки памяти, которые используются для хранения данных программы, результатов ее вычислений. Значение переменной может меняться в ходе выполнения программы.

Зарезервированные или ключевые слова – это слова и выражения, которые имеют предопределенные значения и не могут использоваться при написании кода для иных целей, например, для именования переменных. Примеры распространенных ключевых слов в языках программирования – это конструкции if/then/else или различные варианты циклов. Вроде for и while.

Цикл – это языковая конструкция, которая может определять участок программы для многократного повторения и количество этих повторений.

В различных языках эти конструкции описываются по-разному, но в большинстве языков можно найти конструкции вида for, while, do … while. Цикл содержит условие окончания, и по времени проверки этого условия циклы могут быть с предусловием и постусловием.

For использует счетчик и полезен при выполнении заранее определенного количества итераций.

While будет выполнять действие до тех пор, пока заданное условие не станет ложным. Это полезно при необходимости использования цикла с неопределенным числом итераций.

Цикл, который выполняется в теле другого цикла, является вложенным.

Документация – это подробное описание алгоритмов и частей программы, процесса проектирования, тестирования и паттернов правильного использования. Документация может предназначаться как для пользователя программы, так и для разработчика.

Компилятор «читает» код, написанный на определенном языке программирования, и преобразует описанные команды и конструкции языка в исполняемый машинный код.

Двоичный код – это бинарная форма представления кода определенного языка программирования.

Константа – постоянная, именованное значение, которое не может быть изменено. Константы могут быть числовыми и строковыми.

Числовые константы могут содержать целые, числа с одинарной и двойной точностью.

Строковые константы могут содержать последовательность букв и чисел, заключенных в кавычки.

Операторы – это специальные символы, которые используются в коде программы для выполнения определенных операций над данными. Операторы могут быть арифметическими, логическими, реляционными и присваивающими.

Массив – это набор смежных областей памяти, которые хранят данные определенного типа.

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

Арифметические операторы применяются для выполнения арифметических операций над значениями.

Реляционные операторы используются в программировании для сравнения значений. Результатом оценки с использованием реляционных операторов будет true или false.

Логические операторы объединяют простые условия для построения более сложных (под условием мы имеем в виду выражение, оценивающее истинность).

Оператор присваивания используется для сохранения значений в переменной.

Низкоуровневый язык программирования – язык, близкий к тому, что используется при программировании непосредственно в машинных кодах реального или виртуального процессора.

Отличие высокоуровневых языков от низкоуровневых – наличие абстракций, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде очень длинны и сложны для понимания.

Машинный код – это язык программирования, который может обрабатываться напрямую процессором, без необходимости предварительной компиляции.

Надежность – это гарантированная правильная работа программы в течение определенного времени.

Тестирование ПО – это процесс проверки программного обеспечения на соответствие требуемому качеству работы, а также проверка пользовательского опыта, который дает программа.

Бета-версия программы – это версия, которая может быть доработана и изменена после получения обратной связи от пользователей. Бета-версия – рабочая версия программы, не готовая к финальному запуску.

Анализ программы – это процесс решения проблемы программы путем разбиения большой проблемы на подзадачи. Каждая подзадача или «под-проблема» будет решаться отдельно, что в конечном итоге приведет к более простому решению глобальной проблемы.