Jan. 31st, 2017

ygam: (Default)
Решил написать еще разное. Я еще недостаточно старый, чтобы писать воспоминания в виде книги, но для пары десятков записей в блоге - по-моему, достаточно. Когда я прочитал про австралийку суданского происхождения Ясмин Абдель-Магид, "a 25-year-old memoirist", и ее конфликт с 59летней американской писательницей Лайонель Шрайвер, я подумал: Боже мой, о чем может написать мемуары 25летка? Как я потеряла невинность? Как я нашла свою первую работу?

151. Когда мне было лет 17 и я знакомился с ООП, ко мне в голову пришла вот какая мысль (сформулирую ее взрослым языком). Представьте себе абстрактный класс, часть методов которого абстрактная, а часть - конкретная. Когда может быть нужен такой класс? Тогда, когда автор знает, что этот класс должен делать в определенных ситуациях, но в некоторых - не знает, и предполагает, что авторы классов, наследующих от его класса, будут знать, что они должны делать в этих ситуациях. Аналогично, процедура бросает исключения в ситуациях, в которых ее автор не знает, что она должна делать. То, что класс аналогичен процедуре, поля - локальным переменным, создание объекта - вызову процедуры, процедура, вызывающая другую - классу, наследующему другой - лежит на поверхности ООП. Я также подумал, что исключение аналогично абстрактному методу, а ловля исключения - перегрузке абстрактного метода конкретным. Я приехал в Бёркли, где я еще не учился, 18летка ниоткуда, чтобы поделиться своим открытием, пришел на факультет информатики, и спросил, не занимается ли кто исключениями; мне показали на аспиранта, который дал мне черновик своей статьи про исключения. Я тогда не понимал, что в этом храме науки аспиранты находятся в самом низу клевательной иерархии.

152. Много лет спустя мне во время телефонного интервью задали вопрос: "What is object-oriented programming?" Я ответил: "It is a 1980s buzzword." На другом конце провода послышалось хихиканье.

153. Во время первого семестра в колледже на одной из первых лекций по физике преподаватель рассказывал о понятии размерности, и ко мне в голову пришла вот какая мысль (ее тоже сформулирую взрослым языком). Многие физические величины отсчитываются от произвольного начала координат: время от начала летоисчисления, долгота от Гринвичского меридиана, температура по Цельсию от температуры таяния льда и т. д. Степень этой зависимости - такой же атрибут величины, как и размерность. Одну зависимую величину можно вычесть из другой, и получить независимую; к зависимой величине можно прибавить независимую, и получить зависимую; можно взять (взвешенное) среднее арифметическое нескольких зависимых величин, и получить зависимую; все остальные операции над зависимыми величинами должны быть запрещены. Делить на температуру по Цельсию (не на разницу температур!) столь же бессмысленно, сколь складывать литры и килограммы. Столько лет прошло, но я так и не знаю, есть ли у этой зависимости официальное название.

154. Студентом я был знаком с девушкой, нынче женщиной, которая этой весной должна была читать курс "Public Restrooms and the Politics of Needing to Go", прославившийся на всю страну. Она израильтянка; она научила меня песенке "hиней ма тов у-ма наим шевет ахим гам яхад". В ответ я вспомнил и перевел песню Мартовского Зайца из дискоспектакля "Алиса в стране чудес".

155. До колледжа я работал с программистом-израильтянином, танкистом-ветераном Войны Судного Дня, любителем Айн Рэнд; к счастью, моего английского на ее магнум опус тогда не хватало, хотя даже в этом нежном возрасте я понимал, что с ее философией что-то не так. Он спортировал систему на Quarterdeck DESQView (это был такой конкурент у Майкрософт Виндоуз году в 1990), и написал интерпретатор маленького язычка скриптов. Когда я пошел в колледж, я сам написал интерпретатор маленького язычка скриптов общего назначения, и прикручивал его к разным библиотекам вроде графической библиотеки Турбо Си. Этот интерпретатор мне позволил не брать CS 61A (Структура и интерпретация компьютерных программ), и преподаватель CS 61A меня нанял репетитором для информатики. Но студенты мне поставили плохие оценки, и на следующий семестр этот преподаватель меня не нанял. Я ему за это благодарен; я - плохой учитель, и хорошо, что я это узнал сравнительно рано. Через два десятилетия, я с другими волонтерами помогал преподавать введение в программирование в школе, используя графический язычок, разработанный в Бёркли другим преподавателем, тоже читавшим CS 61A.

156. Я семестр прожил в студенческом кооперативе, когда мои родители купили дом, и мне внезапно стало негде жить. Несмотря на то, что кооператив был помойкой, у меня о нем теплые воспоминания. Например, там было правило: на собрании говорящий должен держать в руках огромный черный резиновый половой член; отвращение его заставит говорить по существу. Из-за помоечного состояния здание было полупустым, и у меня была своя комнатка, где я повесил ксерокартинку юного Иосифа Бродского в телогрейке. Также в одной обклеенной фольгой комнате росла марихуана в человеческий рост, из-за чего постоянно вылетали пробки; мне ее дали попробовать, когда у меня уже было предложение работы из Майкрософта, и укуренного спросили, какая у меня будет зарплата. Я ответил: хи-хи-хи, a lot, хи-хи-хи.

157. Когда я был студентом, другой студент мне рассказал анекдот. Профессор спрашивает студента-биолога: "Синус икс может равняться двум?" Студент отвечает, что может, и получает двойку. Потом профессор задает тот же вопрос студенту-математику. Студент отвечает, что не может, и получает ту же оценку. Я этот анекдот 12 лет спустя рассказал в интернетах, и дал ссылку на домашнюю страницу рассказчика, тогда - доцента, а нынче - профессора прикладной математики. Он появился в комментариях. Я удивился его появлению. Он: "круг довольно узок да и слой тонок :)". В мой день рождения, этот человек меня спросил, сколько цифр пи я знаю наизусть. Я ответил: 3,14159265358979323846.

158. Он меня спросил, почему я не иду в аспирантуру. Я ответил, что не чувствую в себе таланта, так что лучше буду хорошим инженером, чем посредственным ученым. Я до сих пор не знаю, прав я был или неправ.

159. Этот же студент был интерном в Майкрософт Аксессе, и с его подачи я подал заявление на интерншип в Майкрософт Оффисе. На интервью мне дали распечатку функции itoa с ошибками, и попросили найти все ошибки в ней. Я сказал, что эта функция не будет работать для отрицательных чисел, а также для нуля. Интервьюер впечатлился: проблему с отрицательными числами кандидаты замечают, но не с нулем! Так моя жизнь и пошла наперекосяк.

160. В один из приездов в Бёркли во взрослом возрасте, я купил книжку по принципам квантовых вычислений, в которой увидел рассуждение, которое мне страшно понравилось. Пусть у нас есть гармонический осциллятор с периодом T. Мы можем посчитать его состояние в момент t за время O(log t). А для хаотической системы этот номер не пройдет; нужно время O(t). Когда я ездил в родной город, я остановился у троюродного дяди, доктора физико-математических наук и лауреата Государственной премии Украинской ССР, которому во время моего приезда исполнилось 75 лет, и который через полгода после этого умер. Я пересказал ему это рассуждение, и он возразил: а откуда мы знаем T? Может, для того, чтобы узнать T с необходимой точностью, нужно наблюдать за гармоническим осциллятором на протяжении O(t)? Я восхитился: физиков бывших не бывает, как не бывает бывших чекистов и бывших проституток. Наверное, бывших программистов тоже не бывает; не замечаешь, как профессия тебе въедается в кожу.

Profile

ygam: (Default)
Илья

October 2017

S M T W T F S
1234567
8910 1112 1314
1516 17181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 22nd, 2017 01:30 pm
Powered by Dreamwidth Studios