Вступление

СОДЕРЖАНИЕ

Я пишу код, чтобы заработать себе на жизнь, и меня все время спрашивают: «Вы учились программировать в школе?», И правда такова: не совсем. В школе я изучал информатику (алгоритмы, структуры данных, формирование логических аргументов ... другими словами, теория), но в то время меня больше интересовало создание веб-сайтов и приложений, чем нюансы между быстрая сортировка и сортировка слиянием. Точно так же, как вы не изучаете теорию музыки, прежде чем возьмете в руки гитару, концепции информатики трудно понять, если вы никогда раньше не программировали. Вы сначала играете на гитаре, сначала, а потом у вас появляется желание изучать теорию музыки.

Теперь, когда я профессионально занимаюсь программированием уже пару лет, у меня возобновился интерес к ценности информатики. Эта серия посвящена возвращению к темам, которые я изучал в школе, и объяснению их таким образом, чтобы его было легче понять, чем, скажем, в учебнике, написанном в 1980-х годах. Обсуждаемые мной концепции будут полезны всем: от программистов вроде меня, которые хотят освежить свои знания, до нетехнических специалистов, которые хотят узнать немного больше о часто используемых терминах, таких как алгоритмы и данные.

Основы

Структуры данных

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

Рассмотрим библиотеку книг. Книги расположены в алфавитном порядке. Когда нам нужно найти конкретную книгу, которая начинается с буквы «М», мы знаем, что нужно поискать где-нибудь посередине книжных полок. Если кто-то хочет проверить книгу, которая в настоящее время проверена, его могут включить в список имен людей, которые хотят проверить эту книгу. Когда книга будет возвращена, первый человек, который был добавлен в список, будет следующим человеком, который проверяет книгу. Книжные полки и список имен являются примерами структур данных.

Алгоритмы и логика

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

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

Базовый алгоритм возврата книги в библиотеку

Step 1: Make a space for the book on the shelf
Step 2: Put the book onto the shelf

Некоторые алгоритмы более эффективны, чем другие. Например, библиотекарь не захочет просматривать каждую книгу, начинающуюся с буквы «А», чтобы найти книгу, которая начинается с буквы «М».

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

Алгоритм поиска книги Макбет с использованием логики

Заключение

Это основы информатики. В будущем я расскажу о них более подробно и объясню, как они могут быть полезны в различных сценариях. Моя цель здесь не в том, чтобы изобретать велосипед, существует множество мест, где обсуждаются одни и те же темы, а в том, чтобы представить информацию в понятной форме. Я стремлюсь разбить эти концепции на небольшие фрагменты, которые легко усваиваются и потребуют всего несколько минут вашего времени.