avva: (Default)
[personal profile] avva
Дорогие программисты и программистки (а также те, кто к программистам себя не причисляет, но программы писать умеет)!

Расскажите, пожалуйста, о своей первой нетривиальной программе ("нетривиальной" можно понимать, как вам удобно). На каком языка она была написана, что делала, на каком компьютере бежала, сколько вам тогда было лет? Конечно, можно рассказать только часть этой информации или, наоборот, подробнее.

Здесь уже набралось несколько интересных рассказов, но было бы здорово ещё почитать. Мне это ни для чего конкретного не нужно -- просто, по-моему, интересная тема.
Page 1 of 2 << [1] [2] >>

Date: 2002-08-08 12:48 am (UTC)
From: [identity profile] gianthare.livejournal.com
Как я уже писал когда-то у себя это "Жизнь" на Бэйсике, написанная вместе с [livejournal.com profile] bdbd. Бежала на Правце (это такой советский Эппл). Лет 13-14. Нетривиальный момент - массив координат всех живых клеток, точнее два массива, для x и для y (in those days Basic was real Basic, no records, no parametrized procedures, functions that can only be an expression, you know).

Date: 2002-08-08 05:21 am (UTC)
From: [identity profile] gianthare.livejournal.com
Т.е. Правец-то конечно болгарский, а не советский.

Date: 2002-08-08 01:01 am (UTC)
From: [identity profile] yole.livejournal.com
Насколько я помню, первой программой, которой я действительно гордился, был редактор сохраненных игр для Wizardry 7: Crusaders of the Dark Savant, написанный на Pascal. Это не самая первая программа - какую-то мелочевку и задачи из задачников я решал и раньше, а уж набиванием готовых программ из книжек/журналов вообще начал заниматься года за три до этого - но, можно сказать, первый серьезный проект. Мне тогда было 14.

Собственно, не так давно программа (ценой немалых усилий) была реанимирована, скомпилирована и выложена на сайт. Посмотреть можно здесь:
http://yole.ru/files/CDSEdit.zip

Date: 2002-08-08 01:11 am (UTC)
From: [identity profile] piggymouse.livejournal.com
"Жизнь" в двух вариантах: Fortran IV на СМ-2М и странный клон Бейсика под названием Quasic на какой-то ДВК. 15 с половиной лет. ДВК-шная версия, как сейчас помню, вводила исходную конфигурацию с перфоленты. Первый в жизни опыт оптимизации – большие поля очень долго обсчитывались целиком и я (довольно успешно) пытался выделять минимальную область, которую необходимо обсчитывать.

Date: 2002-08-08 01:12 am (UTC)
From: [identity profile] pe3yc.livejournal.com
1991 год, бутовый stealth-вирус, ассемблер.

Впрочем, я был не программистом, а постановщиком..

INSTR in 6502

Date: 2002-08-08 01:12 am (UTC)
From: [identity profile] wildernesscat.livejournal.com
The first "serious" program I wrote was an implementation of Basic's INSTR function for Apple II. Apple II's Basic didn't have such a function, so I dug up some information about its internals and wrote a program in 6502 assembly language that actually integrated into the existing Basic interpreter. I sent the program to the (then famous) "Anashim u-Makhshevim" magazine and it was even published. I was around 15... *ahhh* :)

Date: 2002-08-08 01:24 am (UTC)
From: [identity profile] tekilla.livejournal.com
первая "программа" была написана на бэйсике в 6м классе для БК, кажется, там были какие-то мигающие кружочки разной величины.

хранилась на аудиокассете.

Date: 2002-08-08 01:33 am (UTC)
From: [identity profile] amzin.livejournal.com
Бейсик. Кажется, GW. Программа стрельбы из пуки по мишени. Хардвер - ЕС1841. Это была первая законченная программа. Первая программа, которая была заранее продумана до мелочей. Нетривиальность заключалась в том, что для такого артобстрела выбирались разные планеты Солнечной системы (с различной силой тяжести), и пристреливаться можно было долго. Лет 12-13.

