программистское: первая программа
Apr. 30th, 2013 12:54 pmРасскажите, как вы научились программировать? В каком возрасте вы написали свою первую серьезную программу, на каком языке и компьютере, что она делала?
В 12 лет мне подарили программируемый калькулятор Электроника МК-52, и я загонял в него готовые программы из "Техники - молодежи" (который мы выписывали) и "Науки и жизни". Но сам писал только тривиальные примеры, и программированием это не считаю. Были умельцы; старший товарищ
luarvique, например, написал в этом калькуляторе программу для решения кубика Рубика, если память не изменяет. Но мне не хватало для таких подвигов знаний и терпения.
В 13 лет - я начал ходить заниматься на настоящих компьютерах (!!!) в местном пединституте, где был компьютерный класс Yamaha MSX1 (по знакомству; там преподавал отец старшего товарища, и я ему безмерно благодарен). Молодое поколение не знает, наверное, что это было. 64KB памяти, восьмибитный микропроцессор Z80, зашитый в ROM интерпретатор Бейсика, который запускался по умолчанию, когда включали компьютер. Один центральный компьютер с цветным экраном (!!!) и дисководом, и дюжина периферийных, с монохромным зеленым монитором и приводом для чтения программ с магнитофонных кассет. Все компьютеры объединены в локальную сеть, и с центрального (который простым смертным не доверяли) можно было запускать программы на периферийных.
Моими первыми настоящими языками были Бейсик и ассемблер Z80. Первыми серьезными программами были простые игрушки, а также программа на Бейсике для вычисления числа пи, которой я гордился; она пользовалась, если не ошибаюсь, формулой Мэчина, про которую я сам нашел и прочитал в математической энциклопедии после того, как вначале попробовал более простую формулу, и убедился, что она очень медленно сходится. Когда я в 15 лет уехал в Израиль, то взял с собой трехдюймовую дискету, на которой было несколько любимых игрушек и исходники этой программы; эта дискета потом потерялась.
На MSX можно было делать довольно мощные игрушки на Бейсике благодаря аппаратной поддержке спрайтов (небольших битмапов, которые записывались отдельно в видеоконтроллер, и потом двигались по экрану атомарными операциями, заслоняя друг друга в определенном порядке). Перерисовывать весь экран несколько раз в секунду не получилось бы, Бейсик не успевал, но спрайты двигать было легко. Когда мне стало не хватать скорости, я начал добавлять куски на ассемблере, вставленные прямо из Бейсика (командой POKE). Потом я освоил операционные системы MSX-DOS (вариант MS-DOS 1.0) и CP/M, которые можно было загрузить из дискеты или кассеты вместо Бейсика. На ассемблере в них можно было писать целые отдельные программы. Довольно скоро в пединституте установили второй класс компьютеров помощнее, MSX2 (128KB памяти!!!). А еще через год, когда мне было 14, такой же класс установили даже в моей школе.
Постепенно я перешел на Турбо Паскаль, но не могу вспомнить, какие программы я на нем писал. А в 15 лет я уехал в Израиль, где про MSX никто ничего не знал. Через несколько месяцев мы купил свой собственный компьютер (!!!), он был на основе Intel 80486DX.
Расскажите о том, с чего вы начали программировать, и какие первые нетривиальные программы писали?
(P.S. у меня была похожая запись в прошлом, но там говорили почти исключительно о компьютерах, а в этой мне захотелось вспомнить именно программы, которые я писал)
В 12 лет мне подарили программируемый калькулятор Электроника МК-52, и я загонял в него готовые программы из "Техники - молодежи" (который мы выписывали) и "Науки и жизни". Но сам писал только тривиальные примеры, и программированием это не считаю. Были умельцы; старший товарищ
В 13 лет - я начал ходить заниматься на настоящих компьютерах (!!!) в местном пединституте, где был компьютерный класс Yamaha MSX1 (по знакомству; там преподавал отец старшего товарища, и я ему безмерно благодарен). Молодое поколение не знает, наверное, что это было. 64KB памяти, восьмибитный микропроцессор Z80, зашитый в ROM интерпретатор Бейсика, который запускался по умолчанию, когда включали компьютер. Один центральный компьютер с цветным экраном (!!!) и дисководом, и дюжина периферийных, с монохромным зеленым монитором и приводом для чтения программ с магнитофонных кассет. Все компьютеры объединены в локальную сеть, и с центрального (который простым смертным не доверяли) можно было запускать программы на периферийных.
Моими первыми настоящими языками были Бейсик и ассемблер Z80. Первыми серьезными программами были простые игрушки, а также программа на Бейсике для вычисления числа пи, которой я гордился; она пользовалась, если не ошибаюсь, формулой Мэчина, про которую я сам нашел и прочитал в математической энциклопедии после того, как вначале попробовал более простую формулу, и убедился, что она очень медленно сходится. Когда я в 15 лет уехал в Израиль, то взял с собой трехдюймовую дискету, на которой было несколько любимых игрушек и исходники этой программы; эта дискета потом потерялась.
На MSX можно было делать довольно мощные игрушки на Бейсике благодаря аппаратной поддержке спрайтов (небольших битмапов, которые записывались отдельно в видеоконтроллер, и потом двигались по экрану атомарными операциями, заслоняя друг друга в определенном порядке). Перерисовывать весь экран несколько раз в секунду не получилось бы, Бейсик не успевал, но спрайты двигать было легко. Когда мне стало не хватать скорости, я начал добавлять куски на ассемблере, вставленные прямо из Бейсика (командой POKE). Потом я освоил операционные системы MSX-DOS (вариант MS-DOS 1.0) и CP/M, которые можно было загрузить из дискеты или кассеты вместо Бейсика. На ассемблере в них можно было писать целые отдельные программы. Довольно скоро в пединституте установили второй класс компьютеров помощнее, MSX2 (128KB памяти!!!). А еще через год, когда мне было 14, такой же класс установили даже в моей школе.
Постепенно я перешел на Турбо Паскаль, но не могу вспомнить, какие программы я на нем писал. А в 15 лет я уехал в Израиль, где про MSX никто ничего не знал. Через несколько месяцев мы купил свой собственный компьютер (!!!), он был на основе Intel 80486DX.
Расскажите о том, с чего вы начали программировать, и какие первые нетривиальные программы писали?
(P.S. у меня была похожая запись в прошлом, но там говорили почти исключительно о компьютерах, а в этой мне захотелось вспомнить именно программы, которые я писал)
no subject
Date: 2013-04-30 10:01 am (UTC)И кстати, удивительно, я тоже начинал с MSX и бейсика, потом был турбопаскаль. Никогда б не подумал что у нас столько общего :-)
no subject
Date: 2013-04-30 12:39 pm (UTC)(no subject)
From:no subject
Date: 2013-04-30 10:02 am (UTC)Следующим языком стал сразу Ассемблер. Выбора особо не было — машина такая слабая, что на Бейсике ничего и не напишешь. Документации по Ассемблеру не было, поэтому я выучил язык по комментариям к листингам ассемблерных программ в журнале «Радио-86РК».
Потом уже был «Спектрум», три года, а уже после — писюки.
no subject
Date: 2013-05-02 12:20 am (UTC)Но, правда, до того были программируемые калькуляторы, последний - Электроника МК-85, тоже на Бейсике.
no subject
Date: 2013-04-30 10:04 am (UTC)no subject
Date: 2013-04-30 10:06 am (UTC)( оказывается, синтаксис С можно вполне правильно подсвечивать, проходя код посимвольно и заглядывая на один символ вперёд, плюс какая-то спецобработка для ключевых слов. варварство жуткое, но работало! )
no subject
Date: 2013-10-05 01:07 pm (UTC)no subject
Date: 2013-04-30 10:09 am (UTC)Забавно это всё ))
no subject
Date: 2013-04-30 10:10 am (UTC)Через пару лет Электроника ДЗ-28, Искра-226, СМ-4.
Программы... Помню, на HP-85b писал программу для оптимизации укладки ящиков на поддоны для транспортировки. Потом её совершенствовал и портировал на Искру и СМку.
Впрочем, первое что написал для "Искры" - была "змейка", она же "питон". :-)
no subject
Date: 2013-04-30 10:13 am (UTC)no subject
Date: 2013-04-30 10:14 am (UTC)Жаль исходники не сохранились - были записаны на 3.5'' дискетке, которая потерялась.
no subject
Date: 2015-04-16 08:34 pm (UTC)no subject
Date: 2013-04-30 10:15 am (UTC)no subject
Date: 2013-04-30 10:15 am (UTC)no subject
Date: 2013-04-30 10:21 am (UTC)(no subject)
From:no subject
Date: 2013-04-30 10:15 am (UTC)Не становясь программистом, я вынес из этого опыта важное понимание о природе постановки вопроса и о формализации задачи. Самым сложным для меня оказался в какой-то момент вопрос о слоговом "р". В сербохорватском (и отчасти словенском -- там это иначе, но для задачи это не очень важно) "р" может быть обычным согласным, как в словах река, рука, а может быть слогообразующим, как в словах крв, рт, Србиjа. Правило, по которому можно отличить обычное "р" от слогового, простое (оно очевидно даже из приведенных примеров), но я долго не мог понять, как его имплементировать в коде, пока родственник мне не объяснил (оказалось, что это очень просто; ключевое слово "флаг").
no subject
Date: 2013-04-30 10:16 am (UTC)Программировать в школьные годы учился в местном политехе, первый действительно серьёзный "доинститутский" проект - интерпретатор LISP для PDP-11, затем - функциональный аналог нортон-коммандера для той же платформы, написанные на ассемблере. В перерывах писал на С, бейсике (с тех пор его не люблю), паскале, ассемблере IBM 360/370, Рапире (да-да, был такой эпизод в летней школе мелких программеров под Новосибом) и вообще всём, что попадалось под руку. А с MSDOS-ом и железом x386 впервые встретился уже после поступления в МИФИ.
Из нетривиальных программ того времени, о которых не стыдно вспомнить, написал на спор систему распознавания образов (букв, нарисованных звёздочками в текстовом файле) на макро-языке редактора MultiEdit :)))) Правда уже в институте, лет в 18.
А вот программируемые калькуляторы как-то прошли мимо.
no subject
Date: 2013-04-30 10:18 am (UTC)no subject
Date: 2013-04-30 10:19 am (UTC)Второе - игра типа перестрелки двух башен, очень гордился своими баллистическими формулами. Это уже Бейсик на Спектруме.
На ТрупоПаскале 5.5 не дописал квест. Перешел на 6.0, но там отказались работать какие-то спрайтовые библиотеки и пришлось забить. Дискета 5 дюймов с ТурбоПаскаль 5.5 и некоторыми исходниками до сих пор со мной.
А дальше был Метроверкс Паскаль, это уже Мак. Написали программу по расчету времени поездки в московском метро и еще какие-то простенькие вещи. Потом Метроверкс Си, но на нем уже мало программал, в основном занимался дизайном приложений.
А потом, в 1996 году, жизнь изменилась, и программированием больше не занимался.
no subject
Date: 2013-04-30 10:19 am (UTC)Фортран, обработка статистики.
После универа - всякий САПР и АСУ и доморощенные БД на ПЛ/1.
Потом часть этого САПРа переводил уже на персоналки (на С без плюсов).
no subject
Date: 2013-04-30 10:20 am (UTC)no subject
Date: 2013-04-30 10:22 am (UTC)Там была знаменитая БК-0010-Ш.
Первая серьезная программа - тест для студентов музучилища на построение аккордов и интервалов на бейсике для той же БКшки.
Потом мне удалось залезть в вычислительный центр нашего комбината, там я выучил Си и на нем писал аналог Нортон коммандера для ксеникса.
Далее было много разного, в диапазоне от обсчета сжатия трубок в прокатном стане до дискриминантного анализа детской смертности и построения расписания, но это уже во время института, 1 и 2 курс - и в программу обучения естественно не входило.
На дискриминантном анализе я заработал свой первый миллион ( рублей, в 1994) :)
Потом я уехал в Израиль и детские поделки кончились.
no subject
Date: 2013-04-30 10:22 am (UTC)Первую жизнеспособную программу я написал на Фортране, это была геометрическая библиотека, применявшаяся потом несколько лет для моделирования ЭЛТ (матриц для изготовления ЭЛТ, точнее, методом центрифугирования жидкого стекла).
no subject
Date: 2013-04-30 02:42 pm (UTC)На Рефале я, помнится, написал программу, печатающую случайный текст N-го порядка на основе введенного.
(no subject)
From:(no subject)
From:no subject
Date: 2013-04-30 10:24 am (UTC)игры тогда не интересовали, а зря как я сейчас думаю (((
ближе к 15-16 годам купили Pentium-166, надыбал книжку по программированию под MS-DOS на ассемблере тоже, делал всякие вещи... покупал на рынке диске "хакерские", тогда же начал изучать Си/Си++, потом Pascal, Delphi, Perl, ASP, PHP, C#, ASP.NET. Сейчас очень понял как мне не хватает знаний по языку JavaScript (вот сам удивляюсь сколько всего сделал, и даже не знал как JavaScipt работает), вот только недавно начал его изучать, сейчас ещё Java тоже изучаю...
по поводу что конкретно писал, даже не помню ((( 80% моего кода это автоматизация производства, работаю в связи, это и обвесы к станциям, и автоматизация рутинных операций и куча всяких утилит по автоматической настройке оборудования. Сейчас 80% это офис, управление задачами, процессами, абонентами, работами, повреждениями, склад и т.п.
no subject
Date: 2013-04-30 10:26 am (UTC)Потом записался в кружок и на Искра-226 на бейсике писал какую-то игрушку-стратегию, а потом шахматы.
Одновременно (все это было году в 86-87-м), изучал Фортран IV и гонял учебные проги на ЕС-1033.
После армии в 89-м решил выучить что-то более серьезное, чем бейсик и выучил паскаль. Использовал долгие годы, сначала турбо, потом дельфи. На паскале (и вначале на PC/XT) написал большую программу моделирования спектральных линий.
Потом решил использовать для правильных научных дел правильный язык, и с тех пор пишу только на Фортране, хотя последние пару лет использую еще и питон.
no subject
Date: 2013-04-30 10:26 am (UTC)у меня еще был удаленный доступ к СМ-4 и БЭСМ-6 (!).
а потом повезло, в руки попал болгарский Эпл-2 с графортом + доступ к ЕС 1022 (!!) с перфокартами :)
no subject
Date: 2013-04-30 02:44 pm (UTC)no subject
Date: 2013-04-30 10:29 am (UTC)no subject
Date: 2013-04-30 10:31 am (UTC)А дальше покатилось, понесло ... (с)
no subject
Date: 2013-04-30 10:33 am (UTC)Семейная легенда гласит, что был стрип-покер на Spectrum, в который надо было долго и нудно играть, чтобы при каждом выигрыше показывалась следующая полоска, раскрывая тему сисек.
Мы же с моим школьным товарищем слегка покопались в коде, нашли место где хранились все эти картинки и в итоге смогли выводить все на экран без всяких игр в покер.
Это был несомненный успех, определивший дальнейший жизненный путь.
no subject
Date: 2013-04-30 10:33 am (UTC)Было интересно читать раздел "Человек и компьютер" в "Науке и Жизни", оттуда почерпнул представления о разных вычислительных алгоритмах. Потом они даже издали книжку на основе этих статей, название к сожалению точно не помню, что-то вроде "100 советов начинающему программисту", в средней школе была моей настольной книгой.
Примерно в 1992 году в школе появились китайцы на 286 с VGA и стал работать факультатив по программированию, вот это был кайф, нам уже давали достаточно времени по вечерам. Сделал на ассемблере красивую трехмерную демку "Падение в шахту лифта", эффекты делались с помощью манипуляций с VGA палитрой.
Дома в 1993 появился ZX Spectrum 48k, встроенный бейсик и ассемблер Z80. Писал под него много чего, начиная от драйвера принтера, заканчивая красивыми нестандартными загрузчиками для игр.
no subject
Date: 2013-04-30 02:32 pm (UTC)(no subject)
From: