Доколе мы будем читать скучные учебники? Или как я поступал на магический факультет

Я прочитал много книг. Некоторые про программистов. Но меня каждый раз настигало разочарование. Вот почему нет ни одной строчки кода? А если я захочу повторить?


Увы, но получалось, что читаю чистую фантастику. И нельзя взять и набрать тот же код, что и главный герой. По причине принципиального отсутствия этого кода. Зато столько эпитетов к тому главному герою -- какой он умный и классный, прям специалист экстра класса. Конечно, если бы он показал свой код, то уже такие эпитеты просто померкли.


Открываю учебник, чтобы научиться программированию. И тут ситуация противоположная, новое разочарование – текст учебника сухой. Где сюжет? Где борьба главного героя против ошибок в коде? А нет их. Просто описание теории, а потом вот вам листинг, набирайте.

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


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


В памяти всплыло замечание одного преподавателя по программированиванию:

-- Если расскажешь парням теорию, то они либо понимают, либо нет. Если не понимают, что им нужно время на осмысление.

Если расскажешь девушкам теорию, то сегодня они понимают, завтра нет, послезавтра снова понимают. Зависит от того, в какой одежде сидят тараканы в девичьей голове. И можешь не угадать.


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

В Word текст занимает менее 3-х страниц, не имеет окончания и сюжета как такового.


Основной вопрос: Интересно ли такое вообще кому-нибудь? Хотели бы себе такие учебники/самоучители?


Небольшая хитрость. В процессе обсуждения может всплыть и какой-нибудь интересный сюжет.

Пока что считаю, что программирование = магия, а С++ -- это магия хаоса. Текст основан на учебнике Лафоре по С++.


--- Основной текст ---


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


Лекции по магии разнообразны. Были всякие начертания символов, история родного мира и так далее. Меня интересовала лишь магическое искусство – вот цель моей жизни! Первая лекция по магии веяла скукотой – нам рассказывали историю магии: когда зародилась и как раньше использовалась. К черту историю, я хочу прямо сейчас применять магию на практике! Пусть даже это будет самый минимум!


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


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


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


Подготовил пустой свиток и алтарь. И мое первое заклинание – вот оно! А фигушки! Я не знаю как колдовать!


В итоге я сдался, и пришлось изучать теорию. Заклинания школы хаоса начинаются с призыва главного управляющего. Призыв достаточно простой, достаточно начертать пару слов:

int main() {}


И все! Мой первый управляющий готов! Но, не смотря на столь грозное название, у этого управляющего нет собственных способностей и возможностей. Прям обидно. Он даже говорить не способен!


Чтобы управляющий смог говорить, я должен подключить повелителя потоками. Благо, повелитель потоками есть в местной библиотеке и мне не нужно писать сложные заклинания, достаточно выполнить призыв и подключение повелителя потоками:

#include <iostream>


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


Чтобы не обращаться каждый раз к повелителю потоками как «Стандартный повелитель потоков выполни то и то», я призову использование его родного именного пространства

using namespace std;


Ура! Теперь мое базовое заклинание готово! Осталось это все записать начиная с призыва повелителя потоков, установки его родного именного пространства, а также призыв главного управляющего

#include <iostream>

using namespace std;

int main()

{

// здесь будут мои заклинания

return 0;

}


Добавил "return 0", т.к. это нужно по инструкции. Далее видно будет для чего оно служит. Но запускать мое первое заклинание бессмысленно – оно ничего не умеет выполнять. И даже никак не отзовется. Просто правильно оформлено. Поэтому подключу повелителя потоков к моему главному управляющему, чтобы тот произнес свои первые слова. Все лишь нужно между фигурными скобочками вписать команду «говорить»

{

cout << "Приветствую, мой господин!";

return 0;

}


Отлично! Здесь cout – это рот управляющего и он скажет все то, что написано далее в кавычках. Двойная стрелочка вкладывает слова в уста управляющего. К сожалению, до голосовых модулей мне еще далеко, поэтому текст отобразится на моем магическом алтаре – белые буквы на черном фоне.


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

Запускаю и на черном полотне появляется искомое:


Приветствую, мой господин!


Ура! Это мое первое заклинание! У других принято обращаться к миру, но я – не они! И я не собираюсь следовать этим правилам. Теперь же буду обучать свою первую зверушку выполнять некоторые полезные действия.


Мне хотелось, чтобы этот прообраз голема обращался ко мне по имени. Но как это сделать? В методичке расписано про какие-то структуры памяти. Это как ящик для хранения той или иной информации. Ладно, пусть будет так.


Но видов ящиков памяти великое множество. Одни предназначены для чисел, другие для символов, а третьи вообще как шкафы могут включать другие ящики. И чтобы моя призванная болванка смогла запомнить мое имя, мне пришлось открыть учебник на середине и оттуда взять нужную структуру.

char name[15];


На первом месте стоит тип памяти – просто символ. Далее название, которое я дал ему -- «имя» на древнеэльфийском записывается как “name” . В скобках поставил количество символов. Вид скобок показывает, что это набор ящиков. Выглядит как пакет с пакетами. И имя всегда будет занимать 15 ячеек памяти, в каждой ячейке один символ. Квадратные скобки обозначают, что символы образуют строку.


С именем разобрались, теперь нужно научить болванчика слушать. Говорить он может с помощью команды cout, а навык слушания открывается с помощью команды cin. Для красоты вывода добавил переносы сточек с помощью endl или "\n", что одно и то же.

{

cout << "Назовись!\n";

char name[15];

cin >> name;

cout << "Приветствую тебя, " << name << ", мой повелитель !" << endl;

}


--- Конец отрывка ---


UPD: артефакторика -- это намек на развитие в сторону Arduino. "Артефакты древних программистов", хах. А вдруг?


UPD 2: таким образом можно переписать не только учебник по программированию, но и физику, математику и т.д.