Вторая и третья _нетривиальные_ программы были написаны тоже на Бейсике. Но уже на одном из диалектов Quick. Совместно с приятелем Колей Волынским. Нетривиальности были чисто технические - на этих ДОСовских бейсиках мы реализовали палитровые эффекты, VESA-режимы и проигрывание wav-файлов (пародия на Windows - SortirOS; мы уже учились в институте). Третья была замечательна тем, что это была текстовая игрушка с мультиплейером через модем. А в остальном мне всегда больше нравилось ставить задачи, а не решать их до конца. :)

Date: 2002-08-08 01:37 am (UTC)
From: [identity profile] sendfor.livejournal.com
Ох, забыл я, что там по молодости писал... Компьютер я увидел в первый раз 15 лет, програмить начал тогда же, быстро добился каких-то успехов. Но что за успехи, уже не помню...

Date: 2002-08-08 01:42 am (UTC)
From: [identity profile] edgar-poe.livejournal.com
Первая моя откомпилированная и запущенная на компьютере программа решала какую-то игровую задачку связанную с вычислением на матрицах из журнала "Квант". Компьютер ЕС-1022. Язык программирования PL/1. Ввод с перфокарт, вывод на АЦПУ.
Это был сентябрь 1983 года. Мне 26 лет. Я отслужив два года офицером в Сов. Армии, не пошёл в школу преподавать физику по своей специальности. Прочитал объявление "требуются программисты" и пошёл устраиваться в проектный институт. Сказал, что ничего не умею, но очень хочу научиться. Меня взяли оператором ЭВМ. Так у меня появилась возможность учиться программировать на реальной ЭВМ. Через полгода я уже был программистом, а через полтора года руководителем группы системного программирования.
Первая нетривиальная программа была в той же конторе: система учёта машинного времени средствами СУБД ADABAS. Программа закачивала данные на выходе системной утилиты ЕС ЭВМ (IBM 360/370) в СУБД ADABAS.

Ещё раз запишу,

Date: 2002-08-08 02:36 am (UTC)
From: [identity profile] anton.livejournal.com
чтобы всё было в одном месте
Моя первая программа (http://www.livejournal.com/talkpost.bml?journal=antonme&itemid=23019)

Date: 2002-08-08 02:51 am (UTC)
From: [identity profile] talash.livejournal.com
12 years old, BASIC.
my parental unit was angry at me for some reason and decided to punish me by not allowing me to use the computer. Therefore they locked it with a password on CMOS BIOS.

Not wanting to take the chance of removing the CMOS battery, I applied an alternative tactic, which was going to a friend of mine and writing this program, which emulated failure to load and re-requested the password (2 times, to make sure the entered password was correct). The most tricky part was to emulate the * symbols appearing on the screen instead of the letters entered. Then the program just wrote the password into a file.

So I made this diskette, made an autoexec.bat file which'd load the program, left the diskette in the drive and made sure it was there when parental unit needed the computer. The rest is history.

Date: 2002-08-08 03:12 am (UTC)
From: [identity profile] wildernesscat.livejournal.com
You're one sneaky hacker. Way to go, man!

(no subject)

From: [identity profile] denniska.livejournal.com - Date: 2002-08-08 10:41 am (UTC) - Expand

Date: 2002-08-08 03:08 am (UTC)
From: [identity profile] muchacho.livejournal.com
Первая моя "серьёзная" программа "решала" физические уравнения. Для какой-то физической системы (маятник, кажется), задав произвольную часть параметров, можно было получить значения оставшихся с объяснением, как они получены. Уравнения были жестко вписаны в код. Писалось всё на Васике под ДВК, очень напрягало отсутствие полноценных процедур. Было это в 16 лет, в последнем классе.

Date: 2002-08-08 03:10 am (UTC)
From: [identity profile] rydel23.livejournal.com
0) BESM-6 and the "Soviet Civilization" (around 9 y.o. probably 1984-1985)

