mishafurman: (Default)
                                        "Меня милый не целует, не подходит близко: я, мол, чистый математик, а ты программистка"
                                         (из частушки, приведенной эпиграфом в книге А.С.Кронрода "Беседы о программировании")

Только что сообразил, что работаю я по своей специальности (программист или software engineer) почти ровно 50 лет. И почти ровно половину из них в СССР, а половину в США. Я уже писал (в ЖЖ) кое какие воспоминания о свей жизни и карьере, и сейчас мне захотелось продолжить эту серию. Это могут быть как некоторые отрывочные воспоминания, так и размышления; и то и другое в основном имеющие отношение к работе.

Начну с размышления. Не раз в своей профессиональной жизни я встречался (и продолжаю встречаться) с очень плохо сделанной работой, с очень неправильными решениями принятыми в процессе разработки программного обеспечения - того, что я обычно называю идиотизмом, хотя это скорей ругательство и не всегда справедливо: нередко люди старались и просто не смогли найти лучшее или правильное решение - может и по недостатку знаний, опыта или сообразительности, но уж точно не по буквальному идиотизму: совсем идиотов в нашей профессии я, кажется, не встречал. И немало размышлял о причинах подобных проблем и/или неудач. И постепенно пришел к некоторому списку наиболее заметных (для меня) причин, корней. Некоторые из них касаются программистов - инженеров, другие - начальников - менеджеров, а многие и тех и других. Попробую перечислить несколько, которые мне кажутся наиболее важными.

1. Стремление выглядеть более умным, опытным, знающим, чем ты есть на самом деле. Это совершенно естественное желание - как здесь говорят, умение продать себя. Особенно это распространено здесь, в США - в СССР это было распространено меньше. И порой без этого нельзя: скажем, ища работу в трудные времена, если ты не рекламируешь себя как можно сильнее, то можешь вообще остаться без работы: твое резюме просто и читать не станут.
Но, при поиске-то работы - ладно, но потом это приводит к массе проблем:
- непризнание до последнего своих ошибок: ведь ты же самый умный и не ошибаешься. Во многих случаях это удается и ошибка (в лучшем случае исправимый позже "баг", а то и неверно сконструированное и неправильно работающее что-то) так и попадает в конечный продукт.
- Возможно, еще хуже: такие люди обычно постепенно начинают верить в свой завышенный уровень сами (по крайней мере частично)что сильно мешает собственному прогрессу. Они перестают учиться, меньше прислушиваются чужим мнениям и.т.д. Понятно, что последствия подобного весьма нехороши.

Повторю, что в СССР я подобное на уровне рядовых работников (в круге которых я в основном вращался и там и здесь) я встречал не часто. И что интересно, самым ярким подобным примером был весьма способный и даже талантливый человек, с которым я проработал рядом много лет (не буду называть даже инициалов - хотя его уже нет на этом свете, я могу кого-то огорчить таким упоминанием). Мне кажется, что подобное настроение (обусловленное стремлением к карьерному росту) естественно приводит к вялости и безделию позже, когда "рост" уже произошел. Для меня этот случай был особенно болезненным, когда моей работе (с небольшой группой) регулярно мешал кто-то приходящий и садившийся за соседний стол и играющий на компьютере (это были старые времена и комнат и персональных компьютеров было очень мало). В особенности, когда я знал, что он имеет степень и должность выше моей и получает зарплату по крайней мере в полтора разы выше моей!

В США я подобное встречал чаще - и среди программистов и среди менеджеров (постараюсь потом подробнее рассказать о нескольких подобных эпизодах). Интересно, что традиция подобного поведения сильна и я дважды был критикуем начальниками (правда, в обоих случаях "русскими", хотя и совсем в разных работах) за то что часто спокойно говорил, что я в чем-то не очень разбираюсь или в чем-то не уверен!

2. Для начальника: неограниченное доверие определенному лицу. Говорят, бывает еще более суровая разновидность: доверие (в технических или организационных организационных вопросах) кому-то на основании личных отношений. Я такого не наблюдал, но слышал, как в дела некоторой компании вмешивалась жена его президента. Такое особенно характерно для "русских" компаний, то есть таких, которые основаны выходцами из СССР или России.

Для больших серьезных компаний есть еще немало других дефектов, но тут мой опыт невелик и обобщений я (по крайней мере пока) делать не буду.

