пятница, 6 ноября 2015 г.

Как мой брат стал программистом - Часть 1

Краткое содержание поста: Я попросил своего брата Алексея рассказать для читателей моего блога, как он научился программировать. Он взялся за дело с энтузиазмом, но в Части 1 дошел только до Бейсика.

***

В нашей семье компьютер появился в марте 1996 года. Это был Pentium 75MHz с 8Mb памяти. Но мое знакомство с программированием началось еще до покупки этого компьютера.

Наш первый компьютер.



Где-то я отыскал советскую книгу (брошюру), которая включала в себя несколько глав-статей о вычислительной технике. Я не помню, о чем были главы этой книги, но я запомнил хорошо одну из них. Называлась запомнившаяся глава "Диалоги с программистом", и она была посвящена основам программирования на Basic и чуть-чуть касалась Logo. Logo-часть мне в душу не запала (хотя много лет спустя этот язык сыграл важную роль в моей жизни), а вот Бейсик заворожил. Несмотря на простоту всех примеров, мне было интересно увидеть, каким образом пишутся программы для компьютера. Стоит отметить, что в то время я сталкивался и с другими примерами программ на Бейсике. На съемной даче на чердаке были найдены некоторые старые (в основном за 1987 год и позже) номера журнала "Наука и жизнь". В них были рубрики "Человек и компьютер" и "Школа начинающего программиста". В этих рубриках содержались примеры разных программ. Как я помню, некоторые из них были на Бейсике. Но эти программы были достаточно сложны для понимания неподготовленным читателем. Поэтому особого вдохновения из "Науки и Жизни" я не почерпнул. Хотя одну из этих программ я позже запускал на своем компьютере.

Страница из "Науки и жизни" и перебитый текст программы для QBasic.


Когда у нас только появился компьютер, я предпринял попытку записать текст Бейсик программы в файл (тогда это делалось в штатном редакторе Norton Commander), дать файлу разрешение "exe" и запустить полученного монстра. Понятное дело, ничего не вышло, и компьютер просто зависал (а если бы операционной системой было бы что-нибудь Unix-подобное, а не MS-DOS, то такое решение почти смогло бы сработать; но не будем отвлекаться). Я тогда абсолютно ничего не знал о средах разработки, интерпретаторах, компиляторах. Поэтому я не имел представления о том, как писать и запускать программы. Но это не стало преградой для программирования. На компьютере были обнаружены BAT-файлы, которые представляли из себя текстовый набор команд похожих на реальную программу. Не помню точно, откуда у меня появились хоть какие-то знания о возможных командах (я до сих пор почти ничего не знаю про написание скриптов в Windows), но несколько недопрограмм было написано. Часть знаний точно была из книги Фигурнова (6-е издание), а часть знаний получена путем обратной инженерии существующих файлов. В то время Андрей проявлял куда больший интерес к программированию, чем сейчас, поэтому некоторые недопрограммы были написаны нами вместе или Андрей полностью сам написал их.

Наиболее значительной недопрограммой был анимированный эпос в двух частях с двумя трупами. Это был настоящий CG мультфильм, в котором вся графика была создана покадрово с использованием текстовых прямоугольников и с помощью команды "echo". Пауза между кадрами обеспечивалась при помощи все той же "echo", которой задавался специальный символ, отвечающий за воспроизведение короткого звукового сигнала. Других звуков, кроме межкадровых пищаний, в фильме не было.

Кадры из фильма и пример исходного кода.





Были и другие недопрограммы, которые обладали некоторой степенью интерактивности. В них за все управление отвечали команды "choice" и "if" с нужным "errorlevel". Это было что-то наподобие тестов, в которых следующие вопросы зависят от ответов пользователя.

Пример исходного кода.



Прошло некоторое время, и я обнаружил, что на компьютере есть Win 3.11 для рабочих групп. Достаточно было набрать "win" в командной строке, чтобы попасть в мир окон. Само по себе наличие этого Win 3.11 было не особо интересным, но именно внутри его основной оболочки обнаружилась иконка с заветным именем QBasic. И это было истинное начало моего обучения на программиста.


(http://windows3-1.narod.ru/index/0-27)

Комментариев нет: