?

Log in

No account? Create an account
   Journal    Friends    Archive    Profile    Memories
 

Программистское: первая программа - morfizm


Apr. 30th, 2013 03:35 pm Программистское: первая программа

Ответил на пост от avva: "Расскажите, как вы научились программировать? В каком возрасте вы написали свою первую серьезную программу, на каком языке и компьютере, что она делала?" (http://avva.livejournal.com/2616323.html)

Меня смущает слово "нетривиальная"/"серьёзная" программа.
Дайте чёткое определение.

Если под тривиальным понимать программу в одну строку, то первую нетривиальную программу я, как и, наверное, все остальные, написал в тот же день, что и первую тривиальную. Хотя нет... первая тривиальная, наверное, была годом раньше, это было LOAD " чтобы загружать игрушки с кассеты на ZX Spectrum 48k.

На бейсике начал программировать примерно после 6-12 месяцев безвылазных игрушек, когда стало скучно. Мне было около 10 лет (от 9 до 11, точно не помню). Папа показал программу вроде такой (*):
10 FOR I = 1 TO 10
20 PRINT I, I*I
30 NEXT I

Печатающая в столбик числа и их квадраты. Я офигенно протащился с этого и пошло-поехало. ZX Spectrum можно осваивать без мануала, т.к. там на кнопочках написаны разные команды, получающиеся из комбинации shift-ов, и редактор бейсика построен таким образом, что невалидный синтаксис ввести просто нельзя. Курсор превращается в "?" и символ не вводится. Таким образом, можно было методом тыка explore'ить грамматику языка, и экспериментами проверять, что каждая команда делает. Я, может, папу только пару раз что-то спросил, но, наверное, весь год сам до всего доходил экспериментально. Не подозревал о существовании мануалов, книг и пр. Думал, что программирование так и передаётся - от отца к сыну, и экспериментально :)

Одной из первых запомнившихся программ была "Bottle" - написанная, вероятно, в течение первых пары дней после life turning point (*), я включил "OVER 1" - режим, при котором вывод пикселя там, где уже был пиксель, стирал его, выбрал какие-то центральные координаты, и дальше в цикле рисовал окружности одинакового радиуса (20), сдвигая обе координаты на +1, а потом отдельно ещё один цикл радиуса 10, чтобы нарисовать горлышко. Получалась самая настоящая бутылка, по диагонали расположенная.

Из более сложного, но тоже very early, писал эмулятор спортлото. Наверное, несколько сотен строк кода, чтобы красивенько рисовать, что выпало, говорить, сколько ты выиграл, и говорить, какая была вероятность выигрыша. Формулы для вероятности мне дал папа, т.к. я ещё не знал комбинаторику на таком уровне, и спросил у него.

Ещё - программа для учёта очков для игры в настольный хоккей. Она спрашивала, как зовут каждого игрока, потом можно было нажимать кнопки для каждой шайбы, обновлялись очки и было звуковое сопровождение. Я не понимал, почему взрослые воспринимали пользование этой программой во время игры как непонятное усложнение. Для меня, наоборот, всё выглядело как офигенный value added. Конечно же, надо было загружать эту программу каждый раз перед игрой, вводить имена, и жать кнопки, когда забиваешь. Но ведь зато всё по-честному учитывалось, и с красивым сопровождением!!!

Fun :)

11 comments - Leave a commentPrevious Entry Share Next Entry

Comments:

From:birdwatcher
Date:May 1st, 2013 02:12 am (UTC)
(Link)
Ни одной нетривиальной программы я пока не написал.
From:ermouth
Date:May 2nd, 2013 12:07 pm (UTC)
(Link)
А у меня был МК-61, и кажется первое что я на нём написал сам было вычисление корней кубического уравнения по формуле Кардано.
From:rider3099
Date:May 4th, 2013 09:33 pm (UTC)
(Link)
:))) мне нравится, ты еще раз утвердил меня в мнении, что мальчики гораздо умнее девочек :))). В определенном роде деятельности, конечно - девочки, простите! :)
From:morfizm
Date:May 4th, 2013 09:59 pm (UTC)
(Link)
Это неправда! :) Девочек просто с малолетства воспитывают иметь другие приоритеты и отбивают у них врождённое любопытство, типа, как оно изнутри устроено, как всё работает, отломать что-нибудь, кнопочки понажимать. Мальчику обычно позволяется, а девочке говорят, мол, брось, ты же девочка. В результате мальчики и девочки тратят то же самое время, но на разные вещи. Мальчики на интеллектуальное развитие, а девочки на непонятно, что, уж простите! :)
From:rider3099
Date:May 5th, 2013 08:34 pm (UTC)
(Link)
Заметь, я не сазала, что "все бабы - дуры" :))). Мы способнее мужчин в других областях деятельности, как мне кажется. Чтобы зря не молоть языком, приведу тебе цитату. Весьма любопытно, кстати:
По устоявшемуся мнению людей, далеких от науки, как и по результатам исследований, наиболее ярко проявляется различие полов в способности ориентироваться в пространстве. Способность представлять вещи, их форму, положение, соотношение к сторонам света и пропорции. Факт превосходства мужчин в этой области доказан сотнями различных научных исследований. Начиная со школьной скамьи, мальчики в основном превосходят девочек в областях математики, основанных на абстрактных представлениях пространства, соотношений и теоретики. Американская психолог доктор Камилла Бенбоу (Dr Camilla Benbow) вела пожалуй самые развернутые и длительные исследования наиболее одаренных молодых математиков страны. Одним из результатов этих исследований стало такое наблюдение: на одну математически одаренную девочку приходится тринадцать мальчиков. «После 15 лет, в течение которых я безрезультатно пыталась найти социальное объяснение этому феномену, я сдаюсь»,- говорит Камилла Бенбоу.