[Надеюсь, что продолжение следует]
mishafurman: (Default)
У меня юбилей.
И не слабый - только вчера сообразил. Конечно, не с точностью до дня - день вспомнить сложно, но тем не менее.

50 лет программирования.

Весна 1965 года, 9-й класс московской школы №7. Первый "выход на машину" с зачетной программой: Андрей Леман
придумал мне задачу достаточно примитивную с названием ПУПЛОТ: ПереУпорядочение ПЛОщадей Треугольников.
Координаты вершин треугольников как-бы "даны", но реально я использовал псевдо-случайные числа.
Помню, как я разыскивал вход в ИТЭФ - кажется, вывеска там еще не висела. Нужно было доехать до круга 22
трамвая, пройти через двор института гельминтологии (который размещался в таком же бывшем Меньшиковском
особняке, как и большинство зданий ИТЭФА), перейти большую черемушкинскую и ждать в бюро пропусков
с паспортом...

Машина М20 занимала большую часть другого особняка на территории ИТЭФа - второй этаж - собственно ЭВМ,
а на первом - холодильные установки: машина была ламповая и охлаждение было нужно основательное.
Еще где-то рядом гудели/звенели 400-герцевые мотор-генераторы.
Ввод - с перфокарт; единственным выводом (кроме тоже перфокарт) было печатающее устройство, которое
умела печатать только цифры (плюс несколько знаков) на бумажной ленте формата практически
тождественного современной рулонной туалетной бумаге.

