Большинство языков программирования используют слова на английском языке. Обычно языки программирования состоят из английских слов, которые хорошо известны любому, кто изучал английский в школе. Например, для того чтобы вывести что-то на экран используются слова “print” или “write”. То есть языки созданы таким образом, чтобы они были понятны людям. Как и в человеческих языках для общения, в языках программирования существует набор различных правил, которые влияют на внешний вид программы и на то, какие действия будет выполнять компьютер при ее исполнении.
О разработке программ.
Программы есть везде. Где есть компьютеры, там есть программы. Но, что же это такое, программа? По простому, это рецепт обработки данных некоторым образом. Как в кулинарном рецепте обрабатываются продукты, что бы получить готовое блюдо, так и в компьютерной программе обрабатываются данные до получения результата. Взять несколько чисел, сложить их, сохранить, подождать ввода данных, вывести на экран и так далее.
Фактически, компьютер это, всего лишь, большая глупая счетная машинка, умеющая в точности выполнять инструкции. Там, где человек руководствуется здравым смыслом и опытом, компьютеру надо невероятно подробно объяснять как сделать то или иное действие. То есть такие действия, как к примеру, "пройти по коридору, потом в лифт и на 11 этаж" вполне понятны практически любому человеку, и в отличие от компьютера, он сможет их выполнить. Для компьютера эти инструкции являются грамматически не точными и не полными. Компьютер не знает, что такое коридор и где в нём находится лифт, как и то, что же это такое этот лифт. Где его местоположение в коридоре? Что значит зайти в него? Что значит "на 11 этаж"? И так далее. Что бы объяснить компьютеру подобное, необходимо вложить в него специфичный язык описания объектов, словарь для всех видов действий, и, конечно, базу знаний хранящую описания этих объектов.
С чего начинается разработка любой программы.
Самое сложное в разработке программ, это не выучить язык программирования. Самое сложное в программировании, это научиться "думать" как компьютер, научиться разделять большую задачу на маленькие, прорабатывать детали, продумывать граничные случаи. Именно этому мы и будем учиться, а не только просто языку.
Разработка любой программы начинается с анализа предметной области и входных требований.
На самом верхнем уровне, мы, пытаемся ответить на такие вопросы как: В чем заключается задача? Чего хочет пользователь? Что ему требуется? Как он будет ей пользоваться и как долго? Что может позволить себе пользователь? Какая степень надежности необходима? Мы ищем ответы на эти и другие вопросы, которые постепенно раскрывают суть и цель задачи.
Следующим шагом обычно идёт проектирование решения. В процессе проектирования, задача обычно разбивается на более мелкие составные части, которые потом описываются в виде точного порядка шагов, или же алгоритмизируются. Кроме этого в процессе проектирования, мы пытаемся ответить на такие вопросы как: Как решить задачу? Какую структуру должна иметь система? Из каких частей будет состоять система? Как эти части будут взаимодействовать между собой? Как они будут общаться с пользователем? Как протестировать систему? Как спрашивать у пользователя данные? и так далее.
После проектирования, обычно идёт процесс переноса алгоритма из описательного вида, в исходный код (это текст программы написанный языком программирования), и его тестирование.
Что такое алгоритмизация решения.
После ответа на базовые вопросы, задача обычно алгоритмизируется. То есть для программы разрабатывается строго определенный набор правил и инструкций, точно описывающих определенный порядок действий, успешное выполнение которых приводит к какому-то определенному результату. Этот набор правил и инструкций называется алгоритмом. Причем абсолютно не важно кто, или что, будет исполнителем. Будет ли это компьютер, какое либо другое устройство, или что-то ещё.
В процессе алгоритмизации решения, вы постоянно отвечаете вопросы подобные следующим:
"Что если?", "Что нужно сделать?", "Как это сделать?", "Как долго выполнять?", "В каком количестве?, и так далее.
К примеру задача: "Налить чай в кружку.". Может показаться, что это простая задача, но это совершенно не так.
На самом верхнем уровне её можно разбить на задачи:
1. Взять кружку
2. Взять пакетик с чаем
3. Положить его в стакан
4. Налить в него воды.
Теперь, для каждого из этих пунктов надо задать вопрос "А что если?". К примеру для задачи "Взять кружку" вопросы могут быть такими: Что если кружка полная? Что если она грязная? Что если у кружки нет дна и горлышко запаяно? :)
Для задачи "Взять пакетик": Что если они кончились? Что если это уже не свежий пакетик (мы же не уточнили откуда взять)? И так далее.
Потом вы задаёте вопросы "как сделать так, что бы решить случай, который вы выяснили задав вопрос "что если?". То есть, если кружка полная, то что сделать? Вылить? Выпить? Подогреть? Проверить температуру? Определить, что там налито?
После этого решаете как это сделать. Потом повторяете этот цикл, пока их не останется открытых вопросов. В результате простая задача обрастает миллиардом подробностей, а вы получите алгоритм, или порядок действий для решения задачи.