#  Re: Освоение программирования
Andrew Lobanov (tavern,1) → Peter  –  04:24:35 2018-05-15

Peter> Сугубо для оживления беседы. :) У меня был примерно такой путь:

Забыл же про свой неказистый путь рассказать =)

Когда мне было два года, отец собрал свой первый компьютер Радио-86РК. Честно говоря, я ничего толкового о нём рассказать не могу, кроме того, что мне очень нравилась на нём игра "Клад" и ещё отец написал простенькую программку, которая занимала меня пока он готовил ужин, а за одно учила считать до десяти. На экране было изображено десять вертолётиков и если я правильно их сосчитал и ввёл ответ, один из них улетал. Изображались вертолётики вот так:

====
-.-
*=(0)
====


так как компьютер не имел графического видеорежима.

Потом был спектрум. Тоже самопальный и в разных вариантах. Без дисковода с 48 килобайтами памяти, с дисководом с ним же, с 128 килобайтами памяти, потом даже с музыкальным сопроцессором. Там я лет до восьми только в игрушки играл и баловался графическим редактором Art Studio. А лет в восемь задал себе вопрос: как же делаются эти игрушки? Как раз примерно в это время мой друг принёс мне книжку по бейсику для детей. Называлась она, как сейчас помню, "Сказки дядюшки компьютера". Там были нелепые истории и самое ценное - примеры программ на бейсике, визуализирующие эти истории. Меня тогда это сильно впечатлило, но при ближайшем рассмотрении оказалось, что написаны они на диалекте бейсика, отличном от спектрумовского. Сейчас я искренне недоумеваю как мне тогда это удалось, но я смог их ввести в спектрум и адаптировать под имеющийся диалект.

Если кто не помнит или не знает, ввод программ на бейсике в спектруме был достаточно хитёр. Каждый символ занимал в памяти один байт, но ввести можно было только 128 символов. И ещё 127 значений этого байта было отведено под команды бейсика. То есть на экране было написано какое-нибудь слово, например, "CIRCLE", а в памяти эта команда занимала целый байт. В связи с этим команды вводились нажатием одной клавиши или клавиши-модификатора и буквы. Это сильно усложняло мне задачу, ведь на тот момент у меня была только самодельная клавиатура вообще без какой-либо маркировки и догадаться, что надо нажать, например, EXT MODE и букву для ввода команд было тяжело. Но я и с этим справился =)

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

Так я и баловался с бейсиком и в ус не дул. Я слышал, что есть некий ассемблер, но у меня не было ни литературы ни компилятора этого дела. А больше языков я не знал совершенно. Даже не догадывался об их существовании. Открытием для меня стало приложение к журналу "Радиолюбитель" с оригинальным названием "Мой компьютер". Оказалось, что есть такой язык, как паскаль. Читая статьи и пытаясь понять опубликованные в журнале программы, я возомнил его чем-то очень крутым. Строго говоря, оно так и было, ведь прогаммы были ориентированы на Turbo Pascal от Borland, и PC с паскалем на фоне спектрума с бейсиком был очень классным и интересным. Но PC у меня не было. Как и какого-нибуь компилятора паскаля.

Правда однажды я у кого-то стянул компилятор для спектрума, но на 128 килобайтах оперативки что-то дельное на нём было сделать тяжело. Он был тяжёлый и на программу оставалось мало памяти. То есть было просто тесно. Не знаю, скорее всего я с ним просто не разобрался, ведь сопроводительной документации к нему у меня не было. Так что побаловавшись немного, я так и вернулся на бейсик, лелея мечту когда-нибудь осилить ассемблер, потому что все крутые программы на спектруме были написаны именно на ассемблере. Значительно позже мне попался справочник по процессору Z80 (сердцу спектрума), но сама концепция программирования на ассемблере настолько отличается от программирования на бейсике, что ничего это мне не дало.

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

Так я и промаялся с бейиком до 14 лет. А потом в моей жизни появился PC на базе 486 процессора. Рухлядь по тем временам (2001-й год), но после простенького спектрума это было для меня откровением. До того момента я вживую видел PC только у друга и ничего в нём не понимал. Только в дум резаться умел =)

Друзья быстро присоветовали книжку и дали заветные дискетки с турбо паскалем. На книжку мне пришлось копить несколько месяцев, но я всё таки её купил. Как сейчас помню, Немнюгин С. А. "Turbo Pascal Учебник". Кстати, очень хорошая книжка была для старшеклассников. Наисана ясно и примеры хорошие. Так я начал писать программки для доса.

Потом был целый пентиум, разогнанный аж до 166 МГц и Windows. И Delphi с ужасной книжкой "Delphi для чайников". Случилось это где-то уже годам к 16. На страшной и ужасной Delphi я просидел ещё несколько лет и даже диплом писал там же. А потом я открыл для себя GNU/Linux и занялся егё изучением. И программирование несколько забросил, ведь кроме паскаля ничего не знал, а с free pascal быстро наигрался. Так продолжалось достаточно долго и двигаться дальше я начал уже года в 24. Для начала освежил в памяти паскаль, начал играться с python-ом, вспомнил, что хотел попробовать написать игру для Instead. И понеслось до сих пор.

Профессиональная деятельность у меня ушла от программирования далеко в сторону, а для себя я пишу на чём попало. Python3, Common Lisp, Go и, конечно, lua. Ведь инстед стал частью моей жизни.

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

// Надеюсь, это было не слишком скучно читать =)