И с тех пор, вот уже 50 лет, программирование, а вернее создание программного обеспечения является
для меня профессией и основным занятием. Долго ли еще?
mishafurman: (Default)
Интересно, что образование, даже высокого качества, не всегда полезно, а иногда и вредно.
Наблюдение это, хотя и не подкрепленное никакими экспериментальными данными, пришло ко
мне в результате многократного наблюдения за работой инженеров программистов во время
моей работы во многих организациях/фирмах соответствующего профиля, как в СССР, так и в США.
Я уже излагал свои более ранние размышления о различных уровнях программистов раньше
(http://mishafurman.livejournal.com/2009/02/16/), но позже я понял одну несложную истину: образования по специальность может иногда приносить вред. Вероятно это правило применимо к любой технической творческой деятельности.

Если мы построим график, отложив на горизонтальной оси способности/талант работника, а на вертикальной -
зависимость качества выполняемой работы от уровня образования по специальности, скажем, производную
функции качества по уровню образования, то мы получим кривую, начало и конец которой лежат в положительной
области, а середина - в отрицательной.

Одна только оговорка: рассматривается только образование по специальности, то есть то, что непосредственно
применимо к оцениваемой работе.

Для очень слабых образование хорошо: оно позволяет им что-то делать, что иначе для них было бы невозможно или почти невозможно; в том и состоит творческая слабость, что таким работникам очень трудно придумать или изобрести что-то самим.

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

А вот с середняками дело сложнее! Если их выучили каким-то методам/решениям, у них снижается или совсем пропадает стимул подумать как следует самим. И - готовое решение из ученика или лекций может быть совсем не самым лучшим при решении конкретной задачи! Я наблюдал я такой эффект не раз - и немного писал об этом в 4.5-годичном своем посте, ссылку на который я привел выше.

Образование не очень непосредственно связанное с текущей работой, напротив, полезно практически всегда. В случае программирование это относится прежде всего к абстрактной математике, но, вероятно и ко многим другим дисциплинам.
mishafurman: (Default)
Помню, во времена моей работы во ВНИИСИ (в СССР, середина 80-х) мы получили несколько персональных компьютеров Электроника-85 (http://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_85).
И, открыв один из них обнаружили, что большинство микросхем имеют очень странный вид. Верхняя поверхность у них была зашкурена, так что прочитать тип микросхемы было невозможно. И, на некоторых были наклеены бумажки, на которых были написаны слова, которые напомнили мне мое военное обучение в институте - что-то вроде "гранит", "волга" или подобное (вспомнилось "орел, я сокол, как слышно, прием" :) ). Пришлось Саше Кирсанову (нашему главному электронщику) налить бутыль (или несколько - не помню) спирта и поехать в Воронеж на завод, узнавать DEC-овские типы этих микросхем, чтобы иметь возможность разобраться как что работает и, в случае чего, купить замену - ломалась вся эта техника часто.

Забавной была и моя работа - приспособить ее к чему-нибудь. Даже узнать/догадаться, что это клон DEC Pro-350, было не совсем тривиально. ОС там была DEC-овский аналог RSX11m для Pro-350, слегка подкрученный и русифицированный. Основной проблемой являлось почти полное отсутствие каких бы то ни было программ. Что было - это BASIC и практически все. И формат гибких дисков ни с чем не совместимый. Но выход нашелся: у машины был стандартный последовательный порт (RS232), доступный из Basic-а. Так что я написал на Basic-е программу, которая принимала текст с этого порта, переводила его из 16 системы в двоичную и сохраняла в виде файла. Теперь соединив этот порт с стоящей рядом СМ-4 (клон PDP-11) и написав соответствующую программу с той стороны, я переслал в Электронику свою программу обмена файлами - и запустив ее мы наполнили компьютер все, чем надо: в первую очередь ассемблером и линкером, после чего его можно было использовать для наших разработок.
mishafurman: (Default)
Это непосредственного ощущения того, как они работают.

В детстве меня завораживал вид любых работающих механизмов. Самый яркий пример - это, наверное,
зубчатые передачи, которые я изучил разламывая множество будильников. И даже еще до будильников -
(до тогоЮ как родители догадались приносить мне сломанные будильники), были жестяные игрушки типа
лягушек или машинок с более простым, но тоже зубчатым механизмом внутри.

Потом радио - хотя я и не видел подробностей, как оно работает, но звуки (музака или писк), которые
издавал радиоприемник были очевидно непосредственным результатом (или побочным эффектом) его работы.

Такими же были и первые компьютеры. Перфокарты с шелестом засасывались устройством ввода. Барабаны
или (позже) диски крутились под прозрачными колпаками. Принтер трещал, и представля себе принцип его
работы можно было догадаться приблизительно, что он печатает. И даже звук исходил от динамика, подключенного
к какому-то разряду какого-то регистра - то есть он был "естественный" и заставить компьютер играть какую-то
мелодию было непросто: подобно тому как непросто извлекать музыку, скажем, из столярных инструментов.

А нынешние компьютеры (и многая другая техника) эту непосредственность потеряли. Если музыка, то она
играется чем-то вроде отдельного музыкального инструмента. То же и с изображением на экране: все что я
вижу и слышу из компьютера - обман; это не имеет никакого отношения к тому, что там в самом деле происходит.

Это не настоящее, а некий виртуальный мир старающийся изо всех сил заставть меня поверить в то,
что именно он настоящий.

Отдушиной от этого вечного огорчения служит для меня возможность иногда написать что-нибудь на
ассемблере. Или даже спаять какую-нибудь схему, подключить к ней осцилограф (старенький тектроникс,

который стоит у меня под столом) и смотреть, как она работает. Но времени на это (и сил) становится
все меньше....
mishafurman: (Default)
Что-то я заработался последние недели.

Интересную я осознал закономерность, касающуюся моей работы и, кажется, продолжающуюся почти всю мою жизнь.

Работать я люблю; видимо некоторая инженерская жилка существует во мне с рождения, вероятно наследственная: и мой дед по украинсой линии, и прадед с прапрадедом по шведской были крупными инженкрами.
С детства я больше всего любил два занятия:
- разламывать что-то, чтобы полсмотреть, что там внутри и как оно работает.
- "изобретать" что-то и пытаться реализовать свои изобретения.
Со вторым, особенно в части реализации было непросто - поэтому я сначала увлекся электроникой: паяльник и коробки с разными деталями (в основном от разобранного раньше) позволяли очень многое.
Поэтому, когда я услышал о компьтерах и, главное, понял что это такое, я понял, что это будет занятием моей жизни - и не ошибся.  Возможность строить что-то почти неограниченно сложное используя минимальные ресурсы - это меня опьянило тогда (мне было 14 или 15 лет) и продолжает опьянять всю жизнь.

Так вот, о закономерности. Почти на всех моих работах (а, может, на всех), что бы мне не поручали, я рано или поздно находил что-то, что было для меня интересно. И - нередко, было реально полезно или просто нравилось начальству (хотя однажды меня уволили за то, что я нечто не совсем тривиальное сделал слишком быстро :) ). Эти мои, интересные (по крайней мере, для меня) проекты, по моей оцеке, делились на две группы:
1.  Вещи сравнительно простые и очевидные (по крайней мере по идее).
2.  Вещи нетривиальные - "изобретения". Таких - естественно, меньше, и я не имею в виду, что это полноценные изобретения - часто это бывали повторения или улучшения чужих идей и.т.д.

