Несколько простых ответов на сложные вопросы о программировании

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

Каждый задавался вопросом, как же работает компьютер. Что происходит после того, как мы нажимаем на кнопку, щёлкаем мышкой по файлу или когда смотрим фильм. И как создаются те программы, с помощью который мы всё это делаем. Статья "Что такое код?" от Bloomberg Businessweek объясняет важные, но сложные вещи доступно для несведущих в программировании читателей.

Но она очень длинная — 38 тысяч слов. Чтобы прочесть её, нужно примерно полтора часа. Поэтому издание Business Insider сделало резюме статьи, а мы перевели это резюме.

Принципы работы компьютера просты и универсальны

Компьютер берёт два числа, выполняет над ними математическую операцию и использует результат вычисления в следующей операции. И это повторяется миллиарды раз в секунду. Автор статьи сравнивает компьютер с часами, но только с очень необычными.  

Программы используются во всех современных устройствах

Речь не только о привычных нам Windows или Angry Birds. Программы управляют банкоматами, лифтами, стиральными машинами … практически всем. Мы привыкли считать, что программисты — это ребята, которые работают в Google или в стартапах, но большинство программистов пишут программное обеспечение (ПО) для продуктов несофтверных компаний.   

Назначение программ — управлять данными

Изображениями, аудиозаписями, почтовыми адресами … все это, по сути, — данные.  Большинство цифровой информации хранится в базах данных — разновидности программ, которые придуманы специально для этих целей. Другие программы добавляют данные, меняют их, извлекают для каких-то целей.

Всякая программа начинается с кода

Чтобы создать программу, необходимо написать код. Код — это последовательность символов на экране.  Да, ваш браузер, текстовый редактор, музыкальный плеер — это, по сути, огромная куча символов.

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

перфокарта

Перфокарта формата IBM. "Punch-card-blue". Под лицензией CC BY-SA 3.0 с сайта Викисклада   

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

Мы неправильно используем слово "алгоритм"

Алгоритм — это набор инструкций, которые решают конкретную задачу. Можно часто услышать об "алгоритме Google" или "алгоритме Facebook". Но это никакие не алгоритмы, это программы, которые с помощью алгоритма выполняют задачу, например, индексации сайтов в интернете.

Существует как минимум 1700 языков программирования

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

Есть объектно-ориентированные языки, например, Java, который позволяет структурировать код, используя классы и их объекты. Его чаще всего используют в крупных компаниях для работы команд разработчиков над большими проектами.

Ещё есть C++, C#, Python, JavaScript (который не имеет ничего общего с Java), PHP, Ruby, COBOL ... Короче говоря, их очень много.

Это непонятное слово "фреймворк"

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

Быть программистом сложно, поэтому они постоянно ботанят и не моют посуду  

Проблема в том, что эта отрасль меняется очень быстро. Навыки и знания программиста могут устареть ещё до того, как они ими хорошо овладеют.

Еще одна проблема уже вошла в анекдоты: чужой или ранее написанный код обычно кажется неправильным и ему постоянно требуется доработка, тестирование и исправление. Представьте, что вы с кем-то говорите, и некоторые слова постоянно произносятся не так, как должны. И вы вынуждены исправлять себя и повторяться ещё раз, и ещё раз, и ещё раз … Вот примерно так можно описать программирование.

Программист — это не работа, а особый склад ума  

Научиться писать код может каждый. Но написание кода — лишь часть работы. Хороший программист быстро обучаем и видит всю картину в целом: понимает свои ошибки и может вообразить, к каким последствиям приведёт то, что он делает, до того, как станет слишком поздно.

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

via