Прежде чем приступить к изучению какого-либо конкретного языка программирования, начинающим разработчикам следует освоить ряд важнейших понятий, которые лежат в основе разработки ПО, пишет на портале The New Stack Джек Уоллен, признанный эксперт в области Linux и программирования.
Для многих людей разработка ПО — это нечто необъяснимое, удел сверхумных людей, которые потратили годы на изучение информатики в школе Лиги плюща.
На самом деле это не так.
Разработчиком может стать каждый, если только он готов потратить время на изучение языка и приложить усилия. Но даже до того, как вы выберете язык, на котором сосредоточитесь, есть некоторые ключевые вещи, которые нужно понимать в программировании, независимо от того, какой язык вы используете и для чего разрабатываете.
Приведу аналогию. Если вы решили, что хотите стать шеф-поваром, вам нужно понять основы кулинарии, прежде чем пытаться изучить тонкости работы в ресторане со звездой Мишлен. Пропустите эти основы, и у вас ничего не получится.
Но что это за основы? Начав изучать Python, я понял, что было бы лучше, если бы я понял эти вещи, прежде чем бросаться в бой с головой.
Вот они.
Комментарии и документация
Начнем с того, что не требует пояснений. Когда вы пишете код, вы должны добавлять комментарии и документацию. Почему? Потому что может наступить момент, когда вам придется пересматривать старый код (и вы не сможете вспомнить, что делали), а может быть, кто-то другой возьмется за это. Если вы не будете комментировать и документировать свой код, вам будет сложно понять, что происходит. Убедитесь, что вы понимаете, как добавлять комментарии и документацию в выбранном вами языке (например, в некоторых языках для комментариев используется #, а в некоторых — /).
Условные выражения
Условные выражения довольно просты. Проще всего объяснить их так: если условие выполняется (True), то выполняется один блок кода, а если условие не выполняется (Falsе), то выполняется другой блок кода. Простой пример на языке Python:
name = "Jack" if name == "Jack": print("Welcome, Jack!") else: print("I don’t know you.")
Условие выше: if name == "Jack":.
Условия — очень важная часть программирования, они позволяют создавать более сложный код.
Творчество
Вы можете удивиться, почему я включил творчество в этот список. Дело в том, что творчество абсолютно необходимо для разработки ПО. В какой-то момент вы столкнетесь с проблемой, и обычные решения ее не решат. Когда это произойдет, вам придется применить творческий подход. В разработке ПО нет одного пути к успеху, и иногда лучший путь может быть неочевиден. Творческий ум всегда сможет увидеть несколько решений проблемы и применить любое из них, чтобы понять, какое решение лучше. Не стесняйтесь использовать свой творческий потенциал.
Типы данных
Каждый язык программирования использует типы данных, потому что вы не можете просто бросить кусок данных в программу и ожидать, что она будет работать, не помогая языку понять, что означает этот тип. Есть несколько универсальных типов данных, которые используются в каждом языке, например целые числа, числа с плавающей запятой, логические значения и строки. Очень важно, чтобы вы не только понимали, какие типы данных доступны в выбранном вами языке, но и знали, как они работают и что делают.
Управление потоком
Контроль потока определяет, как происходит выполнение кода. Существует три основных типа управления потоком:
- Последовательное — код выполняется строка за строкой.
- Выборочное — код выполняется на основе условий.
- Итерация (циклы) — операторы могут повторяться многократно, пока не будет выполнено условие.
Функции
Функция — это единица кода, предназначенная для выполнения определенной задачи. Функции содержат набор инструкций для выполнения задачи и могут многократно использоваться внутри программы или даже повторно использоваться в других программах. Они определяются по имени и затем вызываются по имени во всей программе. Функции являются модульными, позволяют программистам абстрагироваться от деталей операции, являются многоразовыми, легко понимаются и помогают упростить тестирование и отладку.
Библиотеки и фреймворки
Библиотеки и фреймворки облегчают расширение набора функций языка программирования и позволяют писать еще более сложные программы без необходимости каждый раз заново изобретать колесо. Однако библиотеки и фреймворки — это разные вещи. Библиотека — это набор заранее написанных модулей, включающих многократно используемые функции, классы и структуры данных для выполнения определенных задач. Фреймворк, с другой стороны, содержит набор библиотек, включающих определенные функции. Оба этих инструмента делают программирование более эффективным, гибким, масштабируемым и надежным.
Циклы
Цикл позволяет вам многократно запускать блок кода на основе определенного условия. Существует несколько типов циклов, например, циклы с контролем входа (где условие проверяется до основного тела цикла), циклы с контролем выхода (где условие оценивается в конце цикла), циклы for (итерации по последовательности элементов), циклы while (структура потока с контролем входа, которая выполняет блок кода повторно, пока условие остается истинным), циклы do-while (структура с контролем выхода, которая выполняет блок кода минимум один раз, а затем повторяет цикл, пока условие остается истинным) и вложенные циклы (где один цикл помещается внутри другого).
Переменные и синтаксис
Вместо того чтобы «жестко кодировать» каждое значение в своей программе, вы можете использовать переменные, которые служат контейнерами для хранения значений данных. Использование переменных значительно упрощает написание кода. Кроме того, при необходимости вы можете легко вносить изменения в эти переменные. Например, если вы зададите name = «Jack» в начале программы и будете далее использовать переменную name, то, если вам понадобится изменить «Jack» на «Olivia», вам не придется просматривать всю программу, чтобы внести изменения, а нужно будет изменить переменную только один раз.
С переменными связан синтаксис, который определяет структуру языка. Учитывая, что большинство языков программирования используют свой собственный синтаксис, важно понимать, что вы должны следовать этим правилам, иначе ваша программа не будет работать. Например, вы должны знать, как определить целое число в вашем языке. Например, синтаксис Python для определения типов данных (также известный как «кастинг») выглядит следующим образом:
x = str(3) y = int(3) z = float(3)
В C++ это было бы так:
int x = 3; float z = 3; char str[] = "New Stack";
Контроль версий
Хотя на первых порах вам, скорее всего, не понадобится использовать систему контроля версий (например, Git), со временем она станет незаменимой (особенно при работе в команде). Контроль версий позволяет отслеживать изменения в коде и управлять ими. При работе в команде контроль версий позволяет ей управлять изменениями в коде с течением времени. Каждая модификация, внесенная в код, размещенный в системе контроля версий, отслеживается в специализированной базе данных, и если в код вкралась ошибка, его можно откатить. Контроль версий может стать вашим лучшим другом как разработчика ПО.
Вот собственно те несколько основ, которые вам нужно понять, прежде чем отправиться в мир программирования. Я только поверхностно коснулся этих концепций, так что вам придется продолжить свое обучение по каждой из них и, пока вы этим занимаетесь, начать изучать тонкости и странности языка программирования, который вы выбрали для работы.