Азы программирования

Мондо, знаете ли, не дурак. Во всяком случае, не совсем дурак. Он в курсе, что на одном только титуле Байкера по жизни далеко не уедешь, каким бы крутым не был бы старт. Он не сможет вечно быть студентом Пика Надежды, да и мозгов, чтоб избежать такой судьбы, у него побольше, чем у какого-нибудь Хагакуре.


Но не так много, как у Чихиро. У него дорога понятная и прямая, без лишних поворотов. Мондо завидовал, но не говорил ничего. Не у всех же такая судьба должна быть. И вообще, раз Чихиро приходит на тренировку именно к Мондо, значит, не так уж у него всë плохо. Ему под силу найти кого-нибудь получше.


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


— Оовада-кун, всë ли в порядке? — спросил Чихиро во время очередной вечерней тренировки.


Неужели у него лицо такое сложное было? Раз его выдало лицо, то язык точно подведёт. Лучше сейчас сказать.


— Потом поговорим. Когда закончим.


Ну или потом. Дал себе небольшую отсрочку.


Чихиро, спасибо ему большое, не стал расспрашивать. Только принялся ещё усерднее отжиматься. В отличие от Мондо, который едва-едва находил в себе силы сделать положенные тридцать три отжимания и приседания.


— Я вот всë спросить хотел, — начал Мондо.


— Что такое, Овада-кун?


— Я бы…


Хотел что-нибудь ещё попробовать в жизни?


— В общем, мне интересно, что ты там на компе пишешь. Сам-то я, может, и не пойму и не попробую сам нихрена, но иногда…


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


— Это очень здорово, Овада-кун!


Глаза Чихиро так засияли, что Мондо понял: если облажается, то никогда не сможет себя простить.


— Я готов помочь! Но, боюсь, только завтра смогу… — протянул он с печалью. — После сегодняшнего всë тело болит… Тут уж не до программирования.


— Конечно, я не тороплю, — вздохнул Мондо, надеясь, что к завтрашнему дню Чихиро либо забудет, либо передумает.


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


С самим Мондо он не разговаривал, только кивал издалека и махал рукой. Может, улыбался даже. Мондо не видел, не подходил. И вовсе не из-за стеснения… А может, и из-за него. Чëрт знает. У Мондо и так все мысли были забиты будущим «уроком» и тем, не передумал ли Чихиро его проводить. Он ведь и не обязан.


А потом, когда последний урок подошëл к концу, на телефон пришло сообщение, что он ждëт у кабинета информатики.


Не передумал. Чëрт. Хорошо. Или не хорошо?.. А, катись оно.


— Ну привет, — буркнул Мондо неожиданно тихо для себя самого.


— Привет, Овада-кун! — помахал Чихиро. — Хоть мы уже здоровались.


— В общем, спасибо, что согласился позаниматься со мной. Это… Важно для меня.


— Мне и самому радостно, что ты решил именно ко мне обратиться! — улыбнулся Чихиро, пока Мондо прикидывал, а есть ли среди знакомых кто-нибудь ещё, кто так же хорошо шарит в компах. На ум приходили только учителя, но к ним у Мондо доверия не было.


— С чего лучше начать? Как вообще эти полотна английских букв… Работают?


— Это только со стороны кажется, что это полотно непонятных символов… На самом деле за всем этим стоит простой алгоритм. Хотя и в английском надо немного разбираться…


— Ага… — нахмурился Мондо и помолчал. Потом махнул рукой. Чего умником-то прикидываться? — Прости за тупой вопрос, но алгоритм это вообще что такое?


— На самом деле это очень хороший вопрос! — улыбнулся Чихиро так, что у Мондо пропало всякое смущение. — Алгоритм это последовательность действий. Даже мы с тобой сейчас действуем по определëнному алгоритму! И всегда действуем…


— Такое простое объяснение и такое непонятное слово, — подумал Мондо вслух. — Точно не наше…


Он решил не спрашивать, программы ли они тогда. Мондо не так туп. Наверное. Может быть.


— А слово это произошло от имени учëного Аль-Хорезми! — продолжил Чихиро.


«Точно не наш», — подумал Мондо, задвинув мысли о том, программа ли он, на второй планы.


— Боюсь, это всë, что я о нëм знаю… — пробормотал он. — Впрочем, к программированию это не относится.


Мондо кивнул с пониманием.


— А эти алгоритмы, их вообще, ну… С чем едят?


«С маслом, блин», — усмехнулся он самому себе.


— В смысле, как их оформлять? А сейчас и покажу!