A huge Soviet mainframe and a quiet warm room with 10 terminals, it's winter or late autumn
The first step-based strategy - I was ruling a whole kingdom by making decisions whether to declare war and how much grain to sell, etc.
I was ecstatic to see a real computer for the first time in my life and actually play a game on it.

1) Pascal, Polish mainframe MERA and square equations (around 12 y.o., 1988)
- Thick and huge Pascal guide next to my bed - falling in love with types and English words
- Solved my homework ax2+bx+c=0 :)
program mysquares (input, output) /* yes, you still had to write (input, output) on MERA */
var
a, b, c: integer;
x, ans: real;
begin
...
end.

2) ES1840 and Turbo Pascal 3.0 (13 y.o., 1989)
- Reading about those cool enhancements, the system, dos, crt and graph units.
- Amazed with graphics, dreaming of initGraph(); cga.bgi and egavga.bgi
- Making all those melodies
sound(440); /* first octave A */
delay(500);
nosound; /* first wrote nosound(); and then deleted the parenthesis ;) */

Free time: XONIX and TETRIS (I felt like I was falling in love with Pazhitnov)

3) MSX2 Basic, CP/M, Sony Trinitron (14 y.o., 1990)
- Beautiful computer! Large Trinitron screen, great colors (received in dad's laboratory for optical research, equipment later used on MIR station)
- Reading the manual in English for the first time! And enjoying it tremendously!
- Making CBT programs for my class (they had compatible Yamaha's)
- Drawing all those
for i=1 to 100
circle(100,100,i), 16
next i
- learning and using sprites
- writing and reading directly to/from memory using peek() and poke()

Free time: cool games - arcanoid, helicpoter, car race (each had a size 16KB and it was fully funcitonal and very cute!)

4) ES1841, IBM PC XT and Turbo Pascal 5.0 (14 y.o., same time, different room)
- Enjoying the enhancements of TurboPascal 5.0
- Writing a program for dad to calculate some polynoms (Legandre sp?).


5) IBM PC AT and Turbo Pascal 5.5 (15 y.o.)
- Wrote my first TSR (Terminate and Stay Resident)
- Instering some Assembler code

Free time: Formula, F-16, Prince of Persia

6) Pascal 6.0, Delphi, Object Pascal (17 y.o.)
- Learning OOP
- Learning Windows API. Making the first programs for Winodows

Free time: Dune 2

7) C, C++, LISP (1996-2000)
American University in Bulgaria, Computer Science department
- Somehow programming does not seem so enjoyable and "sacred" anymore, just a nice tool to achieve results, just something you do for university projects

8) HTML, CSS, JavaScript (1997-2000)
- First Web pages, first Web projects. That's the new media I fell in love with! (HomePage, Frgotten Europe, Litvania, Zdymki, etc.)

Free time: Web Web Web

9) ASP, VBScript, SQL
- Commercial Websites for NetAge.

Free time: Web Web Web (addiction)

10) JSP, Java
- An online banking project

Free time: almost none left :( (fighting the internet addiction :))
From: [identity profile] wickedhellen.livejournal.com
эээ... лет 15 было.
не помню, наверное всетки турбо паскаль
кароче это была зачетная работа по информатике и нужно было совсем простецкую штуку сделать - типа пересчета из двоичной в дестяричную и шестнадцатеричную и обратно. Но мне было очень лень занимацца и воопще невтыкалось мне.
Я сделала на этом самом паскале ТАКОЙ ИНТЕРФЕЙС с ТАКИМИ заставками (чтобы показать что сделано)что наша преподавательница водила чуть не за руку моих одноклассников (будущих вмкшников и иже сн ими) - показывать как дела делаются.

ЯДРА у программы не было вовсе. Зато какая ИНСТРУКЦИЯ)