Но не в этом дело: я не хочу и пытаться эту мою субъективную классификацию превращать в объективную.

А вот закономерность, которую я осознал - следующая: успехом (прежде всего, у начальства) пользовались почти всегда работы первого типа и, почти никогда, второго.

Такой супер-смягченный вариант "За милиард лет..." Стругацких :)
mishafurman: (Default)
Какие тут все молодые...

Originally posted by [livejournal.com profile] aka_author at Корифеи и основоположникиСашу Битмана я сначала даже не узнал...
И все это на фоне М20 - моего первого компьютера... (слова такого еще не было тогда - говорили "машина")
mishafurman: (Default)
Когда-то покойный Джон Макарти пошутил - помню (в Москве в ~197x) его спросили, что он думает о недавнопоявившемся языке PL-1 (или я путаю и это было чуть позже про ADA?). Он в ответ рассказал анекдот:
"Что такое верблюд? Это лошадь спроектированная комитетом".

Только гораздо позже, в США я почувствовал суть этого "антидемократического" высказывания. Уже не в первый раз я
наблюдаю как американского стиля менеджеры управляющие разработкой программного обеспечения каждый раз, когда имеются разногласии, как что-то нужно сделать, решают их на основании большинства (и громкости) голосов.
С первого взгляда - почему бы и нет, "демократия" определенного вида.
Но в реальности, если в группе нет очевидного технического лидера, то фактически принятые решения часто принимаются каждый раз другим человеком. И - каждое, и не так уж плохо, но они начинают друг с другом противоречить. Или по крайней мере следующее решение закрывает то, что было преимуществами предидущего.
И, в особенности, когда это сочетается с микро-менеджментом, результаты бывают грустные...

(Кстати, я довольно высокого мнения ог PL1 - особенно учитывая, что он был первопроходцем - вместа с IBM-вским внутренним языком PL-S. Про ADA сказать ничего не могу).
mishafurman: (Default)
Гудяя от Нечего делать по интернету наткнулся на свою диссертацию - вернее на ссылку на нее на сайте, который продает тексты авторефератов и диссертаций.
http://www.dissercat.com/content/nekotorye-voprosy-operatsionnogo-obsluzhivaniya-raspredelennykh-sistem-obrabotki-dannykh


Покупать не собираюсь и не советую, но увидеть - забавно... 27 лет назад почти... Что там неправильно - место защиты не Москва, а Таллин (который тогда писался еще с одним Н)ю

 


mishafurman: (Default)

Я понял что мне напоминает работа в большой компании: службу в армии. Хотя я по настоящему в армии не служил - так, два месяца лагерей, занятия на военной кафедре - но это, плюс чьи-то рассказы, книги представление дают. И главное здесь не в том, что особенно выпирает в советской/русской армии - издевательства, дедовщина. И даже не откровенный идиотизм
(как у Гашека) - по крайней мере здесь, в Америке, этого немного. А безликая, многоэтажная, часто бесформенная система управления.

Часто не знаешь, что будешь делать завтра. Иногда и принцип "солдат спит, служба идет" работает. Часто знаешь, что что-то
(иногда и почти все) неправильно, а сделать почти ничего нельзя - потому что слишком много людей, включая начальство, в 
это вовлечены.... В маленькой компании меня однажды выгнали за то, что я сделал нечно за пару месяцев вместо планирумых пары лет, да и несклько по другому. А здесь, такое, наверное почти никто и не заметит...

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

Поэтому, поговорить с кем-то на рабочую или около-рабочую тему возможностей больше.

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

Например, попросили меня посмотреть недавно добавленный в одну программу код, который работал медленно, нельзя ли его улучшить, ускорить. Я переписал и ускорил критическую часть в 30 раз. Причем, алгоритм улучшить не удалось - только оптимизация кода и представления данных!

Ощущение у меня, что программированию учить практически перестали - что в США, что в Индии или Китае - большинство людей здесь учились в одной или нескольких из этих стран...
mishafurman: (Default)

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

Пришлось мне недавно делать два code review. О, это было такое! То, что я собираюсь упомянуть - нужно было присвоить
переменной "some_string" типа std::string строку сидящую по пойнтеру p_string_value (типа char * или const char *):

some_string.clear();
std::string temp_string(p_string_value);
some string = temp_string;

Другое у того же автора:

