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

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

Как насчет создания программного обеспечения? Первая программа, которую большинство разработчиков программного обеспечения пишет для себя, — это «Hello, World!» программа. Пример на языке Си:

После настройки среды разработки вам будет предложено ввести программу «Hello, world». Вы создаете и запускаете программу, и на дисплее появляются волшебные слова. На этом этапе, как обещает учебник, вы сделали самую сложную часть; все остальное просто доработка.

Программа «Hello, world» делает одну вещь: она печатает на экране слова «hello, world». Ничего впечатляющего в этом, конечно, нет. (В конце концов, если вы просто хотите вывести слова на экран, вы можете получить это, открыв текстовый процессор и набрав их.) Но, как и первое простое блюдо из яиц, или скворечник, или первое стихотворение, суть не в том, что вещь, которую вы сделали замечательной сама по себе. Акт создания вещи есть достижение.

Как и другие обучающие проекты, «Hello, world» дает людям тщательно выработанный первый опыт с новым навыком, сродни первому прыжку в бассейн для новичка. «Привет, мир» знакомит их с типичным опытом программирования: вводом кода и просмотром того, что происходит. Следующий шаг — начать играть с кодом, как с глиной, изменяя форму, чтобы увидеть, что еще возможно. Новички неизбежно пытаются вставить свое имя и заставить компьютер обращаться к ним лично. (В зависимости от уровня зрелости аудитории, еще один популярный вариант — заставить машину отображать грубые слова.)

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

«Привет, мир» — это обычное введение в языки программирования — почти каждое руководство по новой среде разработки включает «Привет, мир», чтобы дать представление о языке. Опытные разработчики ожидают увидеть «Hello, world» в качестве первого примера. «Здравствуй, мир» мало чему учит новый язык, но это знакомый знак, сродни знаку «Вход» на двери незнакомого здания: вы можете не знать, что происходит внутри, но вот где вы можете войти и начать учиться. Как и в первом предложении «Смотрите, как бежит Дик» в учебнике для начинающих по английскому языку, основные элементы иллюстрируются тем, как начинающие программисты изучают язык. Не просто прочитать код, а написать его — начать самовыражаться.

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

«Привет, мир» недостаточно, чтобы сделать вас экспертом, но этого достаточно, чтобы начать. С помощью короткого примера вы можете получить представление о языке — действительно, вы можете многое узнать о языке программирования, просто подсчитав, сколько строк вам нужно, чтобы написать «Hello, world». Количество строк, необходимое для выполнения чего-то простого, подразумевает, что вам потребуется больше строк для создания более сложной программы, рассказывающей о сложности языка.

Вопрос сложности намекает на обманчивую природу «Hello, world»: обещание, что запуск одной программы — самое большое препятствие на пути к тому, чтобы стать опытным программистом. Это действительно вежливая фикция. Как только вы напечатаете на экране слова «привет, мир», начнется ваша настоящая работа. Утверждение «Привет, мир» — это самый трудный шаг к тому, чтобы стать программистом, равносильно утверждению, что вы открываете текстовый процессор и набираете «Человек жил и умер. Конец." — это самая трудная часть написания романа — без сомнения, это самые насущные моменты процесса, но тяжелая работа над романом остается.

Конечно, можно представить себе учителя письма, говорящего, что просто положить слова на страницу — это самый важный шаг в письме, и, возможно, в этом есть доля правды — в конце концов, когда слова написаны, все, что остается, — это просто уточнение. То же самое верно и для написания программного обеспечения: как только вы взяли в руки инструмент в первый раз, вам остается только совершенствоваться в его использовании.

Но чтобы стать лучше, нужно сначала начать. И это то, что «Hello, world» позволяет вам сделать: начать с нежного приветствия машине. Подобно тому первому блюду, или скворечнику, или стихотворению, в мире существует вещь, которой раньше не было. Здравствуй, мир, правда.