Date: 2002-08-08 04:13 am (UTC)
From: [identity profile] pilotv.livejournal.com
В общем ничего нетривиального, но было интересно. 3-й курс.
1) Мастер-бутовый мультисистемный загрузчик, с менюшкой и таймаутом. На асме. До сих пор им пользуюсь.
2) Курсовик это был, тоже асм. TSR-прога, при помощи которой можно было прямоугольные области экрана на другое место копировать (картины а-ля ПикассО получались). Интересна была тем, что это была первая (и последняя) достаточно серьезная и объемная прога на асме, с кучей функций разного назначения и т.п.

Date: 2002-08-08 04:31 am (UTC)
From: [identity profile] malenkiy-scot.livejournal.com
Мне было, кажется, тринадцать лет. Я был безмерно горд и счастлив (http://www.livejournal.com/talkread.bml?journal=avva&itemid=385592) - Человек, который в 13 лет написал такую программу имеет на это все права. Что касается меня, то я в этом возрасте написал программу для проверки чисел на простоту. На Basic. Потом были Life (на Фортране 4), сортировка с помощью бинарного дерева (на нем же, без рекурсии) и интерпретатор арифметических выражений.

Вычисление пи, кстати, описывается у Уэзерелла (даже не знаю, как он пишется по-английски - книгу читал по-русски) в Этюдах для программистов. Там же есть такой этюд: написать программу, которая печатает свой собственный текст. Книгу я читал когда мне было лет 16. Программу написал уже будучи профессиональным программистом, лет в 25. Без никаких подсказок. Я был счастлив и немного горд.

Date: 2002-08-08 04:47 am (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
Нетривиальной программы я ещё не написал ни одной (и, скорее всего, уже никогда не напишу). А так, помню, в конце 80х написал для упоминавшейся тут Меры на ассемблере имплементацию тетриса и экранный редактор двоичных файлов (позволял менять тексты сообщений в играх, что тогда мне казалось очень cool).

Date: 2002-08-08 04:53 am (UTC)
From: [identity profile] yan.livejournal.com
Первые _задачи_, требующие построения алгоритма, я решал (присказка была, "во время обеда и ужина") в школе, в 9-м классе. Никаких доступных машин тогда не было.
Когда я был на первом курсе, у математиков была вычислительная практика - выдавали арифмометры "Феликс", и по коридорам на подоконниках и в темноватых углах сидели первокурсники и рычали феликсами; предприимчивые проникали без всяких прав в Вычислительную Лабораторию и быстренько считали на электрических Рейнметаллах.

Первая же записанная и пригодная для выполнения программа у меня была на Алголе для машины... машины... никогда ее не видел. М что-то такое, Один? Покойный Дейкстра говорил: мне все равно, как работает машина, электрически, пневматически или чудом.
Самое смешное, что программа была сравнительно большой (требовала двух резиночек и специального мешка), остроумной, рекурсивной, и только после недели безуспешных попыток я узнал, что этот компилятор не поддерживает рекурсию.
А еще через пару дней сообразил, что есть короткое решение, буквально царский путь, без всякой рекурсии.
Так болезненно и дальше была устроена моя программистская карьера, почти всегда, с поправкой на опыт, конечно - поэтому я хорошо знаю, что я надежный программист, но без присущей таланту таинственной интуиции.

Вторая программа была на Лиспе для очень современной, стильной машины Одра, набивалась на ленточках, а что именно делала, не помню.

Date: 2002-08-08 05:05 am (UTC)
From: [identity profile] ksash.livejournal.com
...по-моему - бейсик что-то там. Какой-то древний совковый комп с черно-белым монитором. Конрольная по _информатике_ в _педагогическом_. (Сейчас им хорошо, сейчас они на информатике ворд учат, а нас заставляли учить бейсик, который все равно не работал). Задача - проще не бывает: нарисовать квадрат. Задать координаты точек и из них провести линии. Чтоб, не дай боже, не ошибиться, рисую на бумаге сетку координат и в ней рисую квадрат, все координаты беру с этого рисунка, ввожу в комп.
Получается треугольник.
Четыре точки координат, четыре линии. Треугольник.
Зову препода - мол, посмотрите, что здесь не так. Показываю код. Он смотрит на код и говорит, что, что бы я ни пыталась нарисовать, у меня должен получиться квадрат. Я радостно киваю и демонстрирую получившийся треугольник.
...В общем, над этим квардотреугольником билась вся группа во главе с преподом и так и не смогли сделать его квадратом. В чем там был глюк - до сих пор никто не знает. А препод через неделю уволился.
С тех пор стараюсь не программировать. На всякий случай.:)
(Хотя иногда по мелочам приходится).
(screened comment)

Re: Вопрос

Date: 2002-08-08 05:10 am (UTC)
From: [identity profile] avva.livejournal.com
Напишите мне личное письмо по этому поводу, хорошо?
Мне бы не хотелось эту запись портить не относящимися к делу сведениями, слишком уж интересные здесь истории рассказывают.

Re: Вопрос

From: (Anonymous) - Date: 2002-08-08 06:37 am (UTC) - Expand

Re: Вопрос

From: [identity profile] avva.livejournal.com - Date: 2002-08-08 06:37 am (UTC) - Expand

Гордость

Date: 2002-08-08 05:21 am (UTC)
From: [identity profile] cotour.livejournal.com
Дело было в 90-м, кажется. Первые опыты с АСУ'чиванием конторы, где я работал на Clipper 87, кто еще помнит такого зверя. Это одна из первых файловых баз данных формата DBF.
Так вот в итоге мы написали под DOS 3.1 МНОГОЗАДАЧНУЮ ОПЕРАЦИОННУЮ ОБОЛОЧКУ на Клиппере :))