try {<do something> }
catch(...) {}

Видимо идея было сделать программу более надежной - чтобы она не ломалась по причине всяких глупых exceptions :)


mishafurman: (Default)

 Вторая и последняя часть - занятие это меня утомило...

Первое.

Уметь читать. Если Вы читаете на русском языке менее 200 страниц в час, Вы не умеете читать. Этому можно и нужно научиться. А английский нужно довести не менее чем до 100 страниц в час (лучше до уровня русского!).

 

Совершенно ужасно: быстро читать, может, еще вреднее, чем быстро писать – потому что что-то написанное тобой плохо гораздо естественноее осознать и переписать. А вот прочитанное плохо обычно так и остается. Но, главное в обоих случаях – не остается времени думать!

 

 

Второе.

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

 

Это полезно всегда – и вне зависимости от проблем. Люди любопытные и любящие учиться всегда имеют преимущества перед ленивыми или слишком практичными – вероятно, во всех творческих областях. Вот только, к сожалению, управлять этим в себе трудно, если вообще возможно.

 

Третье.

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

 

Это на мой взгляд пустые слова. Это часто называют «талантом» - и я сомневаюсь, что это можно приобрести после рождения.

 

Четвертое.

Помнить, что здесь остановиться значит деградировать. Чтобы стоять на месте, придется всю жизнь бежать, а чтобы попасть в другое место --- бежать вдвое быстрее. Зато жизнь будет жизнью, а не существованием.

 

Абсолютная чушь. Точнее – есть такой взгляд на жизнь – нахватать как можно больше пока жив. Он мне персонально несимпатичен, но по видимому это никак не корелирует ни с талантом, ни с успехами. И уж точно, к программированию отношения не имеет.

 

Наступает черед второго выбора.

 

Да нет здесь никакого выбора.

Идти приходится на работу туду, куда возьмут; выбор часто невелик – особенно в начале карьеры.

 

Вы хотите, чтобы вами руководили.

В этом ничего плохого нет. 95% людей на самом деле теряются, когда вынуждены руководить сами собой, сами принимать решения. Тогда идите в фирму. Но выбор фирмы согласуйте со своими ответами на два других вопроса.

Вы хотите сами принимать решения.

Идите в свободный софт. Для чистого программиста это практически единственный шанс набрать такую квалификацию, которая позволит ему оставаться полезным до конца жизни. На фирме вы очень быстро деградируете, если вы просто программист, даже старший. Или же опять-таки становитесь аналитиками, а потом будьте независимыми консультантами. Или создавайте собственную команду (все равно, фирму или объединение фрилансеров).

 

Что это такое – свободный софт? Занятие для богатых, которые не нуждаются в зарплате?

«Создайте собственную команду» - чтобы быть успешным нужно сочетание таланта данного от Бога и массы случайных обстоятельств. И при этом в 99% слусаев это значит заниматься неинтересными, но хорошо продаваемыми на рынке вещами.

Такого выбора практически нет, а если бы он был, я бы от него людей предостерегал.

 

Все – дальше не так подробно – про советы, что учить.

 

1.      Общая культура – я бы тоже советывал: люблю культурных людей, да и сам от недостатка общего образования нередко страдаю. Но к программированию это никакого отношения не имеет.

2.      Скорочтение и скорописание – очень вредно.

3.      Математика. Очень нужно некоторое представление о математике – скажем классический курс матанализа с доказательствами (часть из которых сделаны самим студентом) невероятно ценен. Пожалуй, логика. Причем по всей вероятности, непостредственно для будущей работы не нужен.
И – некоторые разделы, скорее всего нужные или полезные непосредственно – скажем, теория графов.

4.      Иностранный язык – нужен, но просто для жизни – для программирования достаточно очень примитивного английского.

 

 

Насчет рассуждения об удаче или ловушке – это опять детский сад. Что является для человека удачей, а что ловушкой – вопрос выходящий далеко за пределы обсуждения. Да и нередко меняется это в течении жизни не раз...

 

 


mishafurman: (Default)
Сама статья здесь http://files.mail.ru/BSAT81

Первая часть замечаний: (Текст статьи - черным, мои комментарии красным)

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

1.      Что я хочу – программировать или решать задачи?

2.      Хочу я быть в подчинении у других или быть независимым?

3.      Что я буду делать через 10 лет, когда уже не смогу так быстро кодировать, придут ребята помоложе и пошустрее, а жизнь еще вся впереди?

 