В то время, как мужской мозг позволяет с легкостью оперировать формами и теоремами, женский – лучше оснащен для восприятия информации, они видят, чувствуют и слышат больше, чем мужчины, а также с большей легкостью принимают и обрабатывают сигналы внешнего мира. Мужчин занимают вещи, женщин – отношения между людьми. Эти различия видны уже в первые часы после рождения ребенка. Девочки больше интересуются людьми и лицами, в то время как мальчики не видят большой разницы между ними и подвешенной перед ним игрушкой.
From:morfizm
Date:May 5th, 2013 09:57 pm (UTC)
(Link)
Я тоже не говорил про "все бабы - дуры". Я говорил про то, что они обделены в интеллектуальном развитии из-за традиций воспитания.

"Дурак" это "глупый, тупой человек", человек, который не умеет жить, делает смешные глупости. Можно иметь IQ 100 и при этом совсем не быть дураком. Житейская мудрость - это несколько ортогональная метрика.

Я не видел ни одного исследования, *доказывающего* будто бы женщины биологически предрасположены к какому-то другому скиллсету. То, на что ты ссылаешься, это, скорее всего, research, анализирующий уже существующих женщин. Пусть даже двухлетних детей, но уже проживших два года в традиционном воспитании, понимаешь? Да, при недостаточном exposure в области абстракций и логики, образовавшаяся пустота чем-то заполняется - ну пусть заполняется повышенной чувствительностью, эмпатией, whatever (если бы ещё на этом деньги можно было бы зарабатывать, то цены бы не было этим скиллам). Но если мальчика воспитывать точно так же как девочку, будет точно такой же результат. Каспаров доказал примером своих дочерей. Он учил их играть в шахматы с детства, и они пробились в мастера мирового класса.
From:rider3099
Date:May 6th, 2013 03:45 am (UTC)
(Link)
Возможно, ты прав. По крайней мере, логично. У меня недостаточно информации, погуглю :)
From:morfizm
Date:May 6th, 2013 04:56 am (UTC)
(Link)
Мне очень сложно себе представить экспермент, который бы действительно по-научному доказывал, что у девочек есть значительные умственные предрасположенности, отличные от мальчиков. Это надо чтобы много семей участвовали в эксперименте, и согласились, чтобы некоторым детям прямо в роддоме сделали операцию по смене пола, причём так обставить, чтобы родители не замечали (если они знают, это уже bias),... и тут сразу будет ещё bias-фактор в том, что какие-то дети пережили стресс этой операции, а какие-то не пережили. Сложно. Если просто воспитывать девочку как мальчика, там сложности будут с вписыванием в коллектив в возрасте садика-школы.

Короче говоря, смотри внимательно, *что именно* делали в исследованиях. Если просто изучали способности "готовых" мальчиков и девочек - тут, понятно, фактор воспитания и пути развития вообще не исключён никак. Если брали группу очень маленьких (полгода-год) и на протяжении нескольких лет её активно учили, и смотрели на результаты - это уже интересней. Конечно, не доказывает ничего, но я бы с большим интересом посмотрел бы на результаты. Хотя, по-моему, уже в этом случае результаты были бы ближе к одинаковым для разных полов.

По теме "таланта на самом деле нет, это всё hard work" я почитываю Talent Code, и потом ещё есть вторая книжка.
From:rider3099
Date:May 6th, 2013 05:10 am (UTC)
(Link)
Книги любопытные, надо заказать.
А по поводу эксперимента - попробую что-нить разыскать. С учетом замечаний. Вот найду ли...
From:morfizm
Date:May 6th, 2013 05:19 am (UTC)
(Link)
Ещё - есть мнение, что очень многое зависит от сравнительно случайных факторов, сподвигших ребёнка проводить за каким-то одним, пусть даже мысленным, занятием значительное время в очень раннем возрасте, типа, 0-3 года. Скажем, какой-нибудь Моцарт в 6 месячном возрасте услышал красивую классическую музыку и начал мысленно повторять, начал внимательнее слушать, вылавливая новые куски и т.п. Когда он *впервые* добрался до инструмента он уже потратил, возможно, 10000 часов на музыку (сейчас модно говорить, что 10 тыс часов нужно, чтобы стать экспертом в любой области). А какой-нибудь другой ребёнок в ровно тех же обстоятельствах (слушая ту же музыку), был увлечён чем-то другим, и повторять не стал, скажем, смотрел на машинки и думал всё больше и больше о машинках. Вырос автомобилестроителем. Понятно, что обстоятельства всё равно необходимы: скажем, если оба родителя не музыкальны и ребёнок никогда не слышит никакую музыку - даже по радио, то тут нет никакой предрасположенности и ничтожно мал шанс, что он станет музыкантом.

Если бы тот же, допустим, Моцарт, занимался музыкой только с 3 лет (а не с 0), то он бы тоже мог стать отличным профессиональным музыкантом, но не стал бы супер-мега-мировым талантом, ибо первые 3 года, важнейшие для развития, были просраны.
From:rider3099
Date:May 6th, 2013 06:08 am (UTC)
(Link)
Это интересная тема! Кстати, буквально вчера общалась в блоге с одной леди по поводу ее младшей дочери - интересная девочка, талантливая. А она как раз вспомнила о своем же старшем сыне в плане того, что что-то пропустила, когда он взрослел. В детстве он был ярким и удивительным, а сейчас, как она написала, "просто хороший". Жаль, мы многое частенько пропускаем, выращивая детей.