# Не забывайте о "Hello, world"

(В оригинале - Learn to Say "Hello, World")

Paul Lee, имя пользователя leep, более известен как Hoppy, имел репутацию эксперта в программировании. Мне требовалась помощь. Я подошел к его рабочему месту и спросил, не мог бы он взглянуть на мой код?

«Конечно», - сказал Hoppy, отодвигая стул. Я постарался не зацепить пирамиду пустых банок из под колы, стоящую позади него. «Какой код?»

«В функции в файле», - ответил я.

«Что ж, давай посмотрим». Hoppy отодвинул в сторону копию K\&R и придвинул к себе клавиатуру.

Так, а где же IDE? Похоже, что у Hoppy IDE не был запущен вообще, а был только какой-то редактор, которого я совсем не знал. Несколько нажатий клавиш – и файл открыт. На нужной функции (а файл был очень большим). Он пролистал функцию до того места, о котором я говорил.

«А что произойдет, если `x` будет отрицательным?» - спросил я. «Похоже, что так не должно быть».

Я потратил все утро на поиск способа сделать `x` отрицательным, но большая функция в большом файле была лишь частью очень большого проекта, и цикл перекомпиляции и перезапуска был слишком долгим для эффективной работы. Возможно, такой эксперт, каким был Hoppy, мог бы просто дать мне ответ?

Hoppy ответил, что он не уверен. К моему удивлению, он не стал ничего делать в K\&R. Вместо этого, он скопировал часть кода себе в редактор, заменил в нем индентацию, сделал его функцией. После чего добавил еще одну функцию с бесконечным циклом, запрашивающую у пользователя входные данные, вызывающую нашу функцию и печатающую результат. Он сохранил это все в файл tryit.c. Все это я бы мог сделать сам, хотя и не так быстро. Однако следующий шаг был одновременно и простым, и полностью для меня новым.

```
$ cc tryit.c && ./a.out
```

Вау! Его программа, еще несколько назад бывшая лишь идеей, уже работала! Мы попробовали разные варианты входных данных и быстро подтвердили мои подозрения (хоть в чем-то я оказался прав). После чего он перепроверил отдельные места в K\&R. Я поблагодарил его и пошел к себе, снова постаравшись не зацепить стоящую позади него пирамиду пустых баночек.

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

```
#include <stdio.h>

int main()
{
    printf("Hello, World\n");
    return 0;
}
```

Автор оригинала - [Thomas Guest](http://programmer.97things.oreilly.com/wiki/index.php/Thomas_Guest)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/ru/thing_36.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