Вопросы, на мой взгляд, совершенно детские. №1 вообще не понятен – что такое программирование не связанное с решением задач? Аналогия – просто пересыпать песочек или строить замки... Что-то «взрослых» примеров я придумать не могу.

Конечно бывает просто удовольствие «играться» с компьютером – как скажем бывает удовольствие водить машину или возиться с животными... Но, если говорить о профессии (то есть, чтобы зарплату платили) – набо все-же быть или таксистом или ветеринаром...

№2 - вообще не о профессии, а о роде деятельности, что ли. Вопрос быть ли наемным работником или вольным контрактором-бизнесменом стоит независимо от профессии. Но "независимых" программистов мало: на что-то жить надо, а придумывать программы, чтобы потом их можно было успешно продавать почти невозможно...

№3 - ниже. 

 


Ребята, которых учат по стандартным программам, радуются, что могут быстро кодировать. Особенно это развито у их элиты: олимпиадников ACM. Само по себе такое умение очень хорошо.

 

Умение – вернее привычка - быстро писать программный код, на мой взгляд, плохо (и – объективно – почти никогда не полезно). Плохо – потому, что:

- остается мало времени подумать

- создаются длинные программы, что плохо по многим параметрам.

- в общем-то довольно бесполезно, потому что львиная доля времени всегда уходит не на писание кода, а на такие вещи, как дезайн, придумывание алгоритмов, ревью, создание документации, отладка и тестирование, сопровождение...

 

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

Конечно, есть кодеры высочайшего класса, которые востребованы даже в 63 года. Например, Михаил Фурман, будучи уволен из Yahoo, немедленно был взят в Майкрософт.

 

Уже упоминал, что персонально про меня это неправда (про Yahoo и Microsoft).

Но еще важнее – даже если оставить скорость (которая важна только в спорте, да и то не любом), соображения про возраст относятся к любым творческим профессиям, да и не только творческим.

И, действительно, постоянно учиться – это единственный радикальный выход. Или – менять профессию – как правило это значит, становиться начальником. Или учителем.

И снова мне не нравится слово кодер. Это как скажем рассуждая о профессии писаталя (любого вида) придавать значение скорости писания или печатания. Кстати, аналогия весьма точная.

 

Но он умеет писать системы на голой машине, у него за спиной легендарная школа команды Кронрода и Арлазарова.

 

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

 


mishafurman: (Default)
Нет такой специальности "программист". А если и есть, то не одна а две.

На самом деле эта заметка является запоздалым ответом [livejournal.com profile] nepejvoda_n_n - на его статью, адресованную
победителям олимпиад по программированию, которую я раскритиковал, но недостаточно
детально.

А также - мысли, касаюжиеся не только программироавания, но и многих других творческих
не-гуманитарных "созидательных профессий" - которые мне давно хотелось попробовать изложить.

Подробнее ... )
Вот пожалуй и все - не знаю, насколько внятно мне удалось это изложить (первая попытка). Вероятно определения
этих двух подходов: научно-исследовательского и инженерно-конструкторского нуждаются в большей строгости.
Но, надеюсь, что все же основную идею я изложил понятно.




mishafurman: (Default)
Как меня Энн Тыугу русскому языку учил.

Особенные (приятные) воспоминания связаны у меня с защитой кандидатской диссертации в Таллине, в Институте Кибернетики Эстонской академии наук. Приятная атмосфера, замечательные люди, к тому же, занимавшиеся интересными вещами. Помимо красоты старого города меня удивляла вежливость и готовность людей помочь – нечто непривычное для жителя России. Мне помогали несколько раз практически незнакомые люди – иногда тратя при этом заметное свое время. Даже гуляя по городу, машины отанавливались пропуская меня через улицу, а, видя что я заблудился, останавливались и старались мне помочь, плохо владея русским.

Моим эстонским оппонентом был Энн Тыугу, который был тогда начальником отдела Института Кибернетики.

В отзыве на диссертацию нужно было указывать недостатки – и шуткой Энна (по крайней мере так это я воспринимаю) было покритиковать меня за плохой, засоренный иностранными словами, русский язык. Вот этот отрывок из отзыва:




Надо сказать, что обо мне и Энн и другие очень заботились и, поэтому, серьезных недостатков в отзывах не было. Забота объяснялась и хорошими отношениями между нашими коллективами (и, соответственно, у Энна и Володи Арлазарова) и тем, что защиту в хорошем и надежном места для меня в москве организовать не удалось – я вроде как считался евреем, а большинство приличных (не антисемитских) ученых московских советов очень аккуратно регулировало количество проходящих евреев – боясь, что ВАК (Всесоюзная Аттестационная Комиссия, которая утверждала – или не утверждала – защиты диссертаций и присуждения ученых степеней) начнет всех «зарезать» - там-то точно антисемитов хватало. Из этих же соображений опонентами у меня были эстонец и украинец.

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

Зашита моя, надо сказать, прошла без проблем и была утверждена в срок. Собственно, диссертация из себя начего особенно выдающегося не представляла: несколько идей реализованных до того при создании программного обеспечения ИНЕС и РЕД – одна из идей, может и оригинальнаяж; другая не очень, но в то время не распространенная – прочитанная мной в чужом программном коде (система HASP для OS-360) – может, немножко усовершенствованная (базированная на том, что теперь называют cooperative или non-preemptive мультипрограммированием).
Дополнения к диссертации были более халтурными – обзор литературы и «формулы» - то есть рассуждения, облеченные в «математическую» форму – с греческими буквами, интегралами и.т.д.

Надо сказать, что кандидатский диплом помог мне получить повышение далеко не сразу и ненадолго: вскоре я ушел из ВНИИСИ в свой кооператив/совместное предприятие (началась перестройка и стало возможным свободнее платить/получать деньги), а вскоре и эмигрировал. Что любопытно, этот кандатский диплом, оказался востребованным при поступлении на мою последнюю работу, в Yahoo: здешний отдел кадров во что бы то ни стало хотел копию диплома с заверенным переводом.

Интересно, что профессионально подготовка и защита диссертации, пожалуй, не были совсем уж потерянным временем – я прочитал кое-какую литературу (конечно, гораздо меньше, чем я привел ссылак в диссертации :-) ) и немало подумал о том, что было сделано. Да и Энн, в процессе, заставил меня прочитать (и сдать экзамен!) несколько теоретических книжек – мне запомнились сети Петри и семантика программирования: кое-какие идеи из теорий семантики программ мне пригодились и, даже, помогают сейчас.
mishafurman: (Default)
Записки охотника программиста
(обрывки сознания):
приступ графомании.

Введение.

Недавно сразу несколько друзей прислали мне ссылку на статью Миши Донского, написанную им по случае своего 60-летия, которая называлась «Жизненный путь программиста» (www.polit.ru/science/2008/08/20/programmist.html), где Мишины воспоминания о своей карьере в этой отрасли перемежаются с оценками того, что происходило и будет происходить с прогшраммированием как профессией. Забавно было это прочитать. Миша сопоставлял свое шестидесятилетие с окончанием цикла программирования как професии – взгляд для меня довольно странный.

Прислушавшись к себе (а мне тоже совсем недавно исполнилось 60) я вдруг почуствовал, что и мне хочется поделиться своими профессиональными впечетлениями и воспоминаниями. А тут еще Лена Долгопятова (с которой мы немало лет проработали вместе во ВНИИСИ) сказала (вернее, написала – общались мы по email-у): «А кому-нибудь из тех кто стоял у истоков программирования, удалось сделать обзор того пути, который был пройден? На концептуальном уровне? ... Миш, а ты не пытался такое эссе написать?». И я задумался. Конечно и у истоков я не стоял, и путей было много. Но задумалось мне написать что-то вроде серии отрывков о программировании – моих персональных воспоминаний и размышлений, связанных с моей профессиональной деятельностью – программированием, которым я начал заниматься когда мне было 17 лет.

Стройного повествования, конечно, не получится – поэтому, подражая Вите Варшавскому, я делаю подзаголовком к этому (Еще не существующему) «Обрывки сознания». Витя сделал подзаголовком своих воспоминаний «Поток сознания»: не так давно, с грустью, найдя эти воспоминания на интернете (is.ifmo.ru/misc/_potok.pdf) и прочитав предисловие к ним, я узнал, что Вити уже нет на этом свете.

Так что я намерен писать свои обрывки время от времени, не обязательно в хронологическом порядке и публиковать их здесь.

Profile

mishafurman: (Default)
misha furman

December 2016

S M T W T F S
    123
45678910
111213141516 17
1819202122 2324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 22nd, 2017 06:41 pm
Powered by Dreamwidth Studios