Какой бы язык программирования вы ни изучали, какие бы сложные программы ни писали, вы всегда будете опираться на одни и те же базовые принципы. В этой статье вы узнаете, какие понятия составляют основы программирования. Чтобы понять эти темы, не нужно знать математику или разбираться в компьютерных командах. Так что если ваши дети хотят учиться программированию, самые фундаментальные темы вы сможете донести до них самостоятельно.
1. Переменные
Переменная - это некий объект, который содержит нужную программисту информацию. Представьте себе бейджик "Привет, меня зовут __________". Пробел, куда вы вписываете своё имя - это переменная, а имя - это её значение (или свойство).
У переменных может быть множество свойств: наименование, тип, срок жизни, место хранения в памяти. Когда разработчик пишет программу, он объявляет переменные - "знакомит" с ними компьютер - и задаёт их свойства. После этого он может раз за разом обращаться к переменным, проводить с ними операции, менять значения и так далее. Разные языки используют разные переменные. Однако вне зависимости от того, программируете ли вы на Python, Scratch или JavaScript, именно взаимодействие с переменными и составляет суть компьютерной программы.
2. Условные конструкции
Если разобраться, главная задача программиста - это заставить машину принимать решения по предложенным обстоятельствам. При этом желательно, чтобы результат был не хуже, чем если бы такую работу выполнял человек. Однако если человек может сам анализировать ситуацию, компьютеру приходится вручную расписывать все этапы размышлений. Программист продумывает цепочки необходимых действий и говорит компьютеру: ЕСЛИ ты видишь А, ТО делай Б, ИНАЧЕ делай В.
Например, вы пишете программу, которая напоминает снять показания счётчиков 10-го числа каждого месяца. Цепочка рассуждений будет следующей:
- Проверить текущую дату
- ЕСЛИ на календаре 10-е число, ТО напомни снять показания
- ИНАЧЕ возвращайся на первый шаг.
Реальные программы могут включать очень ветвистые деревья таких рассуждений, которые предусматривают десятки вариантов развития ситуации. Очень важно продумать каждое условие, ведь если компьютер столкнётся с непредвиденными обстоятельствами, программа перестанет работать.
3. Функции
Для работы с переменными программисты используют функции. Это модули, которые содержат в себе описание какой-либо операции или задачи. Эти операции можно применять к другим объектам программы, добиваясь тем самым поставленной задачи.
Функции работают по принципу "чёрного ящика": программистам не приходиться разбираться в их внутреннем устройстве, чтобы воспользоваться результатом. Они невероятно упрощают работу с кодом, позволяя парой команд добавлять в программу множество операций. Во многом именно благодаря функциям компьютерную программу легко читать и разбирать на составные шаги.
4. Циклы
Как мы рассказывали в статье про устройство процессора, вся магия компьютерных возможностей заключается в возможности выполнять миллиарды операций в секунду. При этом значительная часть этих операций может быть зациклена - процессор раз за разом повторяет одно и то же действие, пока не добьётся указанного в программе условия. Программист может прописать точное количество циклов или указать другое условие, которое нужно выполнить для перехода к следующему шагу.
Когда вы учите детей программированию, можно объяснить циклы и условия на примере уборки комнаты. На полу разбросаны игрушки, на столе беспорядок из тетрадей и учебников, на незаправленной постели валяются вещи из шкафа. Как научить робота наводить порядок? Сначала разберёмся на полу.
ПОКА на полу есть игрушка ->убери её в ящик ИНАЧЕ переходи к кровати
Робот будет повторять этот цикл, пока видит на полу хотя бы одну игрушку. А потом перейдёт к следующему участку, где продолжит работать по тому же принципу.
ПОКА на кровати одежда -> убери её в шкаф ИНАЧЕ переходи к столу
На столе у нас есть тетради и книги. Первые нужно сложить в стопку, а вторые - поставить на полку.
ПОКА на столе тетрадь -> положи её в стопку ИНАЧЕ ПОКА на столе книга -> поставь её на полку
5. Типы и структуры данных
Когда мы говорили о переменных, мы использовали в качестве примера имя. Но на самом деле в переменных могут храниться самые разные данные:
- Числа (целые, дробные, положительные, отрицательные).
- Булевы значения (то есть соответствующие одному из двух допустимых вариантов - да/нет, М/Ж, рабочий день/выходной).
- Символы (a-z, 0-9, !,^, и т.д.).
- Последовательности символов (например, одна переменная хранит имена, вторая - фамилии).
Поскольку для компьютера нет разницы между именем "Саша" и последовательностью цифр "1742", ему нужно каждый раз указывать, с какими данными он имеет речь. Так он не будет пытаться вычитать одно слово из другого или писать роман числами.
Чтобы удобно обращаться с разными данными, программисты составляют их в так называемые структуры. Это специальные конструкции, внутри которых информация упорядочивается неким определённым образом. Например, массивы и списки представляют собой ряды значений, в стеках и очередях важно, в каком порядке данные сохраняются.
Углубляться в тему структур данных мы сейчас не будем. Главное, что нужно понять, чтобы начать учиться программировать - у разработчиков есть множество средств для работы с разными данными, а курсы программирования учат правильно применять их на практике.