Чихиро открыл SWord, щëлкнул где-то вверху и на экране появился список фигур.


— Ого! А я и не знал, что тут так можно. Я-то обычно только текст набирал да картинки вставлял. И то редко.


— SWord не только это умеет делать! — с жаром сказал Чихиро. — Хотя да, он предназначен в первую очередь для набора текста.


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


— И таблицы тоже, — подтвердил он. — Но сейчас пока не об этом! Важно то, что программа, на самом деле, выполняет определëнную задачу по определëнному порядку действий. Это и есть алгоритм, и его можно представить вот так…


Руки Чихиро так быстро запорхали над клавиатурой, что у Мондо глаза заболели. А говорят ещё, монитор вреден. Они просто Абсолютного Программиста за работой не видели. Мондо тоже предпочëл отвернуться, а когда Чихиро окликнул его снова, на мониторе уже оказалась нехилая такая таблица с… Блоками какими-то?


— Это чë? — только и выдавил Мондо.


— Блоки, необходимые для составления схемы, по которой будет работать программа!


Он крепко призадумался.


— Давай-ка я тебе сейчас это на конкретном примере покажу! Может, что-нибудь из твоей байкерской деятельности разберëм?


— Ну ты и обозвал! — рассмеялся Мондо. — Знаешь, я смотрю на это, и думаю, что если каждое действие в такую… Штуку уложить, то ты до вечера это рисовать будешь…


— И то правда, — вздохнул он. — Тогда возьмëм мой пример…


Чихиро решил взять за пример «что-то простое», как он сам выразился. Взял он открытие двери и, пока Мондо размышлял, как такое вообще можно разбить на отдельные действия, Чихиро уже сделал аж две схемы сразу. В одной развилки не было, в другой была.


— Стало понятнее?


Мондо долго-долго смотрел в монитор… Но в итоге покачал головой. С любым другим он бы просто ляпнул, что всë понял и забил. Но раз уж за дело Чихиро взялся… С ним хочется разобраться в этом деле по-настоящему. Крутым прогером ему не стать, мозги не те. Но, во всяком случае… Теперь полотна кода казались не такими уж и страшными. Чуть-чуть.


— Не совсем… — Мондо не знал, с чего начать, и в итоге спросил первое, что в голову взбрело, — Обязательно делать блоки именно такими? Почему нельзя их делать одинаковыми, например?


— Для удобства. Это вот здесь, в маленьком алгоритме, в теории можно было бы обойтись одинаковыми блоками и никто бы не запутался. А в больших, вроде создания ИИ?.. Хотя там немного по-другому, но в целом…


Мондо даже спрашивать побоялся, как тогда.


— Ладно, думаю, я понял. А что делать, если вариантов не два, а три там или четыре? Или вообще миллион?


— Ну, на миллион даже у меня вряд ли получится, — хихикнул Чихиро и Мондо стало за себя стыдно. — Но вообще, на несколько вариантов написать цикл не так уж сложно.


Схема разрослась ещё больше, и чем дольше Мондо смотрел на неё, тем слабее улавливал, в чëм вообще соль. Но это точно не вина «учителя». Просто кому-то дано, а кому-то нет.


— Я, кажись, понял, — вздохнул Мондо. — Спасибо, Фуджисаки-кун, но я, пожалуй… Не буду тебе мешать.


— В смысле? — захлопал Чихиро глазами.


— Думаю, что не моё это. Мне ближе тренировки там, спорт, вот это вот всë… Зачем тебе с дубиной мучиться?


— Почему ты решил, что ты дубина?


— Мне так нутро подсказывает.


Чихиро хлопнул ладонью по столу, и Мондо вспомнил Киëтаку.


— Нет, я всë равно хочу учить тебя! Я хочу показать, что программирование может быть доступно всем!


— Даже мне?.. — пробормотал Мондо, силясь прикинуть, какой заварушке дал начало.


— Даже тебе! И вообще почему «даже»? Ты далеко не настолько безнадëжен! Ты ведь проявил интерес, а значит, сможешь стать лучше! Нужно просто немного постараться…


Наверное, так может рассуждать лишь человек с талантом, но Мондо прерывать его не хотел. Да и… Если честно, кое-что понять всë-таки удалось. Может, он и вправду небезнадëжен. Может.


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


Мондо не смог сдержать улыбки.


— Надеюсь, тебе не будет тошно со мной заниматься.


Чихиро поматал головой.


— Наоборот! Это так волнительно вспоминать азы самому… Так что мне только в радость заниматься с тобой. А пока… Может, продолжим?


Мондо только кивнул, наконец-то отпуская все сомнения.