После запуска она выгружала нафиг command.com и работала с рессурсами напрямую через ассемблерные модули. Соответственно были почти полностью реализованы все возможности многозадачных операцинок, подсмотренных в Юниксе. Т.е. многотопочность, многозадачность, пайпы-семафоры, приоритезация задач и т.д. :)))))))) Работало это все на локальной сетке Орлан (была такая советсткая разработка в свое время), состоящей из 286 и XT'шек :))
Дело происходило в Питере, на АО Оптика.

На этом я защитил свой диплом (досрочно, кстати :))

Какая вещь была !!! Windows 3.0 близко не лежал ни по производительности, ни по функционалу :))

Это сила!

Date: 2002-08-08 06:32 am (UTC)
From: [identity profile] syarzhuk.livejournal.com
У вас это чудо не сохранилось? А то у меня дома как раз стоит бесхозный i486... (DOS & OpenLinux, no Windows)

Re: Это сила!

From: [identity profile] cotour.livejournal.com - Date: 2002-08-08 07:20 am (UTC) - Expand

Re: Это сила!

From: [identity profile] kukutz.livejournal.com - Date: 2002-08-12 11:45 pm (UTC) - Expand

Оригинального ничего.

Date: 2002-08-08 05:42 am (UTC)
From: [identity profile] prince-felix.livejournal.com
Из начал программирования уже и не вспомню хотя бы потому, что оригинального ничего не писалось.

Но вот несколько лет назад усадили за Макинтош и дали пару месяцев на подготовку. К концу срока я должен был показать что-то красивое, работающее и нужное стране. ;) Документации нет. Та, что есть - очень устарела. Опыта за Маком нет вообще. В первый раз вижу. С перепугу потом демонстрировал программу учета сотрудников. Особенность в том, что _все_ контролы и окна рисовались мною. Руками. :) Целый API наваял. Потом оказалось, что есть очень удобная тулза и вообще все намного проще. Но чего со страху не наваяешь, да? :)

