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

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

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

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

И с тех пор, вот уже 50 лет, программирование, а вернее создание программного обеспечения является
для меня профессией и основным занятием. Долго ли еще?
mishafurman: (Default)
Что-то я заработался последние недели.

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

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

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

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

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

Такой супер-смягченный вариант "За милиард лет..." Стругацких :)
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)
Что-то около недели осталось от давно запланированного (почти без моего участия) моего увольнения из Yahoo и начала работы в Microsoft OSD (Online Services Division). Делать довольно откровенно почти нЕчего...
Минут на 15 дальше от дома - в Mountain View... Примерно между Google и Yahoo :)
mishafurman: (Default)
Странно -- время от времени работаю как заведенный. Вот тут недавно провел пятницу на работе бездарно и решил в выходные
поработать, а в воскресенье - что-то устал и не смог себя заставить. Так нет же: в ночь на понедельник проснулся и около часа
не мог заснуть пока не сделал. Ладно была бы какая-нибудь интересная проблема - нет, полу-скучный дезайн для того, как
переделать то, что напортачили до меня...

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