Date: 2002-08-08 06:08 am (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
Первая программа - "Жизнь" на PL/I для EC-102?, стоящей в одном из харьковских проектных институтов; 13 лет, 1985 год (хорошо иметь такого папу!). Ничего нетривиального в ней не было. Я хотел сделать ее нетривиальной, производя массовые логические операции над массивами битов, но формулу для них я вывел лишь в 29 лет (этой весной), написав Java-программу для этой цели, и убедился, насколько эта формула кошмарна и непрактична.

Вообще единственная нетривиальная программа за последние несколько лет была мной написана в 27-28 лет (digiMine's Data Slurper (http://www.digimine.com/solutions/howdigimineworks.asp)). В подавляющем большинстве случаев требуются рутинные программы, реализующие стандартные требования; как говорится в анекдоте про рязанское радио, "Пахомыч, не выябывайся".

Только что вспомнил одну программку, написанную мной в 19 лет для Windows 3.1 на 20MHz 386. Она брала битмеп, кажется,

XX XX
X   X
 X X
  X


и рекурсивно подставляла его же в каждую непустую клетку, и так раза 4. Потом выводила "фрактальное сердечко" на device context принтера. Образовавшуюся картинку я кое-кому подарил.

Date: 2002-08-08 06:56 am (UTC)
From: [identity profile] dwarkin.livejournal.com
Первая большая и серьезная програма написаная мной - Реверси на турбо-паскале ... 700 строк кода без единого комментария - BGI-шная графика
и некие зачатки AI. На каком-то этапе мне нужно было считать имя игрока,
а с помощью BGI красиво это было не сделать ... пришлось написать собственный
обработчик девятого (вроде правильно помню ?) прерывания ...
Еще через полгода я понял, как сделать ГОРАЗДО лучший AI, полез в код
и понял, что эту программу я уже никогда не пойму.
Мне тогда было 16 и лучше бы я тратил время на девок ....

Date: 2002-08-08 01:44 pm (UTC)
From: [identity profile] shaulreznik.livejournal.com
Мне тогда было 16 и лучше бы я тратил время на девок ....

В те времена Турбо-Паскаль был более популярен, чем НЛП :-)))

Date: 2002-08-08 06:57 am (UTC)
From: [identity profile] ifyr.livejournal.com
Я начинал с калькулятора МК-54. В начале были какие-то простенькие расчеты, а потом меня захватила серия игр, публиковавшихся в Технике Молодежи, и я написал несколько модификаций и своих игр. Потом увлекся написанием генераторов случайных чисел (правда с проверкой на случайность повторяемость были проблемы из-за ограниченности памяти. Приходилось пользоваться ручкой и бумагой. Качество -- сами понимаете).

В 13 я познакомился с БК, и писал, в основном, игрушки на Basicе. Так как доступ к компу был только 2 часа в неделю -- на уроках ЭВМ, программы писались на других уроках, а потом, в течение первого из двух часов, вводились вручную, так как возможность записаться предоставлялась не всегда. Чтобы успеть поиграться, надо было писать сразу правильно, чтобы можно было оставшийся час провести играясь и добавляя фичи, а не дебаггируя.

Date: 2002-08-08 07:34 am (UTC)
From: (Anonymous)
MK-54 - это такая штука с бейсиком?
На ней я тоже писал одни из первых своих программ. Самая интересная - тетрис (фигуры из трех клеток(точек), допускалось соединение углами). Так как под массив клеток памяти в калькуляторе не хватило бы, то строки хранились как произведения простых чисел.

А первая нетривиальная программа, насколько я помню, была на Turbo Basic (или не на Turbo?) Игрушка, корабль ходит вверх-вниз вдоль левой стенки, на него прут враги. Собственно, ничего интересного, разве что то, что персонажи рисовались polyline, а их оригиналы были сделаны на чертежной бумаге (потом по чертежу высчитывались координаты и вносились в компьютер). Насколько я помню, было довольно красиво.

Гм. Может бросить все и опять заняться играми?

TLKH

Вот еще

From: [identity profile] ifyr.livejournal.com - Date: 2002-08-08 11:15 am (UTC) - Expand
Page 1 of 2 << [1] [2] >>

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 08:33 am
Powered by Dreamwidth Studios